; // For the setInterval function later in the code
122 |
123 | //?All Arrays for css classes
124 | const flexCssClasses = ["flex", "items-center", "justify-center", "flex-row"];
125 | const timeIconCssClasses = ["size-6", "rounded-lg", "ml-3"];
126 | const errorDisplayCssClasses = [
127 | ...flexCssClasses,
128 | "flex-wrap",
129 | "flex-col",
130 | "gap-1",
131 | "text-center",
132 | "text-red-600",
133 | ];
134 |
135 | const timeIcon = document.createElement("img");
136 | timeIcon.src = "./icons/cardIcons/date.gif";
137 | timeIcon.classList.add(...timeIconCssClasses);
138 |
139 | // *These two functions are specially created to hidden or display elements (not toggle because it may lead to inappropriate behaviour)
140 |
141 | function displayElement(element: HTMLElement): void {
142 | element.classList.remove("hidden");
143 | element.classList.add("flex");
144 | }
145 |
146 | function hiddenElement(element: HTMLElement): void {
147 | element.classList.remove("flex");
148 | element.classList.add("hidden");
149 | }
150 |
151 | //! The main form submission event 🚀
152 |
153 | weatherForm.addEventListener("submit", async (event) => {
154 | clearInterval(interval);
155 | locationDateDisplay.classList.add("invisible");
156 | let cityEntered = (document.querySelector("#cityEntered") as HTMLInputElement)
157 | .value;
158 |
159 | event.preventDefault();
160 |
161 | if (cityEntered === "") {
162 | displayError("Please enter a city 🏙️ !");
163 | return;
164 | }
165 |
166 | try {
167 | hiddenElement(errorDisplay);
168 | const response: WeatherData = await fetchData(cityEntered);
169 | displayElement(card);
170 | displayData(response);
171 | // footer.classList.remove("hidden");
172 | } catch (error) {
173 | displayError(error);
174 | }
175 | });
176 |
177 | async function fetchData(city: string) {
178 | let ApiUrl = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${API_KEY}`;
179 | let response: Response = await fetch(ApiUrl);
180 |
181 | if (!response.ok) {
182 | throw new Error("Couldn't fetch data ❌, try again !");
183 | } else {
184 | return await response.json();
185 | }
186 | }
187 |
188 | function displayError(error: unknown): void {
189 | hiddenElement(card);
190 | errorDisplay.classList.remove("hidden");
191 | errorDisplay.classList.add(...errorDisplayCssClasses);
192 | if (error == "TypeError: NetworkError when attempting to fetch resource.") {
193 | errorDisplay.textContent =
194 | "It seems that you're not connected to internet 🌐. Please check you connexion";
195 | return;
196 | }
197 |
198 | errorDisplay.textContent = String(error);
199 | }
200 |
201 | async function displayData(data: WeatherData) {
202 | const {
203 | name: city,
204 | main: { temp, humidity, feels_like },
205 | weather: [{ description, icon }],
206 | sys: { country },
207 | timezone: timezone,
208 | wind: { deg, speed },
209 | } = data;
210 | cityText.innerHTML = ` ${city}`;
211 | let temperature = (temp - 273.15).toFixed();
212 | // Avoid display like {-0°C}
213 | temperature === "-0" ? (temperature = "0") : true;
214 |
215 | temperatureText.textContent = `Temperature : ${temperature}°C`;
216 |
217 | let feels_like_fixed = (feels_like - 273.15).toFixed();
218 | // Same thing here
219 | feels_like_fixed === "-0" ? (feels_like_fixed = "0") : true;
220 |
221 | temperatureFlText.textContent = ` Feels like : ${feels_like_fixed}°C`;
222 |
223 | humidityText.textContent = ` Humidity : ${humidity} %`;
224 |
225 | windDeg.textContent = `Wind Direction : ${deg} degrees`;
226 | windSpeed.textContent = `Wind Speed : ${speed} meters/s`;
227 | description.length > 17
228 | ? descriptionText.classList.remove("indent-12")
229 | : descriptionText.classList.add("indent-12");
230 |
231 | descriptionText.textContent = description;
232 |
233 | let countryCode = country;
234 |
235 | //? Fetch the country from ISO3166-1.alpha2.json
236 |
237 | let actualCountry = await fetchCountry(countryCode);
238 |
239 | cityText.innerHTML += `, ${actualCountry}`;
240 |
241 | function setDate(): void {
242 | locationDateDisplay.innerHTML = "";
243 | let locationDate = getLocationDate(timezone);
244 | let day = locationDate.getDate();
245 | let year = locationDate.getFullYear();
246 |
247 | let month = stringMonths(locationDate.getMonth());
248 | let weekDay = stringWeekDay(locationDate.getDay());
249 |
250 | let locationHour = pad(locationDate.getHours());
251 | let locationMins = pad(locationDate.getMinutes());
252 | let locationsecs = pad(locationDate.getSeconds());
253 |
254 | locationDateDisplay.innerHTML = `${weekDay}
255 | ${day}
256 | ${month}
257 | ${year},
258 |
259 | ${locationHour}:
260 | ${locationMins}:
261 | ${locationsecs}`;
263 | locationDateDisplay.classList.remove("invisible");
264 | locationDateDisplay.prepend(timeIcon);
265 | }
266 |
267 | interval = setInterval(setDate, 1000);
268 | displayEmoji(icon, descriptionDisplay);
269 | }
270 |
271 | type CountryCodes = {
272 | [countryCode: string]: string;
273 | };
274 |
275 | async function fetchCountry(countryCode: string): Promise {
276 | let countriesCodeResponse = await fetch("ISO3166-1.alpha2.json");
277 | let countriesCode: CountryCodes = await countriesCodeResponse.json();
278 | const countryName = countriesCode[countryCode];
279 | return countryName;
280 | }
281 |
282 | function getLocationDate(timezone: number) {
283 | let locationDate: Date;
284 | let actualDate = new Date().toString();
285 | let firstSlice: string;
286 | let minus = true;
287 | if (actualDate.indexOf("+") == -1) {
288 | firstSlice = actualDate.slice(actualDate.indexOf("-") + 1);
289 | } else {
290 | firstSlice = actualDate.slice(actualDate.indexOf("+") + 1);
291 | minus = false;
292 | }
293 | let gmt = Number(firstSlice.slice(0, firstSlice.indexOf(" ")));
294 | gmt = gmt / 100;
295 | // !The previous part get the user current gmt+`value` or gmt-`value`, I get this 'value'
296 | // !So if somebody hasn't the same timezone than me, it still works.
297 |
298 | if (minus) {
299 | locationDate = new Date(Date.now() + timezone * 1000 + 3600000 * gmt);
300 | } else {
301 | locationDate = new Date(Date.now() + timezone * 1000 - 3600000 * gmt);
302 | }
303 | return locationDate;
304 | }
305 |
306 | function pad(unit: number) {
307 | return unit < 10 ? "0" + unit : unit;
308 | }
309 |
310 | function stringMonths(month: number): string {
311 | let months = [
312 | "January",
313 | "February",
314 | "March",
315 | "April",
316 | "May",
317 | "June",
318 | "July",
319 | "August",
320 | "September",
321 | "October",
322 | "November",
323 | "December",
324 | ];
325 | return months[month];
326 | }
327 |
328 | function stringWeekDay(day: number): string {
329 | let days = [
330 | "Sunday",
331 | "Monday",
332 | "Tuesday",
333 | "Wednesday",
334 | "Thursday",
335 | "Friday",
336 | "Saturday",
337 | ];
338 | return days[day];
339 | }
340 |
341 | function displayEmoji(icon: string, descriptionDisplay: HTMLParagraphElement) {
342 | weatherIcon.src = `./icons/Openweathermap/${icon}.svg`;
343 | descriptionDisplay.appendChild(weatherIcon);
344 |
345 | if (icon.indexOf("n") != -1) {
346 | document.body.classList.add("weatherNightImg");
347 | document.body.classList.remove("weatherDayImg");
348 |
349 | marker.src = "./icons/cardIcons/markerNight.png";
350 |
351 | sunOrMoon.src = "./icons/titleIcons/clear-night.svg";
352 | } else {
353 | document.body.classList.add("weatherDayImg");
354 | document.body.classList.remove("weatherNightImg");
355 |
356 | marker.src = "./icons/cardIcons/marker.png";
357 |
358 | sunOrMoon.src = "./icons/titleIcons/clear-day.svg";
359 | }
360 | }
361 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Fetch-weather-app",
3 | "lockfileVersion": 3,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "dependencies": {
8 | "sass": "^1.72.0"
9 | },
10 | "devDependencies": {
11 | "autoprefixer": "^10.4.19",
12 | "postcss": "^8.4.38",
13 | "tailwindcss": "^3.4.1",
14 | "typescript": "^5.4.3"
15 | }
16 | },
17 | "node_modules/@alloc/quick-lru": {
18 | "version": "5.2.0",
19 | "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
20 | "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
21 | "dev": true,
22 | "engines": {
23 | "node": ">=10"
24 | },
25 | "funding": {
26 | "url": "https://github.com/sponsors/sindresorhus"
27 | }
28 | },
29 | "node_modules/@isaacs/cliui": {
30 | "version": "8.0.2",
31 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
32 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
33 | "dev": true,
34 | "dependencies": {
35 | "string-width": "^5.1.2",
36 | "string-width-cjs": "npm:string-width@^4.2.0",
37 | "strip-ansi": "^7.0.1",
38 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
39 | "wrap-ansi": "^8.1.0",
40 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
41 | },
42 | "engines": {
43 | "node": ">=12"
44 | }
45 | },
46 | "node_modules/@jridgewell/gen-mapping": {
47 | "version": "0.3.5",
48 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
49 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
50 | "dev": true,
51 | "dependencies": {
52 | "@jridgewell/set-array": "^1.2.1",
53 | "@jridgewell/sourcemap-codec": "^1.4.10",
54 | "@jridgewell/trace-mapping": "^0.3.24"
55 | },
56 | "engines": {
57 | "node": ">=6.0.0"
58 | }
59 | },
60 | "node_modules/@jridgewell/resolve-uri": {
61 | "version": "3.1.2",
62 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
63 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
64 | "dev": true,
65 | "engines": {
66 | "node": ">=6.0.0"
67 | }
68 | },
69 | "node_modules/@jridgewell/set-array": {
70 | "version": "1.2.1",
71 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
72 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
73 | "dev": true,
74 | "engines": {
75 | "node": ">=6.0.0"
76 | }
77 | },
78 | "node_modules/@jridgewell/sourcemap-codec": {
79 | "version": "1.4.15",
80 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
81 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
82 | "dev": true
83 | },
84 | "node_modules/@jridgewell/trace-mapping": {
85 | "version": "0.3.25",
86 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
87 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
88 | "dev": true,
89 | "dependencies": {
90 | "@jridgewell/resolve-uri": "^3.1.0",
91 | "@jridgewell/sourcemap-codec": "^1.4.14"
92 | }
93 | },
94 | "node_modules/@nodelib/fs.scandir": {
95 | "version": "2.1.5",
96 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
97 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
98 | "dev": true,
99 | "dependencies": {
100 | "@nodelib/fs.stat": "2.0.5",
101 | "run-parallel": "^1.1.9"
102 | },
103 | "engines": {
104 | "node": ">= 8"
105 | }
106 | },
107 | "node_modules/@nodelib/fs.stat": {
108 | "version": "2.0.5",
109 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
110 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
111 | "dev": true,
112 | "engines": {
113 | "node": ">= 8"
114 | }
115 | },
116 | "node_modules/@nodelib/fs.walk": {
117 | "version": "1.2.8",
118 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
119 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
120 | "dev": true,
121 | "dependencies": {
122 | "@nodelib/fs.scandir": "2.1.5",
123 | "fastq": "^1.6.0"
124 | },
125 | "engines": {
126 | "node": ">= 8"
127 | }
128 | },
129 | "node_modules/@pkgjs/parseargs": {
130 | "version": "0.11.0",
131 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
132 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
133 | "dev": true,
134 | "optional": true,
135 | "engines": {
136 | "node": ">=14"
137 | }
138 | },
139 | "node_modules/ansi-regex": {
140 | "version": "6.0.1",
141 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
142 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
143 | "dev": true,
144 | "engines": {
145 | "node": ">=12"
146 | },
147 | "funding": {
148 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
149 | }
150 | },
151 | "node_modules/ansi-styles": {
152 | "version": "6.2.1",
153 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
154 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
155 | "dev": true,
156 | "engines": {
157 | "node": ">=12"
158 | },
159 | "funding": {
160 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
161 | }
162 | },
163 | "node_modules/any-promise": {
164 | "version": "1.3.0",
165 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
166 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
167 | "dev": true
168 | },
169 | "node_modules/anymatch": {
170 | "version": "3.1.3",
171 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
172 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
173 | "dependencies": {
174 | "normalize-path": "^3.0.0",
175 | "picomatch": "^2.0.4"
176 | },
177 | "engines": {
178 | "node": ">= 8"
179 | }
180 | },
181 | "node_modules/arg": {
182 | "version": "5.0.2",
183 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
184 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
185 | "dev": true
186 | },
187 | "node_modules/autoprefixer": {
188 | "version": "10.4.19",
189 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
190 | "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
191 | "dev": true,
192 | "funding": [
193 | {
194 | "type": "opencollective",
195 | "url": "https://opencollective.com/postcss/"
196 | },
197 | {
198 | "type": "tidelift",
199 | "url": "https://tidelift.com/funding/github/npm/autoprefixer"
200 | },
201 | {
202 | "type": "github",
203 | "url": "https://github.com/sponsors/ai"
204 | }
205 | ],
206 | "dependencies": {
207 | "browserslist": "^4.23.0",
208 | "caniuse-lite": "^1.0.30001599",
209 | "fraction.js": "^4.3.7",
210 | "normalize-range": "^0.1.2",
211 | "picocolors": "^1.0.0",
212 | "postcss-value-parser": "^4.2.0"
213 | },
214 | "bin": {
215 | "autoprefixer": "bin/autoprefixer"
216 | },
217 | "engines": {
218 | "node": "^10 || ^12 || >=14"
219 | },
220 | "peerDependencies": {
221 | "postcss": "^8.1.0"
222 | }
223 | },
224 | "node_modules/balanced-match": {
225 | "version": "1.0.2",
226 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
227 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
228 | "dev": true
229 | },
230 | "node_modules/binary-extensions": {
231 | "version": "2.3.0",
232 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
233 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
234 | "engines": {
235 | "node": ">=8"
236 | },
237 | "funding": {
238 | "url": "https://github.com/sponsors/sindresorhus"
239 | }
240 | },
241 | "node_modules/brace-expansion": {
242 | "version": "2.0.1",
243 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
244 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
245 | "dev": true,
246 | "dependencies": {
247 | "balanced-match": "^1.0.0"
248 | }
249 | },
250 | "node_modules/braces": {
251 | "version": "3.0.2",
252 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
253 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
254 | "dependencies": {
255 | "fill-range": "^7.0.1"
256 | },
257 | "engines": {
258 | "node": ">=8"
259 | }
260 | },
261 | "node_modules/browserslist": {
262 | "version": "4.23.0",
263 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
264 | "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
265 | "dev": true,
266 | "funding": [
267 | {
268 | "type": "opencollective",
269 | "url": "https://opencollective.com/browserslist"
270 | },
271 | {
272 | "type": "tidelift",
273 | "url": "https://tidelift.com/funding/github/npm/browserslist"
274 | },
275 | {
276 | "type": "github",
277 | "url": "https://github.com/sponsors/ai"
278 | }
279 | ],
280 | "dependencies": {
281 | "caniuse-lite": "^1.0.30001587",
282 | "electron-to-chromium": "^1.4.668",
283 | "node-releases": "^2.0.14",
284 | "update-browserslist-db": "^1.0.13"
285 | },
286 | "bin": {
287 | "browserslist": "cli.js"
288 | },
289 | "engines": {
290 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
291 | }
292 | },
293 | "node_modules/camelcase-css": {
294 | "version": "2.0.1",
295 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
296 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
297 | "dev": true,
298 | "engines": {
299 | "node": ">= 6"
300 | }
301 | },
302 | "node_modules/caniuse-lite": {
303 | "version": "1.0.30001600",
304 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz",
305 | "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==",
306 | "dev": true,
307 | "funding": [
308 | {
309 | "type": "opencollective",
310 | "url": "https://opencollective.com/browserslist"
311 | },
312 | {
313 | "type": "tidelift",
314 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
315 | },
316 | {
317 | "type": "github",
318 | "url": "https://github.com/sponsors/ai"
319 | }
320 | ]
321 | },
322 | "node_modules/chokidar": {
323 | "version": "3.6.0",
324 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
325 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
326 | "dependencies": {
327 | "anymatch": "~3.1.2",
328 | "braces": "~3.0.2",
329 | "glob-parent": "~5.1.2",
330 | "is-binary-path": "~2.1.0",
331 | "is-glob": "~4.0.1",
332 | "normalize-path": "~3.0.0",
333 | "readdirp": "~3.6.0"
334 | },
335 | "engines": {
336 | "node": ">= 8.10.0"
337 | },
338 | "funding": {
339 | "url": "https://paulmillr.com/funding/"
340 | },
341 | "optionalDependencies": {
342 | "fsevents": "~2.3.2"
343 | }
344 | },
345 | "node_modules/chokidar/node_modules/glob-parent": {
346 | "version": "5.1.2",
347 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
348 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
349 | "dependencies": {
350 | "is-glob": "^4.0.1"
351 | },
352 | "engines": {
353 | "node": ">= 6"
354 | }
355 | },
356 | "node_modules/color-convert": {
357 | "version": "2.0.1",
358 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
359 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
360 | "dev": true,
361 | "dependencies": {
362 | "color-name": "~1.1.4"
363 | },
364 | "engines": {
365 | "node": ">=7.0.0"
366 | }
367 | },
368 | "node_modules/color-name": {
369 | "version": "1.1.4",
370 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
371 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
372 | "dev": true
373 | },
374 | "node_modules/commander": {
375 | "version": "4.1.1",
376 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
377 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
378 | "dev": true,
379 | "engines": {
380 | "node": ">= 6"
381 | }
382 | },
383 | "node_modules/cross-spawn": {
384 | "version": "7.0.3",
385 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
386 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
387 | "dev": true,
388 | "dependencies": {
389 | "path-key": "^3.1.0",
390 | "shebang-command": "^2.0.0",
391 | "which": "^2.0.1"
392 | },
393 | "engines": {
394 | "node": ">= 8"
395 | }
396 | },
397 | "node_modules/cssesc": {
398 | "version": "3.0.0",
399 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
400 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
401 | "dev": true,
402 | "bin": {
403 | "cssesc": "bin/cssesc"
404 | },
405 | "engines": {
406 | "node": ">=4"
407 | }
408 | },
409 | "node_modules/didyoumean": {
410 | "version": "1.2.2",
411 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
412 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
413 | "dev": true
414 | },
415 | "node_modules/dlv": {
416 | "version": "1.1.3",
417 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
418 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
419 | "dev": true
420 | },
421 | "node_modules/eastasianwidth": {
422 | "version": "0.2.0",
423 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
424 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
425 | "dev": true
426 | },
427 | "node_modules/electron-to-chromium": {
428 | "version": "1.4.717",
429 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.717.tgz",
430 | "integrity": "sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==",
431 | "dev": true
432 | },
433 | "node_modules/emoji-regex": {
434 | "version": "9.2.2",
435 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
436 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
437 | "dev": true
438 | },
439 | "node_modules/escalade": {
440 | "version": "3.1.2",
441 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
442 | "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
443 | "dev": true,
444 | "engines": {
445 | "node": ">=6"
446 | }
447 | },
448 | "node_modules/fast-glob": {
449 | "version": "3.3.2",
450 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
451 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
452 | "dev": true,
453 | "dependencies": {
454 | "@nodelib/fs.stat": "^2.0.2",
455 | "@nodelib/fs.walk": "^1.2.3",
456 | "glob-parent": "^5.1.2",
457 | "merge2": "^1.3.0",
458 | "micromatch": "^4.0.4"
459 | },
460 | "engines": {
461 | "node": ">=8.6.0"
462 | }
463 | },
464 | "node_modules/fast-glob/node_modules/glob-parent": {
465 | "version": "5.1.2",
466 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
467 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
468 | "dev": true,
469 | "dependencies": {
470 | "is-glob": "^4.0.1"
471 | },
472 | "engines": {
473 | "node": ">= 6"
474 | }
475 | },
476 | "node_modules/fastq": {
477 | "version": "1.17.1",
478 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
479 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
480 | "dev": true,
481 | "dependencies": {
482 | "reusify": "^1.0.4"
483 | }
484 | },
485 | "node_modules/fill-range": {
486 | "version": "7.0.1",
487 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
488 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
489 | "dependencies": {
490 | "to-regex-range": "^5.0.1"
491 | },
492 | "engines": {
493 | "node": ">=8"
494 | }
495 | },
496 | "node_modules/foreground-child": {
497 | "version": "3.1.1",
498 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
499 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
500 | "dev": true,
501 | "dependencies": {
502 | "cross-spawn": "^7.0.0",
503 | "signal-exit": "^4.0.1"
504 | },
505 | "engines": {
506 | "node": ">=14"
507 | },
508 | "funding": {
509 | "url": "https://github.com/sponsors/isaacs"
510 | }
511 | },
512 | "node_modules/fraction.js": {
513 | "version": "4.3.7",
514 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
515 | "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
516 | "dev": true,
517 | "engines": {
518 | "node": "*"
519 | },
520 | "funding": {
521 | "type": "patreon",
522 | "url": "https://github.com/sponsors/rawify"
523 | }
524 | },
525 | "node_modules/fsevents": {
526 | "version": "2.3.3",
527 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
528 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
529 | "hasInstallScript": true,
530 | "optional": true,
531 | "os": [
532 | "darwin"
533 | ],
534 | "engines": {
535 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
536 | }
537 | },
538 | "node_modules/function-bind": {
539 | "version": "1.1.2",
540 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
541 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
542 | "dev": true,
543 | "funding": {
544 | "url": "https://github.com/sponsors/ljharb"
545 | }
546 | },
547 | "node_modules/glob": {
548 | "version": "10.3.10",
549 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
550 | "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
551 | "dev": true,
552 | "dependencies": {
553 | "foreground-child": "^3.1.0",
554 | "jackspeak": "^2.3.5",
555 | "minimatch": "^9.0.1",
556 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
557 | "path-scurry": "^1.10.1"
558 | },
559 | "bin": {
560 | "glob": "dist/esm/bin.mjs"
561 | },
562 | "engines": {
563 | "node": ">=16 || 14 >=14.17"
564 | },
565 | "funding": {
566 | "url": "https://github.com/sponsors/isaacs"
567 | }
568 | },
569 | "node_modules/glob-parent": {
570 | "version": "6.0.2",
571 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
572 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
573 | "dev": true,
574 | "dependencies": {
575 | "is-glob": "^4.0.3"
576 | },
577 | "engines": {
578 | "node": ">=10.13.0"
579 | }
580 | },
581 | "node_modules/hasown": {
582 | "version": "2.0.2",
583 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
584 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
585 | "dev": true,
586 | "dependencies": {
587 | "function-bind": "^1.1.2"
588 | },
589 | "engines": {
590 | "node": ">= 0.4"
591 | }
592 | },
593 | "node_modules/immutable": {
594 | "version": "4.3.5",
595 | "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz",
596 | "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw=="
597 | },
598 | "node_modules/is-binary-path": {
599 | "version": "2.1.0",
600 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
601 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
602 | "dependencies": {
603 | "binary-extensions": "^2.0.0"
604 | },
605 | "engines": {
606 | "node": ">=8"
607 | }
608 | },
609 | "node_modules/is-core-module": {
610 | "version": "2.13.1",
611 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
612 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
613 | "dev": true,
614 | "dependencies": {
615 | "hasown": "^2.0.0"
616 | },
617 | "funding": {
618 | "url": "https://github.com/sponsors/ljharb"
619 | }
620 | },
621 | "node_modules/is-extglob": {
622 | "version": "2.1.1",
623 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
624 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
625 | "engines": {
626 | "node": ">=0.10.0"
627 | }
628 | },
629 | "node_modules/is-fullwidth-code-point": {
630 | "version": "3.0.0",
631 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
632 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
633 | "dev": true,
634 | "engines": {
635 | "node": ">=8"
636 | }
637 | },
638 | "node_modules/is-glob": {
639 | "version": "4.0.3",
640 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
641 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
642 | "dependencies": {
643 | "is-extglob": "^2.1.1"
644 | },
645 | "engines": {
646 | "node": ">=0.10.0"
647 | }
648 | },
649 | "node_modules/is-number": {
650 | "version": "7.0.0",
651 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
652 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
653 | "engines": {
654 | "node": ">=0.12.0"
655 | }
656 | },
657 | "node_modules/isexe": {
658 | "version": "2.0.0",
659 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
660 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
661 | "dev": true
662 | },
663 | "node_modules/jackspeak": {
664 | "version": "2.3.6",
665 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
666 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
667 | "dev": true,
668 | "dependencies": {
669 | "@isaacs/cliui": "^8.0.2"
670 | },
671 | "engines": {
672 | "node": ">=14"
673 | },
674 | "funding": {
675 | "url": "https://github.com/sponsors/isaacs"
676 | },
677 | "optionalDependencies": {
678 | "@pkgjs/parseargs": "^0.11.0"
679 | }
680 | },
681 | "node_modules/jiti": {
682 | "version": "1.21.0",
683 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
684 | "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
685 | "dev": true,
686 | "bin": {
687 | "jiti": "bin/jiti.js"
688 | }
689 | },
690 | "node_modules/lilconfig": {
691 | "version": "2.1.0",
692 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
693 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
694 | "dev": true,
695 | "engines": {
696 | "node": ">=10"
697 | }
698 | },
699 | "node_modules/lines-and-columns": {
700 | "version": "1.2.4",
701 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
702 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
703 | "dev": true
704 | },
705 | "node_modules/lru-cache": {
706 | "version": "10.2.0",
707 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
708 | "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
709 | "dev": true,
710 | "engines": {
711 | "node": "14 || >=16.14"
712 | }
713 | },
714 | "node_modules/merge2": {
715 | "version": "1.4.1",
716 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
717 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
718 | "dev": true,
719 | "engines": {
720 | "node": ">= 8"
721 | }
722 | },
723 | "node_modules/micromatch": {
724 | "version": "4.0.5",
725 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
726 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
727 | "dev": true,
728 | "dependencies": {
729 | "braces": "^3.0.2",
730 | "picomatch": "^2.3.1"
731 | },
732 | "engines": {
733 | "node": ">=8.6"
734 | }
735 | },
736 | "node_modules/minimatch": {
737 | "version": "9.0.3",
738 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
739 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
740 | "dev": true,
741 | "dependencies": {
742 | "brace-expansion": "^2.0.1"
743 | },
744 | "engines": {
745 | "node": ">=16 || 14 >=14.17"
746 | },
747 | "funding": {
748 | "url": "https://github.com/sponsors/isaacs"
749 | }
750 | },
751 | "node_modules/minipass": {
752 | "version": "7.0.4",
753 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
754 | "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
755 | "dev": true,
756 | "engines": {
757 | "node": ">=16 || 14 >=14.17"
758 | }
759 | },
760 | "node_modules/mz": {
761 | "version": "2.7.0",
762 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
763 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
764 | "dev": true,
765 | "dependencies": {
766 | "any-promise": "^1.0.0",
767 | "object-assign": "^4.0.1",
768 | "thenify-all": "^1.0.0"
769 | }
770 | },
771 | "node_modules/nanoid": {
772 | "version": "3.3.7",
773 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
774 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
775 | "dev": true,
776 | "funding": [
777 | {
778 | "type": "github",
779 | "url": "https://github.com/sponsors/ai"
780 | }
781 | ],
782 | "bin": {
783 | "nanoid": "bin/nanoid.cjs"
784 | },
785 | "engines": {
786 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
787 | }
788 | },
789 | "node_modules/node-releases": {
790 | "version": "2.0.14",
791 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
792 | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
793 | "dev": true
794 | },
795 | "node_modules/normalize-path": {
796 | "version": "3.0.0",
797 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
798 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
799 | "engines": {
800 | "node": ">=0.10.0"
801 | }
802 | },
803 | "node_modules/normalize-range": {
804 | "version": "0.1.2",
805 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
806 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
807 | "dev": true,
808 | "engines": {
809 | "node": ">=0.10.0"
810 | }
811 | },
812 | "node_modules/object-assign": {
813 | "version": "4.1.1",
814 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
815 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
816 | "dev": true,
817 | "engines": {
818 | "node": ">=0.10.0"
819 | }
820 | },
821 | "node_modules/object-hash": {
822 | "version": "3.0.0",
823 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
824 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
825 | "dev": true,
826 | "engines": {
827 | "node": ">= 6"
828 | }
829 | },
830 | "node_modules/path-key": {
831 | "version": "3.1.1",
832 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
833 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
834 | "dev": true,
835 | "engines": {
836 | "node": ">=8"
837 | }
838 | },
839 | "node_modules/path-parse": {
840 | "version": "1.0.7",
841 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
842 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
843 | "dev": true
844 | },
845 | "node_modules/path-scurry": {
846 | "version": "1.10.1",
847 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
848 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
849 | "dev": true,
850 | "dependencies": {
851 | "lru-cache": "^9.1.1 || ^10.0.0",
852 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
853 | },
854 | "engines": {
855 | "node": ">=16 || 14 >=14.17"
856 | },
857 | "funding": {
858 | "url": "https://github.com/sponsors/isaacs"
859 | }
860 | },
861 | "node_modules/picocolors": {
862 | "version": "1.0.0",
863 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
864 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
865 | "dev": true
866 | },
867 | "node_modules/picomatch": {
868 | "version": "2.3.1",
869 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
870 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
871 | "engines": {
872 | "node": ">=8.6"
873 | },
874 | "funding": {
875 | "url": "https://github.com/sponsors/jonschlinkert"
876 | }
877 | },
878 | "node_modules/pify": {
879 | "version": "2.3.0",
880 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
881 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
882 | "dev": true,
883 | "engines": {
884 | "node": ">=0.10.0"
885 | }
886 | },
887 | "node_modules/pirates": {
888 | "version": "4.0.6",
889 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
890 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
891 | "dev": true,
892 | "engines": {
893 | "node": ">= 6"
894 | }
895 | },
896 | "node_modules/postcss": {
897 | "version": "8.4.38",
898 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
899 | "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
900 | "dev": true,
901 | "funding": [
902 | {
903 | "type": "opencollective",
904 | "url": "https://opencollective.com/postcss/"
905 | },
906 | {
907 | "type": "tidelift",
908 | "url": "https://tidelift.com/funding/github/npm/postcss"
909 | },
910 | {
911 | "type": "github",
912 | "url": "https://github.com/sponsors/ai"
913 | }
914 | ],
915 | "dependencies": {
916 | "nanoid": "^3.3.7",
917 | "picocolors": "^1.0.0",
918 | "source-map-js": "^1.2.0"
919 | },
920 | "engines": {
921 | "node": "^10 || ^12 || >=14"
922 | }
923 | },
924 | "node_modules/postcss-import": {
925 | "version": "15.1.0",
926 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
927 | "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
928 | "dev": true,
929 | "dependencies": {
930 | "postcss-value-parser": "^4.0.0",
931 | "read-cache": "^1.0.0",
932 | "resolve": "^1.1.7"
933 | },
934 | "engines": {
935 | "node": ">=14.0.0"
936 | },
937 | "peerDependencies": {
938 | "postcss": "^8.0.0"
939 | }
940 | },
941 | "node_modules/postcss-js": {
942 | "version": "4.0.1",
943 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
944 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
945 | "dev": true,
946 | "dependencies": {
947 | "camelcase-css": "^2.0.1"
948 | },
949 | "engines": {
950 | "node": "^12 || ^14 || >= 16"
951 | },
952 | "funding": {
953 | "type": "opencollective",
954 | "url": "https://opencollective.com/postcss/"
955 | },
956 | "peerDependencies": {
957 | "postcss": "^8.4.21"
958 | }
959 | },
960 | "node_modules/postcss-load-config": {
961 | "version": "4.0.2",
962 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
963 | "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
964 | "dev": true,
965 | "funding": [
966 | {
967 | "type": "opencollective",
968 | "url": "https://opencollective.com/postcss/"
969 | },
970 | {
971 | "type": "github",
972 | "url": "https://github.com/sponsors/ai"
973 | }
974 | ],
975 | "dependencies": {
976 | "lilconfig": "^3.0.0",
977 | "yaml": "^2.3.4"
978 | },
979 | "engines": {
980 | "node": ">= 14"
981 | },
982 | "peerDependencies": {
983 | "postcss": ">=8.0.9",
984 | "ts-node": ">=9.0.0"
985 | },
986 | "peerDependenciesMeta": {
987 | "postcss": {
988 | "optional": true
989 | },
990 | "ts-node": {
991 | "optional": true
992 | }
993 | }
994 | },
995 | "node_modules/postcss-load-config/node_modules/lilconfig": {
996 | "version": "3.1.1",
997 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
998 | "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
999 | "dev": true,
1000 | "engines": {
1001 | "node": ">=14"
1002 | },
1003 | "funding": {
1004 | "url": "https://github.com/sponsors/antonk52"
1005 | }
1006 | },
1007 | "node_modules/postcss-nested": {
1008 | "version": "6.0.1",
1009 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
1010 | "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
1011 | "dev": true,
1012 | "dependencies": {
1013 | "postcss-selector-parser": "^6.0.11"
1014 | },
1015 | "engines": {
1016 | "node": ">=12.0"
1017 | },
1018 | "funding": {
1019 | "type": "opencollective",
1020 | "url": "https://opencollective.com/postcss/"
1021 | },
1022 | "peerDependencies": {
1023 | "postcss": "^8.2.14"
1024 | }
1025 | },
1026 | "node_modules/postcss-selector-parser": {
1027 | "version": "6.0.16",
1028 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
1029 | "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
1030 | "dev": true,
1031 | "dependencies": {
1032 | "cssesc": "^3.0.0",
1033 | "util-deprecate": "^1.0.2"
1034 | },
1035 | "engines": {
1036 | "node": ">=4"
1037 | }
1038 | },
1039 | "node_modules/postcss-value-parser": {
1040 | "version": "4.2.0",
1041 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1042 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1043 | "dev": true
1044 | },
1045 | "node_modules/queue-microtask": {
1046 | "version": "1.2.3",
1047 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1048 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1049 | "dev": true,
1050 | "funding": [
1051 | {
1052 | "type": "github",
1053 | "url": "https://github.com/sponsors/feross"
1054 | },
1055 | {
1056 | "type": "patreon",
1057 | "url": "https://www.patreon.com/feross"
1058 | },
1059 | {
1060 | "type": "consulting",
1061 | "url": "https://feross.org/support"
1062 | }
1063 | ]
1064 | },
1065 | "node_modules/read-cache": {
1066 | "version": "1.0.0",
1067 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1068 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1069 | "dev": true,
1070 | "dependencies": {
1071 | "pify": "^2.3.0"
1072 | }
1073 | },
1074 | "node_modules/readdirp": {
1075 | "version": "3.6.0",
1076 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1077 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1078 | "dependencies": {
1079 | "picomatch": "^2.2.1"
1080 | },
1081 | "engines": {
1082 | "node": ">=8.10.0"
1083 | }
1084 | },
1085 | "node_modules/resolve": {
1086 | "version": "1.22.8",
1087 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
1088 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
1089 | "dev": true,
1090 | "dependencies": {
1091 | "is-core-module": "^2.13.0",
1092 | "path-parse": "^1.0.7",
1093 | "supports-preserve-symlinks-flag": "^1.0.0"
1094 | },
1095 | "bin": {
1096 | "resolve": "bin/resolve"
1097 | },
1098 | "funding": {
1099 | "url": "https://github.com/sponsors/ljharb"
1100 | }
1101 | },
1102 | "node_modules/reusify": {
1103 | "version": "1.0.4",
1104 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1105 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1106 | "dev": true,
1107 | "engines": {
1108 | "iojs": ">=1.0.0",
1109 | "node": ">=0.10.0"
1110 | }
1111 | },
1112 | "node_modules/run-parallel": {
1113 | "version": "1.2.0",
1114 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1115 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1116 | "dev": true,
1117 | "funding": [
1118 | {
1119 | "type": "github",
1120 | "url": "https://github.com/sponsors/feross"
1121 | },
1122 | {
1123 | "type": "patreon",
1124 | "url": "https://www.patreon.com/feross"
1125 | },
1126 | {
1127 | "type": "consulting",
1128 | "url": "https://feross.org/support"
1129 | }
1130 | ],
1131 | "dependencies": {
1132 | "queue-microtask": "^1.2.2"
1133 | }
1134 | },
1135 | "node_modules/sass": {
1136 | "version": "1.72.0",
1137 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz",
1138 | "integrity": "sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==",
1139 | "dependencies": {
1140 | "chokidar": ">=3.0.0 <4.0.0",
1141 | "immutable": "^4.0.0",
1142 | "source-map-js": ">=0.6.2 <2.0.0"
1143 | },
1144 | "bin": {
1145 | "sass": "sass.js"
1146 | },
1147 | "engines": {
1148 | "node": ">=14.0.0"
1149 | }
1150 | },
1151 | "node_modules/shebang-command": {
1152 | "version": "2.0.0",
1153 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1154 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1155 | "dev": true,
1156 | "dependencies": {
1157 | "shebang-regex": "^3.0.0"
1158 | },
1159 | "engines": {
1160 | "node": ">=8"
1161 | }
1162 | },
1163 | "node_modules/shebang-regex": {
1164 | "version": "3.0.0",
1165 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1166 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1167 | "dev": true,
1168 | "engines": {
1169 | "node": ">=8"
1170 | }
1171 | },
1172 | "node_modules/signal-exit": {
1173 | "version": "4.1.0",
1174 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1175 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1176 | "dev": true,
1177 | "engines": {
1178 | "node": ">=14"
1179 | },
1180 | "funding": {
1181 | "url": "https://github.com/sponsors/isaacs"
1182 | }
1183 | },
1184 | "node_modules/source-map-js": {
1185 | "version": "1.2.0",
1186 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1187 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
1188 | "engines": {
1189 | "node": ">=0.10.0"
1190 | }
1191 | },
1192 | "node_modules/string-width": {
1193 | "version": "5.1.2",
1194 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
1195 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
1196 | "dev": true,
1197 | "dependencies": {
1198 | "eastasianwidth": "^0.2.0",
1199 | "emoji-regex": "^9.2.2",
1200 | "strip-ansi": "^7.0.1"
1201 | },
1202 | "engines": {
1203 | "node": ">=12"
1204 | },
1205 | "funding": {
1206 | "url": "https://github.com/sponsors/sindresorhus"
1207 | }
1208 | },
1209 | "node_modules/string-width-cjs": {
1210 | "name": "string-width",
1211 | "version": "4.2.3",
1212 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1213 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1214 | "dev": true,
1215 | "dependencies": {
1216 | "emoji-regex": "^8.0.0",
1217 | "is-fullwidth-code-point": "^3.0.0",
1218 | "strip-ansi": "^6.0.1"
1219 | },
1220 | "engines": {
1221 | "node": ">=8"
1222 | }
1223 | },
1224 | "node_modules/string-width-cjs/node_modules/ansi-regex": {
1225 | "version": "5.0.1",
1226 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1227 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1228 | "dev": true,
1229 | "engines": {
1230 | "node": ">=8"
1231 | }
1232 | },
1233 | "node_modules/string-width-cjs/node_modules/emoji-regex": {
1234 | "version": "8.0.0",
1235 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1236 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1237 | "dev": true
1238 | },
1239 | "node_modules/string-width-cjs/node_modules/strip-ansi": {
1240 | "version": "6.0.1",
1241 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1242 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1243 | "dev": true,
1244 | "dependencies": {
1245 | "ansi-regex": "^5.0.1"
1246 | },
1247 | "engines": {
1248 | "node": ">=8"
1249 | }
1250 | },
1251 | "node_modules/strip-ansi": {
1252 | "version": "7.1.0",
1253 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
1254 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
1255 | "dev": true,
1256 | "dependencies": {
1257 | "ansi-regex": "^6.0.1"
1258 | },
1259 | "engines": {
1260 | "node": ">=12"
1261 | },
1262 | "funding": {
1263 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
1264 | }
1265 | },
1266 | "node_modules/strip-ansi-cjs": {
1267 | "name": "strip-ansi",
1268 | "version": "6.0.1",
1269 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1270 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1271 | "dev": true,
1272 | "dependencies": {
1273 | "ansi-regex": "^5.0.1"
1274 | },
1275 | "engines": {
1276 | "node": ">=8"
1277 | }
1278 | },
1279 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
1280 | "version": "5.0.1",
1281 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1282 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1283 | "dev": true,
1284 | "engines": {
1285 | "node": ">=8"
1286 | }
1287 | },
1288 | "node_modules/sucrase": {
1289 | "version": "3.35.0",
1290 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
1291 | "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
1292 | "dev": true,
1293 | "dependencies": {
1294 | "@jridgewell/gen-mapping": "^0.3.2",
1295 | "commander": "^4.0.0",
1296 | "glob": "^10.3.10",
1297 | "lines-and-columns": "^1.1.6",
1298 | "mz": "^2.7.0",
1299 | "pirates": "^4.0.1",
1300 | "ts-interface-checker": "^0.1.9"
1301 | },
1302 | "bin": {
1303 | "sucrase": "bin/sucrase",
1304 | "sucrase-node": "bin/sucrase-node"
1305 | },
1306 | "engines": {
1307 | "node": ">=16 || 14 >=14.17"
1308 | }
1309 | },
1310 | "node_modules/supports-preserve-symlinks-flag": {
1311 | "version": "1.0.0",
1312 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1313 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1314 | "dev": true,
1315 | "engines": {
1316 | "node": ">= 0.4"
1317 | },
1318 | "funding": {
1319 | "url": "https://github.com/sponsors/ljharb"
1320 | }
1321 | },
1322 | "node_modules/tailwindcss": {
1323 | "version": "3.4.1",
1324 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz",
1325 | "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==",
1326 | "dev": true,
1327 | "dependencies": {
1328 | "@alloc/quick-lru": "^5.2.0",
1329 | "arg": "^5.0.2",
1330 | "chokidar": "^3.5.3",
1331 | "didyoumean": "^1.2.2",
1332 | "dlv": "^1.1.3",
1333 | "fast-glob": "^3.3.0",
1334 | "glob-parent": "^6.0.2",
1335 | "is-glob": "^4.0.3",
1336 | "jiti": "^1.19.1",
1337 | "lilconfig": "^2.1.0",
1338 | "micromatch": "^4.0.5",
1339 | "normalize-path": "^3.0.0",
1340 | "object-hash": "^3.0.0",
1341 | "picocolors": "^1.0.0",
1342 | "postcss": "^8.4.23",
1343 | "postcss-import": "^15.1.0",
1344 | "postcss-js": "^4.0.1",
1345 | "postcss-load-config": "^4.0.1",
1346 | "postcss-nested": "^6.0.1",
1347 | "postcss-selector-parser": "^6.0.11",
1348 | "resolve": "^1.22.2",
1349 | "sucrase": "^3.32.0"
1350 | },
1351 | "bin": {
1352 | "tailwind": "lib/cli.js",
1353 | "tailwindcss": "lib/cli.js"
1354 | },
1355 | "engines": {
1356 | "node": ">=14.0.0"
1357 | }
1358 | },
1359 | "node_modules/thenify": {
1360 | "version": "3.3.1",
1361 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
1362 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
1363 | "dev": true,
1364 | "dependencies": {
1365 | "any-promise": "^1.0.0"
1366 | }
1367 | },
1368 | "node_modules/thenify-all": {
1369 | "version": "1.6.0",
1370 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
1371 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
1372 | "dev": true,
1373 | "dependencies": {
1374 | "thenify": ">= 3.1.0 < 4"
1375 | },
1376 | "engines": {
1377 | "node": ">=0.8"
1378 | }
1379 | },
1380 | "node_modules/to-regex-range": {
1381 | "version": "5.0.1",
1382 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1383 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1384 | "dependencies": {
1385 | "is-number": "^7.0.0"
1386 | },
1387 | "engines": {
1388 | "node": ">=8.0"
1389 | }
1390 | },
1391 | "node_modules/ts-interface-checker": {
1392 | "version": "0.1.13",
1393 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
1394 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
1395 | "dev": true
1396 | },
1397 | "node_modules/typescript": {
1398 | "version": "5.4.3",
1399 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
1400 | "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
1401 | "dev": true,
1402 | "bin": {
1403 | "tsc": "bin/tsc",
1404 | "tsserver": "bin/tsserver"
1405 | },
1406 | "engines": {
1407 | "node": ">=14.17"
1408 | }
1409 | },
1410 | "node_modules/update-browserslist-db": {
1411 | "version": "1.0.13",
1412 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
1413 | "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
1414 | "dev": true,
1415 | "funding": [
1416 | {
1417 | "type": "opencollective",
1418 | "url": "https://opencollective.com/browserslist"
1419 | },
1420 | {
1421 | "type": "tidelift",
1422 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1423 | },
1424 | {
1425 | "type": "github",
1426 | "url": "https://github.com/sponsors/ai"
1427 | }
1428 | ],
1429 | "dependencies": {
1430 | "escalade": "^3.1.1",
1431 | "picocolors": "^1.0.0"
1432 | },
1433 | "bin": {
1434 | "update-browserslist-db": "cli.js"
1435 | },
1436 | "peerDependencies": {
1437 | "browserslist": ">= 4.21.0"
1438 | }
1439 | },
1440 | "node_modules/util-deprecate": {
1441 | "version": "1.0.2",
1442 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1443 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1444 | "dev": true
1445 | },
1446 | "node_modules/which": {
1447 | "version": "2.0.2",
1448 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1449 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1450 | "dev": true,
1451 | "dependencies": {
1452 | "isexe": "^2.0.0"
1453 | },
1454 | "bin": {
1455 | "node-which": "bin/node-which"
1456 | },
1457 | "engines": {
1458 | "node": ">= 8"
1459 | }
1460 | },
1461 | "node_modules/wrap-ansi": {
1462 | "version": "8.1.0",
1463 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
1464 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
1465 | "dev": true,
1466 | "dependencies": {
1467 | "ansi-styles": "^6.1.0",
1468 | "string-width": "^5.0.1",
1469 | "strip-ansi": "^7.0.1"
1470 | },
1471 | "engines": {
1472 | "node": ">=12"
1473 | },
1474 | "funding": {
1475 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1476 | }
1477 | },
1478 | "node_modules/wrap-ansi-cjs": {
1479 | "name": "wrap-ansi",
1480 | "version": "7.0.0",
1481 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1482 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1483 | "dev": true,
1484 | "dependencies": {
1485 | "ansi-styles": "^4.0.0",
1486 | "string-width": "^4.1.0",
1487 | "strip-ansi": "^6.0.0"
1488 | },
1489 | "engines": {
1490 | "node": ">=10"
1491 | },
1492 | "funding": {
1493 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1494 | }
1495 | },
1496 | "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
1497 | "version": "5.0.1",
1498 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1499 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1500 | "dev": true,
1501 | "engines": {
1502 | "node": ">=8"
1503 | }
1504 | },
1505 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
1506 | "version": "4.3.0",
1507 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1508 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1509 | "dev": true,
1510 | "dependencies": {
1511 | "color-convert": "^2.0.1"
1512 | },
1513 | "engines": {
1514 | "node": ">=8"
1515 | },
1516 | "funding": {
1517 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1518 | }
1519 | },
1520 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
1521 | "version": "8.0.0",
1522 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1523 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1524 | "dev": true
1525 | },
1526 | "node_modules/wrap-ansi-cjs/node_modules/string-width": {
1527 | "version": "4.2.3",
1528 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1529 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1530 | "dev": true,
1531 | "dependencies": {
1532 | "emoji-regex": "^8.0.0",
1533 | "is-fullwidth-code-point": "^3.0.0",
1534 | "strip-ansi": "^6.0.1"
1535 | },
1536 | "engines": {
1537 | "node": ">=8"
1538 | }
1539 | },
1540 | "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
1541 | "version": "6.0.1",
1542 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1543 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1544 | "dev": true,
1545 | "dependencies": {
1546 | "ansi-regex": "^5.0.1"
1547 | },
1548 | "engines": {
1549 | "node": ">=8"
1550 | }
1551 | },
1552 | "node_modules/yaml": {
1553 | "version": "2.4.1",
1554 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
1555 | "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
1556 | "dev": true,
1557 | "bin": {
1558 | "yaml": "bin.mjs"
1559 | },
1560 | "engines": {
1561 | "node": ">= 14"
1562 | }
1563 | }
1564 | }
1565 | }
1566 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "devDependencies": {
3 | "autoprefixer": "^10.4.19",
4 | "postcss": "^8.4.38",
5 | "tailwindcss": "^3.4.1",
6 | "typescript": "^5.4.3"
7 | },
8 | "scripts": {
9 | "dev": "tailwindcss -i ./docs/css/input.css -o ./docs/css/style.css --watch",
10 | "tsc": "tsc --watch",
11 | "sass": "sass --watch ./docs/css/input.scss ./docs/css/input.css"
12 | },
13 | "dependencies": {
14 | "sass": "^1.72.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | }
6 | }
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: ["./docs/**/*.{html, ts}"],
4 | theme: {
5 | extend: {},
6 | },
7 | plugins: [],
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | /* Visit https://aka.ms/tsconfig to read more about this file */
4 |
5 | /* Projects */
6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12 |
13 | /* Language and Environment */
14 | "target": "ES6", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16 | // "jsx": "preserve", /* Specify what JSX code is generated. */
17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
26 |
27 | /* Modules */
28 | "module": "ES6", /* Specify what module code is generated. */
29 | // "rootDir": "./", /* Specify the root folder within your source files. */
30 | "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */
36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
38 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
39 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
40 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
41 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
42 | // "resolveJsonModule": true, /* Enable importing .json files. */
43 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
44 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */
45 |
46 | /* JavaScript Support */
47 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
48 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
50 |
51 | /* Emit */
52 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
53 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */
54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
55 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
56 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
57 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
58 | // "outDir": "./", /* Specify an output folder for all emitted files. */
59 | // "removeComments": true, /* Disable emitting comments. */
60 | // "noEmit": true, /* Disable emitting files from a compilation. */
61 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
62 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
63 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
64 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
65 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
66 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
67 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
68 | // "newLine": "crlf", /* Set the newline character for emitting files. */
69 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
70 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
71 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
72 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
73 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
74 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
75 |
76 | /* Interop Constraints */
77 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
78 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
79 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
80 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
81 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
82 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
83 |
84 | /* Type Checking */
85 | "strict": true, /* Enable all strict type-checking options. */
86 | "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
87 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
88 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
89 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
90 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
91 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
92 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
93 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
94 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
95 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
96 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
97 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
98 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
99 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
100 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
101 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
102 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
103 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
104 |
105 | /* Completeness */
106 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
107 | "skipLibCheck": true /* Skip type checking all .d.ts files. */
108 | }
109 | }
110 |
--------------------------------------------------------------------------------