├── .gitignore
├── .prettierrc
├── .terserrc.js
├── babel.config.js
├── build
└── mrp.user.js
├── mrp-script.iml
├── package.json
├── readme.md
├── src
├── components
│ ├── button.ts
│ ├── calcPrices.ts
│ ├── catalogObserver.ts
│ ├── router.ts
│ ├── sortProducts.ts
│ ├── stylesInjector.ts
│ ├── toggle.ts
│ └── urlObserver.ts
├── constants.ts
├── global.d.ts
├── icons.ts
├── index.ts
├── pages
│ ├── basket.ts
│ ├── checkout.ts
│ ├── common.ts
│ ├── favorites.ts
│ ├── page.ts
│ └── product.ts
├── styles
│ ├── button.less
│ ├── catalog.less
│ ├── index.less
│ ├── price.less
│ ├── toggle.less
│ └── toolbar.less
└── utils.ts
├── tsconfig.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .parcel-cache
3 | .vscode
4 | .DS_Store
5 | .scannerwork
6 | node_modules
7 | yarn-error.log
8 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "arrowParens": "avoid",
3 | "trailingComma": "es5",
4 | "tabWidth": 4,
5 | "semi": true,
6 | "singleQuote": true,
7 | "printWidth": 120,
8 | "endOfLine": "lf"
9 | }
10 |
--------------------------------------------------------------------------------
/.terserrc.js:
--------------------------------------------------------------------------------
1 | const pkg = require('./package.json');
2 |
3 | const preamble = `
4 | // ==UserScript==
5 | // @name Megamarket Real Price
6 | // @description Выводит цены с учетом бонусов и добавляет сортировку по ним
7 | // @version ${pkg.version}
8 | // @author ${pkg.author}
9 | // @license MIT
10 | // @match *://*.megamarket.ru/*
11 | // @namespace http://tampermonkey.net/
12 | // @icon https://www.google.com/s2/favicons?sz=64&domain=megamarket.ru
13 | // @homepageURL https://github.com/undfndusr/mrp
14 | // @downloadURL https://github.com/undfndusr/mrp/raw/master/build/mrp.user.js
15 | // @updateURL https://github.com/undfndusr/mrp/raw/master/build/mrp.user.js
16 | // @run-at document-end
17 | // @grant GM.setValue
18 | // @grant GM.getValue
19 | // ==/UserScript==
20 | `.slice(1);
21 |
22 | // https://github.com/parcel-bundler/parcel/pull/2666#issuecomment-563054225
23 | module.exports = {
24 | compress: false,
25 | output: {
26 | preamble,
27 | },
28 | };
29 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function (api) {
2 | const isProdMode = process.env.NODE_ENV === 'production';
3 |
4 | api.cache(!isProdMode);
5 |
6 | const plugins = isProdMode ? ['transform-remove-console'] : [];
7 |
8 | return {
9 | plugins,
10 | };
11 | };
12 |
--------------------------------------------------------------------------------
/build/mrp.user.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name Megamarket Real Price
3 | // @description Выводит цены с учетом бонусов и добавляет сортировку по ним
4 | // @version 2.0.7
5 | // @author undfndusr
6 | // @license MIT
7 | // @match *://*.megamarket.ru/*
8 | // @namespace http://tampermonkey.net/
9 | // @icon https://www.google.com/s2/favicons?sz=64&domain=megamarket.ru
10 | // @homepageURL https://github.com/undfndusr/mrp
11 | // @downloadURL https://github.com/undfndusr/mrp/raw/master/build/mrp.user.js
12 | // @updateURL https://github.com/undfndusr/mrp/raw/master/build/mrp.user.js
13 | // @run-at document-end
14 | // @grant GM.setValue
15 | // @grant GM.getValue
16 | // ==/UserScript==
17 | var e;
18 | (function (e) {
19 | e['BASKET'] = 'BASKET';
20 | e['CHECKOUT'] = 'CHECKOUT';
21 | e['COMMON'] = 'COMMON';
22 | e['PRODUCT'] = 'PRODUCT';
23 | e['FAVORITES'] = 'FAVORITES';
24 | })(e || (e = {}));
25 | const t = {
26 | ['BASKET']: '/multicart/',
27 | ['CHECKOUT']: '/multicart/checkout/',
28 | ['PRODUCT']: '/catalog/details/',
29 | ['FAVORITES']: '/personal/favorites/',
30 | };
31 | const o = {
32 | ['BASKET']: '.multicart-item__summary',
33 | ['CHECKOUT']: '.precheck-block',
34 | ['COMMON']: '[data-product-id]',
35 | ['FAVORITES']: '[data-product-id]',
36 | ['PRODUCT']: '.pdp-sales-block .bonus-amount',
37 | };
38 | const r = {
39 | INIT_DELAY: 2e3,
40 | REAL_PRICE_CLASSNAME: 'mrp-real-price',
41 | MRP_TOOLBAR_CLASSNAME: 'mrp-toolbar',
42 | CATALOG_WRAPPER_SELECTOR: '.r',
43 | CATALOG_FILTER_SELECTOR: '.r .filter',
44 | BASKET_TOTAL_PRICE_SELECTOR: '[class*="__total-price-value"]',
45 | PRODUCT_SELECTOR: '[id][data-product-id]',
46 | PRODUCT_PRICE_SELECTOR: '.item-price',
47 | PRODUCT_OFFERS_SECTIONS: '.product-offers',
48 | FAVORITES_CATALOG_WRAPPER_SELECTOR: '.personal-listing__container',
49 | SORT_TOGGLE_KEY: 'sortToggle',
50 | CURRENT_PAGE_URL_KEY: 'currentPageUrl',
51 | };
52 | const n = [
53 | { wrapperSelector: '.pdp-sales-block', priceSelector: '[class*="__price-final"]', bonusSelector: '.bonus-amount' },
54 | { wrapperSelector: '.product-list-item-price__money', priceSelector: '.amount', bonusSelector: '.bonus-amount' },
55 | {
56 | wrapperSelector: '.product-offer-price',
57 | priceSelector: '.product-offer-price__amount',
58 | bonusSelector: '.bonus-amount',
59 | },
60 | {
61 | wrapperSelector: '.goods-item-card__money',
62 | priceSelector: '.goods-item-card__amount',
63 | bonusSelector: '.bonus-amount',
64 | },
65 | {
66 | wrapperSelector: '.catalog-item-regular-desktop__price-block',
67 | priceSelector: '.catalog-item-regular-desktop__price',
68 | bonusSelector: '.bonus-amount',
69 | },
70 | {
71 | wrapperSelector: '.multicart-item__summary',
72 | priceSelector: '.cart-summary-redesign__total-price-value',
73 | bonusSelector: '.bonus-amount',
74 | },
75 | { wrapperSelector: '.cart-item-price', priceSelector: '.price', bonusSelector: '.bonus-amount' },
76 | {
77 | wrapperSelector: '.precheck-block',
78 | priceSelector: '.precheck-block__total-text',
79 | bonusSelector: '.bonus-amount',
80 | },
81 | ];
82 | const c = e => {
83 | const o = (0, t)[e];
84 | return location.pathname.startsWith(o);
85 | };
86 | const a = (e, t = 1e4) => {
87 | return new Promise((o, r) => {
88 | try {
89 | setTimeout(() => {
90 | o(null);
91 | }, t);
92 | let r;
93 | const n = () => {
94 | const t = document.querySelector(e);
95 | if (t) {
96 | clearTimeout(r);
97 | o(t);
98 | } else r = setTimeout(n, 100);
99 | };
100 | n();
101 | } catch (e) {
102 | r(e);
103 | }
104 | });
105 | };
106 | const s = e => {
107 | return (...t) => {
108 | e;
109 | };
110 | };
111 | const i = e => {
112 | return e ? +e.replace(/[^0-9.-]+/g, '') : 0;
113 | };
114 | const l = e => {
115 | return new Promise(t => setTimeout(() => t(), e));
116 | };
117 | const u = (e, t = {}, o = [], r = null) => {
118 | const n = document.createElement(e);
119 | if (typeof t === 'object') for (const e in t) n.setAttribute(e, t[e]);
120 | if (Array.isArray(o))
121 | o.forEach(e => {
122 | n.appendChild(typeof e === 'string' ? document.createTextNode(e) : e);
123 | });
124 | if (r) r.appendChild(n);
125 | return n;
126 | };
127 | const p = (e, t) => {
128 | let o;
129 | return function (...r) {
130 | return new Promise(n => {
131 | clearTimeout(o);
132 | o = setTimeout(() => {
133 | o = null;
134 | Promise.resolve(e.apply(this, [...r])).then(n);
135 | }, t);
136 | });
137 | };
138 | };
139 | const d = async e => {
140 | await GM.setValue((0, r).CURRENT_PAGE_URL_KEY, window.location.href);
141 | const t = async () => {
142 | const t = await GM.getValue((0, r).CURRENT_PAGE_URL_KEY);
143 | const o = window.location.href;
144 | if (t !== o) {
145 | await GM.setValue((0, r).CURRENT_PAGE_URL_KEY, o);
146 | e();
147 | }
148 | };
149 | const o = (0, p)(t, 500);
150 | const n = new MutationObserver(o);
151 | n.observe(document.body, { childList: true, subtree: true });
152 | };
153 | var m = {};
154 | m =
155 | '.mrp-button,.mrp-toggle{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:6px 12px;font-size:14px;transition:all .3s ease-out;display:flex}.mrp-button svg{color:var(--pui-text-tertiary);transition:color .3s ease-out}.mrp-button:hover{background-color:#8654cc1a}.mrp-button:hover svg{color:var(--pui-button-primary)}@media screen and (max-width:968px){.mrp-button .text{display:none}}.r .sort-field .field{max-width:210px}.r .filter{margin-left:auto}.mrp-real-price.mrp-real-price.mrp-real-price{letter-spacing:normal;color:#e91e63;font-family:SB Sans Display,sans-serif;font-size:max(80%,16px);line-height:1.4}.mrp-toolbar{gap:16px;margin:0 24px;display:flex}@media screen and (max-width:1200px){.mrp-toolbar{margin-top:-8px;margin-bottom:-8px}}.mrp-toggle{position:relative}.mrp-toggle input,.mrp-toggle input:active{opacity:0;border:0;outline:none;width:0;height:0;position:absolute;left:-5000px}.mrp-toggle .icon{background:#f8f8f8;border:.2em solid #ddd;border-radius:1.6em;width:5.3em;height:3.2em;padding:1em;font-size:7px;transition:all .3s ease-out;display:block;position:relative}.mrp-toggle .icon:before{content:"";text-indent:4em;z-index:2;background:#fff;border-radius:1.4em;width:2.8em;height:2.8em;transition:all .25s ease-in-out;display:block;position:absolute;top:0;left:0;right:auto;box-shadow:0 .3em .3em #0003,0 0 0 .1em #ddd}.mrp-toggle .icon:after{content:"";z-index:1;background:#f8f8f8;border-radius:1.4em;width:2.8em;height:100%;transition:all .25s ease-in-out;display:block;position:absolute;top:0;left:0}.mrp-toggle input:active+.icon:before{width:3.2em}.mrp-toggle input:checked+.icon{border-color:var(--pui-button-primary);box-shadow:inset 0 0 0 2em var(--pui-button-primary)}.mrp-toggle input:checked+.icon:after{background-color:var(--pui-button-primary);width:100%;right:1.4em}.mrp-toggle input:checked+.icon:before{left:calc(100% - 2.8em);box-shadow:0 0 0 .1em #0000,0 .3em .3em #0000004d}.mrp-toggle input:checked:active+.icon:before{left:calc(100% - 3.2em)}@media screen and (max-width:968px){.mrp-toggle .text{display:none}}';
156 | const E = () => {
157 | document.head.insertAdjacentHTML('beforeend', ``);
158 | };
159 | const S = false;
160 | const g = (0, s)(S);
161 | const T = new Intl.NumberFormat('ru-RU', { style: 'currency', currency: 'RUB', maximumFractionDigits: 0 });
162 | const h = e => {
163 | const {
164 | wrapperEl: t,
165 | priceSelector: o = '.item-price',
166 | bonusSelector: n = '.bonus-amount',
167 | realPriceClassName: c,
168 | } = e;
169 | S;
170 | g('---- wrapperEl', t);
171 | const a = t.querySelector(o);
172 | const s = t.querySelector(n);
173 | const l = t.querySelector(`.${c}`);
174 | g('---- priceEl', o, a);
175 | g('---- bonusEl', n, s);
176 | g('---- realPriceEl', l);
177 | if (!a || !s) {
178 | g('setRealPrice cancel');
179 | S;
180 | return;
181 | }
182 | const p = (0, i)(a.firstChild.textContent.trim());
183 | const d = (0, i)(s.firstChild.textContent.trim());
184 | g('---- priceValue', p);
185 | g('---- bonusValue', d);
186 | const m = +p - +d;
187 | g('---- newPriceValue', m);
188 | const E = ` (${T.format(m)})`;
189 | g('---- newPriceFormatted', E);
190 | if (l) {
191 | l.textContent = E;
192 | g('---- realPriceEl', l);
193 | } else {
194 | const e = a.closest((0, r).PRODUCT_SELECTOR)?.id;
195 | const t = (0, u)('span', { class: c, 'data-parent-id': e }, [E]);
196 | g('---- newPriceEl', t);
197 | a.append(t);
198 | }
199 | g('setRealPrice end');
200 | S;
201 | };
202 | const R = async () => {
203 | S;
204 | (0, n).forEach(({ wrapperSelector: e, priceSelector: t, bonusSelector: o }) => {
205 | const n = document.querySelectorAll(e);
206 | S;
207 | n.forEach(e => {
208 | h({ wrapperEl: e, priceSelector: t, bonusSelector: o, realPriceClassName: (0, r).REAL_PRICE_CLASSNAME });
209 | });
210 | });
211 | S;
212 | };
213 | const f = async () => {
214 | await R();
215 | };
216 | class y {
217 | constructor({ pageType: e, pageReadyElementSelector: t, onPreparePage: o, onRun: r }) {
218 | this.run = async () => {
219 | try {
220 | const e = await (0, a)(this._pageReadyElementSelector);
221 | await this.onPreparePage?.();
222 | await this.onRun();
223 | } catch (e) {}
224 | };
225 | this._pageType = e;
226 | this._pageReadyElementSelector = t;
227 | this.onPreparePage = o;
228 | this.onRun = r;
229 | }
230 | }
231 | const b = async () => {
232 | const e = document.querySelector((0, r).BASKET_TOTAL_PRICE_SELECTOR);
233 | const t = new MutationObserver(([e]) => {
234 | const t = e.target.textContent.trim();
235 | if (e.oldValue !== t) (0, f)();
236 | });
237 | t.observe(e, {
238 | characterData: true,
239 | attributes: false,
240 | childList: false,
241 | subtree: true,
242 | characterDataOldValue: true,
243 | });
244 | };
245 | const C = async () => {
246 | (0, f)();
247 | };
248 | const _ = new (0, y)({ pageType: (0, e).BASKET, pageReadyElementSelector: (0, o).BASKET, onPreparePage: b, onRun: C });
249 | const O = false;
250 | const A = (0, s)(O);
251 | const w = e => {
252 | if (!e) return;
253 | const t = e.querySelector(`.${(0, r).REAL_PRICE_CLASSNAME}`)?.textContent;
254 | const o = e.querySelector((0, r).PRODUCT_PRICE_SELECTOR)?.textContent;
255 | const n = (0, i)(t || o);
256 | A('realPrice', t);
257 | A('price', o);
258 | A('resultPrice', n);
259 | return n;
260 | };
261 | const P = (e, t) => {
262 | A('sort a', e);
263 | A('sort b', t);
264 | if (!e.hasAttribute('data-product-id')) return 1;
265 | if (!t.hasAttribute('data-product-id')) return -1;
266 | const o = w(e);
267 | const r = w(t);
268 | return o - r;
269 | };
270 | const L = () => {
271 | const e = document.querySelector((0, r).PRODUCT_SELECTOR);
272 | if (!e) return;
273 | const t = e.parentElement;
274 | Array.from(t.children)
275 | .sort(P)
276 | .forEach(e => t.append(e));
277 | };
278 | const x = async e => {
279 | const t = e.target.checked;
280 | if (t) L();
281 | await GM.setValue((0, r).SORT_TOGGLE_KEY, t);
282 | };
283 | const v = async () => {
284 | const e = await GM.getValue((0, r).SORT_TOGGLE_KEY);
285 | if (e) L();
286 | };
287 | let k = '';
288 | const M = async e => {
289 | const t = document.querySelector((0, r).PRODUCT_SELECTOR);
290 | if (!t) return;
291 | if (k !== t.id) {
292 | k = t.id;
293 | e();
294 | }
295 | };
296 | const U = (0, p)(M, 300);
297 | const G = async (e, t) => {
298 | try {
299 | k = '';
300 | const o = new MutationObserver(async () => {
301 | U(t);
302 | });
303 | o.observe(e, { childList: true, subtree: true });
304 | return o;
305 | } catch (e) {}
306 | };
307 | const I = ({ text: e, attrs: t, icon: o, onClick: r }) => {
308 | const n = e ? [(0, u)('span', { class: 'text' }, [e])] : [];
309 | const c = (0, u)('button', { class: 'mrp-button', ...t }, n);
310 | if (o) c.insertAdjacentHTML('afterbegin', o);
311 | if (r) c.addEventListener('click', r);
312 | return c;
313 | };
314 | const K =
315 | '';
316 | const N =
317 | '';
318 | const V = ({ text: e, attrs: t, checked: o, onChange: r }) => {
319 | const n = o ? { type: 'checkbox', checked: o } : { type: 'checkbox' };
320 | const c = (0, u)('input', n);
321 | const a = (0, u)('span', { class: 'icon' });
322 | const s = (0, u)('span', { class: 'text' }, [e]);
323 | const i = (0, u)('label', { class: 'mrp-toggle', ...t }, [c, a, s]);
324 | if (r) c.addEventListener('change', r);
325 | return i;
326 | };
327 | let D = null;
328 | const q = () => {
329 | const e = document.querySelector((0, r).CATALOG_FILTER_SELECTOR);
330 | const t = (0, u)('div', { class: (0, r).MRP_TOOLBAR_CLASSNAME }, []);
331 | e.before(t);
332 | };
333 | const F = async () => {
334 | try {
335 | const e = document.querySelector(`.${(0, r).MRP_TOOLBAR_CLASSNAME}`);
336 | const t = await GM.getValue((0, r).SORT_TOGGLE_KEY);
337 | const o = (0, V)({
338 | checked: t,
339 | text: 'Автосортировка',
340 | attrs: { title: 'Вкл/Выкл автоматической сортировки по "красным" ценникам' },
341 | onChange: (0, x),
342 | });
343 | const n = (0, I)({
344 | text: 'Ручная сортировка',
345 | attrs: { title: 'Ручная сортировка по "красным" ценникам' },
346 | icon: (0, K),
347 | onClick: (0, L),
348 | });
349 | const c = (0, I)({
350 | text: 'Пересчет цен',
351 | attrs: { title: 'Ручной запуск подсчета цен с учетом бонусов' },
352 | icon: (0, N),
353 | onClick: (0, f),
354 | });
355 | e.append(o, n, c);
356 | } catch (e) {}
357 | };
358 | const B = async () => {
359 | await (0, f)();
360 | await (0, v)();
361 | };
362 | const H = async () => {
363 | const e = document.querySelector((0, r).CATALOG_WRAPPER_SELECTOR);
364 | const t = document.querySelector((0, r).CATALOG_FILTER_SELECTOR);
365 | const o = document.querySelector(`.${(0, r).MRP_TOOLBAR_CLASSNAME}`);
366 | if (e && !D) D = (0, G)(e, B);
367 | if (t && !o) {
368 | q();
369 | F();
370 | }
371 | };
372 | const Y = async () => {
373 | try {
374 | const e = document.querySelector((0, r).CATALOG_WRAPPER_SELECTOR);
375 | await (0, f)();
376 | if (e) await (0, v)();
377 | } catch (e) {}
378 | };
379 | const j = new (0, y)({ pageType: (0, e).COMMON, pageReadyElementSelector: (0, o).COMMON, onPreparePage: H, onRun: Y });
380 | const z = (0, p)((0, f), 300);
381 | const W = async () => {
382 | const e = document.querySelector((0, o).CHECKOUT);
383 | const t = new MutationObserver(z);
384 | t.observe(e, { childList: true, subtree: true });
385 | };
386 | const $ = async () => {
387 | (0, f)();
388 | };
389 | const Z = new (0, y)({
390 | pageType: (0, e).CHECKOUT,
391 | pageReadyElementSelector: (0, o).CHECKOUT,
392 | onPreparePage: W,
393 | onRun: $,
394 | });
395 | let J = null;
396 | const Q = async () => {
397 | const e = document.querySelector((0, r).FAVORITES_CATALOG_WRAPPER_SELECTOR);
398 | if (e && !J) J = (0, G)(e, (0, f));
399 | };
400 | const X = async () => {
401 | (0, f)();
402 | };
403 | const ee = new (0, y)({
404 | pageType: (0, e).FAVORITES,
405 | pageReadyElementSelector: (0, o).FAVORITES,
406 | onPreparePage: Q,
407 | onRun: X,
408 | });
409 | const et = (0, p)((0, f), 300);
410 | const eo = async () => {
411 | const e = document.querySelector((0, r).PRODUCT_OFFERS_SECTIONS);
412 | if (!e) return;
413 | const t = new MutationObserver(et);
414 | t.observe(e, { childList: true, subtree: true });
415 | };
416 | const er = async () => {
417 | (0, f)();
418 | };
419 | const en = new (0, y)({
420 | pageType: (0, e).PRODUCT,
421 | pageReadyElementSelector: (0, o).PRODUCT,
422 | onPreparePage: eo,
423 | onRun: er,
424 | });
425 | const ec = [(0, en)];
426 | const ea = () => {
427 | if ((0, c)((0, e).PRODUCT)) return 0, en;
428 | if ((0, c)((0, e).CHECKOUT)) return 0, Z;
429 | if ((0, c)((0, e).BASKET)) return 0, _;
430 | if ((0, c)((0, e).FAVORITES)) return 0, ee;
431 | return 0, j;
432 | };
433 | const es = async () => {
434 | const e = ea();
435 | e.run();
436 | };
437 | const ei = e => {
438 | document.onvisibilitychange = () => {
439 | if (document.visibilityState === 'visible') e();
440 | };
441 | };
442 | const el = () => {
443 | (0, E)();
444 | (0, es)();
445 | (0, d)((0, es));
446 | ei((0, es));
447 | };
448 | try {
449 | window.onload = () => {
450 | setTimeout(el, (0, r).INIT_DELAY);
451 | };
452 | } catch (e) {}
453 |
--------------------------------------------------------------------------------
/mrp-script.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mrp",
3 | "description": "Megamarket real price",
4 | "version": "2.0.7",
5 | "license": "MIT",
6 | "author": "undfndusr",
7 | "source": "src/index.ts",
8 | "main": "build/mrp.user.js",
9 | "targets": {
10 | "main": {
11 | "sourceMap": false,
12 | "optimize": true
13 | }
14 | },
15 | "scripts": {
16 | "start": "parcel watch",
17 | "build": "parcel build"
18 | },
19 | "devDependencies": {
20 | "@babel/core": "^7.12.0",
21 | "@parcel/optimizer-terser": "^2.10.3",
22 | "@parcel/transformer-inline-string": "^2.10.3",
23 | "@parcel/transformer-less": "2.10.3",
24 | "@types/tampermonkey": "^5.0.2",
25 | "babel-plugin-transform-remove-console": "^6.9.4",
26 | "parcel": "^2.10.3"
27 | },
28 | "browserslist": "> 0.5%, last 2 versions, not dead"
29 | }
30 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # MRP Script
2 |
3 | Скрипт для Мегамаркета, добавляющий на страницы ценники с учетом бонусов, а также возможность сортировки по ним.
4 |
5 | ## Установка
6 |
7 | 1. Установите одно из расширений для вашего браузера:
8 | - Tampermonkey: [Chrome](https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru) | [Mozilla](https://addons.mozilla.org/ru/firefox/addon/tampermonkey/)
9 | - Violentmonkey: [Chrome](https://chromewebstore.google.com/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag) | [Mozilla](https://addons.mozilla.org/ru/firefox/addon/violentmonkey/)
10 | - Greasemonkey: [Mozilla](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/)
11 | - Userscripts: [Safari](https://github.com/quoid/userscripts)
12 | 2. Откройте страницу скрипта - [mrp.user.js](https://github.com/undfndusr/mrp/raw/master/build/mrp.user.js)
13 | 3. Установите скрипт (в случае Сафари следуйте инструкции, приведенной на странице расширения Userscripts)
14 |
15 | ## Использование
16 |
17 | На всех страницах мегамаркета скрипт автоматически встраивает ценники для товаров, за которые начисляют бонусы.
18 | 
19 |
20 | На страницах каталога дополнительно встраиваются кнопки для управления сортировкой по высчитанным ценникам.
21 | 
22 |
--------------------------------------------------------------------------------
/src/components/button.ts:
--------------------------------------------------------------------------------
1 | import { cn } from '../utils';
2 |
3 | interface Props {
4 | text?: string;
5 | attrs: Record;
6 | icon?: string;
7 | onClick?: () => void;
8 | }
9 |
10 | export const createButton = ({ text, attrs, icon, onClick }: Props): HTMLElement => {
11 | const children = text ? [cn('span', { class: 'text' }, [text])] : [];
12 | const button = cn('button', { class: 'mrp-button', ...attrs }, children);
13 |
14 | if (icon) {
15 | button.insertAdjacentHTML('afterbegin', icon);
16 | }
17 |
18 | if (onClick) {
19 | button.addEventListener('click', onClick);
20 | }
21 |
22 | return button;
23 | };
24 |
--------------------------------------------------------------------------------
/src/components/calcPrices.ts:
--------------------------------------------------------------------------------
1 | import { cn, createLogger, digitsOnly } from '../utils';
2 | import { PARAMS, sectionsWithPriceElements } from '../constants';
3 |
4 | const debug = false;
5 | const log = createLogger(debug);
6 |
7 | const priceFormatter = new Intl.NumberFormat('ru-RU', {
8 | style: 'currency',
9 | currency: 'RUB',
10 | maximumFractionDigits: 0,
11 | });
12 |
13 | const setRealPrice = params => {
14 | const { wrapperEl, priceSelector = '.item-price', bonusSelector = '.bonus-amount', realPriceClassName } = params;
15 |
16 | debug && console.groupCollapsed('setRealPrice start');
17 | log('---- wrapperEl', wrapperEl);
18 |
19 | const priceEl = wrapperEl.querySelector(priceSelector);
20 | const bonusEl = wrapperEl.querySelector(bonusSelector);
21 | const realPriceEl = wrapperEl.querySelector(`.${realPriceClassName}`);
22 |
23 | log('---- priceEl', priceSelector, priceEl);
24 | log('---- bonusEl', bonusSelector, bonusEl);
25 | log('---- realPriceEl', realPriceEl);
26 |
27 | if (!priceEl || !bonusEl) {
28 | log('setRealPrice cancel');
29 | debug && console.groupEnd();
30 | return;
31 | }
32 |
33 | const priceValue = digitsOnly(priceEl.firstChild.textContent.trim());
34 | const bonusValue = digitsOnly(bonusEl.firstChild.textContent.trim());
35 |
36 | log('---- priceValue', priceValue);
37 | log('---- bonusValue', bonusValue);
38 |
39 | const newPriceValue = +priceValue - +bonusValue;
40 | log('---- newPriceValue', newPriceValue);
41 |
42 | const newPriceFormatted = ` (${priceFormatter.format(newPriceValue)})`;
43 | log('---- newPriceFormatted', newPriceFormatted);
44 |
45 | if (realPriceEl) {
46 | realPriceEl.textContent = newPriceFormatted;
47 | log('---- realPriceEl', realPriceEl);
48 | } else {
49 | const parentId = priceEl.closest(PARAMS.PRODUCT_SELECTOR)?.id;
50 | const newPriceEl = cn('span', { class: realPriceClassName, 'data-parent-id': parentId }, [newPriceFormatted]);
51 | log('---- newPriceEl', newPriceEl);
52 | priceEl.append(newPriceEl);
53 | }
54 |
55 | log('setRealPrice end');
56 | debug && console.groupEnd();
57 | };
58 |
59 | const calcPrices = async (): Promise => {
60 | debug && console.log('calcPrices start');
61 |
62 | sectionsWithPriceElements.forEach(({ wrapperSelector, priceSelector, bonusSelector }) => {
63 | const wrappers = document.querySelectorAll(wrapperSelector);
64 |
65 | debug && console.log('calcPrices wrappers', wrappers);
66 |
67 | wrappers.forEach(wrapperEl => {
68 | setRealPrice({
69 | wrapperEl,
70 | priceSelector,
71 | bonusSelector,
72 | realPriceClassName: PARAMS.REAL_PRICE_CLASSNAME,
73 | });
74 | });
75 | });
76 |
77 | debug && console.log('calcPrices end');
78 | };
79 |
80 | export const runCalcPrices = async (): Promise => {
81 | await calcPrices();
82 | };
83 |
--------------------------------------------------------------------------------
/src/components/catalogObserver.ts:
--------------------------------------------------------------------------------
1 | import { PARAMS } from '../constants';
2 | import { debounce } from '../utils';
3 |
4 | let firstProductId = '';
5 |
6 | const mutationObserverCb = async (onChange: () => void): Promise => {
7 | const firstProductEl = document.querySelector(PARAMS.PRODUCT_SELECTOR);
8 |
9 | if (!firstProductEl) {
10 | return;
11 | }
12 |
13 | console.log(`CatalogObserver debounced. Values: ${firstProductId} -> ${firstProductEl.id}`);
14 |
15 | if (firstProductId !== firstProductEl.id) {
16 | firstProductId = firstProductEl.id;
17 | onChange();
18 | }
19 | };
20 |
21 | const debouncedMutationObserverCb = debounce(mutationObserverCb, 300);
22 |
23 | // Следит за изменением id первого товара в каталоге
24 | export const catalogObserver = async (catalogWrapper: Element, onChange: () => void): Promise => {
25 | console.log('CatalogObserver was run');
26 |
27 | try {
28 | // Обнуляем при старте
29 | firstProductId = '';
30 |
31 | const observer = new MutationObserver(async (): Promise => {
32 | console.log('CatalogObserver run');
33 |
34 | debouncedMutationObserverCb(onChange);
35 | });
36 |
37 | observer.observe(catalogWrapper, {
38 | childList: true,
39 | subtree: true,
40 | });
41 | } catch (e) {
42 | console.log('MRP.catalogObserver: ', e);
43 | }
44 | };
45 |
--------------------------------------------------------------------------------
/src/components/router.ts:
--------------------------------------------------------------------------------
1 | import { basketPage } from '../pages/basket';
2 | import { commonPage } from '../pages/common';
3 | import { checkoutPage } from '../pages/checkout';
4 | import { favoritesPage } from '../pages/favorites';
5 | import { productPage } from '../pages/product';
6 | import { PageType } from '../constants';
7 | import { isPage } from '../utils';
8 |
9 | export const router = async (): Promise => {
10 | if (isPage(PageType.PRODUCT)) {
11 | productPage.run();
12 | return;
13 | }
14 |
15 | if (isPage(PageType.CHECKOUT)) {
16 | checkoutPage.run();
17 | return;
18 | }
19 |
20 | if (isPage(PageType.BASKET)) {
21 | basketPage.run();
22 | return;
23 | }
24 |
25 | if (isPage(PageType.FAVORITES)) {
26 | favoritesPage.run();
27 | return;
28 | }
29 |
30 | commonPage.run();
31 | };
32 |
--------------------------------------------------------------------------------
/src/components/sortProducts.ts:
--------------------------------------------------------------------------------
1 | import { cn, createLogger, digitsOnly } from '../utils';
2 | import { PARAMS } from '../constants';
3 | import { sortIcon } from '../icons';
4 |
5 | const debug = false;
6 | const log = createLogger(debug);
7 |
8 | const getPriceFromProduct = product => {
9 | if (!product) {
10 | return;
11 | }
12 |
13 | const realPrice = product.querySelector(`.${PARAMS.REAL_PRICE_CLASSNAME}`)?.textContent;
14 | const price = product.querySelector(PARAMS.PRODUCT_PRICE_SELECTOR)?.textContent;
15 | const resultPrice = digitsOnly(realPrice || price);
16 |
17 | log('realPrice', realPrice);
18 | log('price', price);
19 | log('resultPrice', resultPrice);
20 |
21 | return resultPrice;
22 | };
23 |
24 | const sortFn = (a: Element, b: Element): number => {
25 | log('sort a', a);
26 | log('sort b', b);
27 |
28 | if (!a.hasAttribute('data-product-id')) {
29 | return 1;
30 | }
31 |
32 | if (!b.hasAttribute('data-product-id')) {
33 | return -1;
34 | }
35 |
36 | const aPrice = getPriceFromProduct(a);
37 | const bPrice = getPriceFromProduct(b);
38 |
39 | return aPrice - bPrice;
40 | };
41 |
42 | export const manualSortProducts = () => {
43 | console.log('manualSortProducts');
44 |
45 | const firstProduct = document.querySelector(PARAMS.PRODUCT_SELECTOR);
46 |
47 | if (!firstProduct) {
48 | return;
49 | }
50 |
51 | const currentOrderedCatalog = firstProduct.parentElement;
52 |
53 | Array.from(currentOrderedCatalog.children)
54 | .sort(sortFn)
55 | .forEach(node => currentOrderedCatalog.append(node));
56 | };
57 |
58 | export const handleChangeSortToggle = async (event: HtmlInputEvent): Promise => {
59 | const checked = event.target.checked;
60 |
61 | if (checked) {
62 | manualSortProducts();
63 | }
64 |
65 | await GM.setValue(PARAMS.SORT_TOGGLE_KEY, checked);
66 | };
67 |
68 | export const runAutoSortProducts = async (): Promise => {
69 | const checked = await GM.getValue(PARAMS.SORT_TOGGLE_KEY);
70 |
71 | if (checked) {
72 | manualSortProducts();
73 | }
74 | };
75 |
--------------------------------------------------------------------------------
/src/components/stylesInjector.ts:
--------------------------------------------------------------------------------
1 | import * as styles from 'bundle-text:../styles/index.less';
2 |
3 | export const injectStyles = () => {
4 | document.head.insertAdjacentHTML('beforeend', ``);
5 | };
6 |
--------------------------------------------------------------------------------
/src/components/toggle.ts:
--------------------------------------------------------------------------------
1 | import { cn } from '../utils';
2 |
3 | interface Props {
4 | text?: string;
5 | attrs: Record;
6 | checked?: boolean;
7 | onChange?: (event: HtmlInputEvent) => void;
8 | }
9 |
10 | export const createToggle = ({ text, attrs, checked, onChange }: Props): HTMLElement => {
11 | const inputAttrs = checked ? { type: 'checkbox', checked } : { type: 'checkbox' };
12 | const input = cn('input', inputAttrs);
13 | const icon = cn('span', { class: 'icon' });
14 | const textElement = cn('span', { class: 'text' }, [text]);
15 | const label = cn('label', { class: 'mrp-toggle', ...attrs }, [input, icon, textElement]);
16 |
17 | if (onChange) {
18 | input.addEventListener('change', onChange);
19 | }
20 |
21 | return label;
22 | };
23 |
--------------------------------------------------------------------------------
/src/components/urlObserver.ts:
--------------------------------------------------------------------------------
1 | import { debounce } from '../utils';
2 | import { PARAMS } from '../constants';
3 |
4 | export const observeUrlChange = async (onChange: () => void): Promise => {
5 | await GM.setValue(PARAMS.CURRENT_PAGE_URL_KEY, window.location.href);
6 |
7 | const onChangeHandler = async () => {
8 | const oldHref = await GM.getValue(PARAMS.CURRENT_PAGE_URL_KEY);
9 | const newHref = window.location.href;
10 |
11 | if (oldHref !== newHref) {
12 | console.log('MRP.observeUrlChange');
13 |
14 | await GM.setValue(PARAMS.CURRENT_PAGE_URL_KEY, newHref);
15 | onChange();
16 | }
17 | };
18 |
19 | const debouncedOnChangeHandler = debounce(onChangeHandler, 500);
20 |
21 | const observer = new MutationObserver(debouncedOnChangeHandler);
22 |
23 | observer.observe(document.body, {
24 | childList: true,
25 | subtree: true,
26 | });
27 | };
28 |
--------------------------------------------------------------------------------
/src/constants.ts:
--------------------------------------------------------------------------------
1 | export enum PageType {
2 | 'BASKET' = 'BASKET', // Корзина
3 | 'CHECKOUT' = 'CHECKOUT', // Корзина. Оформление
4 | 'COMMON' = 'COMMON', // Страница каталога и все остальные
5 | 'PRODUCT' = 'PRODUCT', // Страница с товаром
6 | 'FAVORITES' = 'FAVORITES', // Избранное
7 | }
8 |
9 | export const urlPathByPage = {
10 | [PageType.BASKET]: '/multicart/',
11 | [PageType.CHECKOUT]: '/multicart/checkout/',
12 | [PageType.PRODUCT]: '/catalog/details/',
13 | [PageType.FAVORITES]: '/personal/favorites/',
14 | };
15 |
16 | // Элементы, по наличию которых можно понять, что данные на странице подгрузились
17 | export const PAGE_READY_ELEMENT_SELECTOR: Record = {
18 | [PageType.BASKET]: '.multicart-item__summary',
19 | [PageType.CHECKOUT]: '.precheck-block',
20 | [PageType.COMMON]: '[data-product-id]',
21 | [PageType.FAVORITES]: '[data-product-id]',
22 | [PageType.PRODUCT]: '.pdp-sales-block .bonus-amount',
23 | };
24 |
25 | export const PARAMS = {
26 | INIT_DELAY: 2000, // Начальная задержка перед стартом, чтобы дождаться завершения всяких анимаций и прочего
27 | REAL_PRICE_CLASSNAME: 'mrp-real-price',
28 | MRP_TOOLBAR_CLASSNAME: 'mrp-toolbar',
29 | CATALOG_WRAPPER_SELECTOR: '.r',
30 | CATALOG_FILTER_SELECTOR: '.r .filter',
31 | BASKET_TOTAL_PRICE_SELECTOR: '[class*="__total-price-value"]',
32 | PRODUCT_SELECTOR: '[id][data-product-id]',
33 | PRODUCT_PRICE_SELECTOR: '.item-price',
34 | PRODUCT_OFFERS_SECTIONS: '.product-offers',
35 | FAVORITES_CATALOG_WRAPPER_SELECTOR: '.personal-listing__container',
36 | SORT_TOGGLE_KEY: 'sortToggle',
37 | CURRENT_PAGE_URL_KEY: 'currentPageUrl',
38 | };
39 |
40 | // Все разделы, содержащие цены (со всех страниц)
41 | // Держим в одном месте, т.к. одни и те же разделы могут встречаться на разных страницах
42 | export const sectionsWithPriceElements = [
43 | // Страница товара. Основной блок с ценой
44 | {
45 | wrapperSelector: '.pdp-sales-block',
46 | priceSelector: '[class*="__price-final"]',
47 | bonusSelector: '.bonus-amount',
48 | },
49 | // Страница товара. Блоки "Похожие товары" + "Рекомендуем также"
50 | {
51 | wrapperSelector: '.product-list-item-price__money',
52 | priceSelector: '.amount',
53 | bonusSelector: '.bonus-amount',
54 | },
55 | // Страница товара. Блок "Цены"
56 | {
57 | wrapperSelector: '.product-offer-price',
58 | priceSelector: '.product-offer-price__amount',
59 | bonusSelector: '.bonus-amount',
60 | },
61 | // Страница товара. Блок "Вы недавно смотрели"
62 | {
63 | wrapperSelector: '.goods-item-card__money',
64 | priceSelector: '.goods-item-card__amount',
65 | bonusSelector: '.bonus-amount',
66 | },
67 | // Страница каталога. Цены товаров
68 | {
69 | wrapperSelector: '.catalog-item-regular-desktop__price-block',
70 | priceSelector: '.catalog-item-regular-desktop__price',
71 | bonusSelector: '.bonus-amount',
72 | },
73 | // Корзина. Финальная цена
74 | {
75 | wrapperSelector: '.multicart-item__summary',
76 | priceSelector: '.cart-summary-redesign__total-price-value',
77 | bonusSelector: '.bonus-amount',
78 | },
79 | // Корзина. Товары
80 | {
81 | wrapperSelector: '.cart-item-price',
82 | priceSelector: '.price',
83 | bonusSelector: '.bonus-amount',
84 | },
85 | // Корзина. Оформление
86 | {
87 | wrapperSelector: '.precheck-block',
88 | priceSelector: '.precheck-block__total-text',
89 | bonusSelector: '.bonus-amount',
90 | },
91 | ];
92 |
--------------------------------------------------------------------------------
/src/global.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'bundle-text:*' {
2 | const value: string;
3 | export default value;
4 | }
5 |
6 | declare interface HtmlInputEvent extends Event {
7 | target: HTMLInputElement & EventTarget;
8 | }
9 |
--------------------------------------------------------------------------------
/src/icons.ts:
--------------------------------------------------------------------------------
1 | export const sortIcon =
2 | '';
3 | export const refreshPriceIcon =
4 | '';
5 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { observeUrlChange } from './components/urlObserver';
2 | import { injectStyles } from './components/stylesInjector';
3 | import { router } from './components/router';
4 | import { PARAMS } from './constants';
5 | import pkg from '../package.json';
6 |
7 | const observeVisibilityChange = (onChange: () => void) => {
8 | document.onvisibilitychange = () => {
9 | if (document.visibilityState === 'visible') {
10 | onChange();
11 | }
12 | };
13 | };
14 |
15 | const init = () => {
16 | console.log(`MRP v${pkg.version} init`);
17 |
18 | injectStyles();
19 |
20 | router(); // Стартовый запуск
21 | observeUrlChange(router); // Запуск при изменении урла
22 |
23 | // Дополнительно запускаем скрипт при переходе на вкладку
24 | // (для страниц, открытых в новой вкладке или выгруженных из памяти браузером)
25 | observeVisibilityChange(router);
26 | };
27 |
28 | try {
29 | window.onload = () => {
30 | console.clear();
31 | setTimeout(init, PARAMS.INIT_DELAY);
32 | };
33 | } catch (e) {
34 | console.log('MRP error:', e);
35 | }
36 |
--------------------------------------------------------------------------------
/src/pages/basket.ts:
--------------------------------------------------------------------------------
1 | import { runCalcPrices } from '../components/calcPrices';
2 | import { PAGE_READY_ELEMENT_SELECTOR, PageType, PARAMS } from '../constants';
3 | import { Page } from './page';
4 |
5 | const preparePage = async (): Promise => {
6 | const totalPriceEl = document.querySelector(PARAMS.BASKET_TOTAL_PRICE_SELECTOR);
7 |
8 | // Следим за изменением итоговой цены корзины (вместо слежки за каждым товаром)
9 | const observer = new MutationObserver(([mutation]) => {
10 | const newValue = mutation.target.textContent.trim();
11 |
12 | if (mutation.oldValue !== newValue) {
13 | runCalcPrices();
14 | }
15 | });
16 |
17 | observer.observe(totalPriceEl, {
18 | characterData: true,
19 | attributes: false,
20 | childList: false,
21 | subtree: true,
22 | characterDataOldValue: true,
23 | });
24 | };
25 |
26 | const run = async (): Promise => {
27 | runCalcPrices();
28 | };
29 |
30 | export const basketPage = new Page({
31 | pageType: PageType.BASKET,
32 | pageReadyElementSelector: PAGE_READY_ELEMENT_SELECTOR.BASKET,
33 | onPreparePage: preparePage,
34 | onRun: run,
35 | });
36 |
--------------------------------------------------------------------------------
/src/pages/checkout.ts:
--------------------------------------------------------------------------------
1 | import { runCalcPrices } from '../components/calcPrices';
2 | import { debounce } from '../utils';
3 | import { PAGE_READY_ELEMENT_SELECTOR, PageType } from '../constants';
4 | import { Page } from './page';
5 |
6 | const debouncedCalcPrice = debounce(runCalcPrices, 300);
7 |
8 | const preparePage = async (): Promise => {
9 | const precheckBlock = document.querySelector(PAGE_READY_ELEMENT_SELECTOR.CHECKOUT);
10 | const observer = new MutationObserver(debouncedCalcPrice);
11 |
12 | // Следим за всем блоком, т.к. изменения итоговой цены и бонусов очень непредсказуемы
13 | observer.observe(precheckBlock, {
14 | childList: true,
15 | subtree: true,
16 | });
17 | };
18 |
19 | const run = async (): Promise => {
20 | runCalcPrices();
21 | };
22 |
23 | export const checkoutPage = new Page({
24 | pageType: PageType.CHECKOUT,
25 | pageReadyElementSelector: PAGE_READY_ELEMENT_SELECTOR.CHECKOUT,
26 | onPreparePage: preparePage,
27 | onRun: run,
28 | });
29 |
--------------------------------------------------------------------------------
/src/pages/common.ts:
--------------------------------------------------------------------------------
1 | import { runCalcPrices } from '../components/calcPrices';
2 | import { handleChangeSortToggle, runAutoSortProducts, manualSortProducts } from '../components/sortProducts';
3 | import { PAGE_READY_ELEMENT_SELECTOR, PageType, PARAMS } from '../constants';
4 | import { catalogObserver } from '../components/catalogObserver';
5 | import { cn } from '../utils';
6 | import { Page } from './page';
7 | import { createButton } from '../components/button';
8 | import { refreshPriceIcon, sortIcon } from '../icons';
9 | import { createToggle } from '../components/toggle';
10 |
11 | const injectToolbar = (): void => {
12 | const mmToolbarFilter = document.querySelector(PARAMS.CATALOG_FILTER_SELECTOR);
13 | const mrpToolbar = cn('div', { class: PARAMS.MRP_TOOLBAR_CLASSNAME }, []);
14 | mmToolbarFilter.before(mrpToolbar);
15 | };
16 |
17 | const fillToolbar = async (): Promise => {
18 | try {
19 | const toolbar = document.querySelector(`.${PARAMS.MRP_TOOLBAR_CLASSNAME}`);
20 | const checked = await GM.getValue(PARAMS.SORT_TOGGLE_KEY);
21 |
22 | const autoSortToggle = createToggle({
23 | checked,
24 | text: 'Автосортировка',
25 | attrs: { title: 'Вкл/Выкл автоматической сортировки по "красным" ценникам' },
26 | onChange: handleChangeSortToggle,
27 | });
28 |
29 | const manualSortButton = createButton({
30 | text: 'Ручная сортировка',
31 | attrs: { title: 'Ручная сортировка по "красным" ценникам' },
32 | icon: sortIcon,
33 | onClick: manualSortProducts,
34 | });
35 |
36 | const calcPricesButton = createButton({
37 | text: 'Пересчет цен',
38 | attrs: { title: 'Ручной запуск подсчета цен с учетом бонусов' },
39 | icon: refreshPriceIcon,
40 | onClick: runCalcPrices,
41 | });
42 |
43 | toolbar.append(autoSortToggle, manualSortButton, calcPricesButton);
44 | } catch (e) {
45 | console.log('MRP.sortProducts.fillToolbar: ', e);
46 | }
47 | };
48 |
49 | const onCatalogChange = async (): Promise => {
50 | await runCalcPrices();
51 | await runAutoSortProducts();
52 | };
53 |
54 | const preparePage = async (): Promise => {
55 | const catalogWrapper = document.querySelector(PARAMS.CATALOG_WRAPPER_SELECTOR);
56 | const catalogFilter = document.querySelector(PARAMS.CATALOG_FILTER_SELECTOR);
57 | const mrpToolbar = document.querySelector(`.${PARAMS.MRP_TOOLBAR_CLASSNAME}`);
58 |
59 | // Следим за изменениями в каталоге
60 | if (catalogWrapper) {
61 | catalogObserver(catalogWrapper, onCatalogChange);
62 | }
63 |
64 | // Добавляем наш тулбар на страницу
65 | if (catalogFilter && !mrpToolbar) {
66 | injectToolbar();
67 | fillToolbar();
68 | }
69 | };
70 |
71 | const run = async (): Promise => {
72 | try {
73 | const catalogWrapper = document.querySelector(PARAMS.CATALOG_WRAPPER_SELECTOR);
74 |
75 | await runCalcPrices();
76 |
77 | if (catalogWrapper) {
78 | await runAutoSortProducts();
79 | }
80 | } catch (e) {
81 | console.log('MRP.commonPage.run', e);
82 | }
83 | };
84 |
85 | export const commonPage = new Page({
86 | pageType: PageType.COMMON,
87 | pageReadyElementSelector: PAGE_READY_ELEMENT_SELECTOR.COMMON,
88 | onPreparePage: preparePage,
89 | onRun: run,
90 | });
91 |
--------------------------------------------------------------------------------
/src/pages/favorites.ts:
--------------------------------------------------------------------------------
1 | import { Page } from './page';
2 | import { PAGE_READY_ELEMENT_SELECTOR, PageType, PARAMS } from '../constants';
3 | import { catalogObserver } from '../components/catalogObserver';
4 | import { runCalcPrices } from '../components/calcPrices';
5 |
6 | const preparePage = async (): Promise => {
7 | const catalogWrapper = document.querySelector(PARAMS.FAVORITES_CATALOG_WRAPPER_SELECTOR);
8 |
9 | if (catalogWrapper) {
10 | catalogObserver(catalogWrapper, runCalcPrices);
11 | }
12 | };
13 |
14 | const run = async (): Promise => {
15 | runCalcPrices();
16 | };
17 |
18 | export const favoritesPage = new Page({
19 | pageType: PageType.FAVORITES,
20 | pageReadyElementSelector: PAGE_READY_ELEMENT_SELECTOR.FAVORITES,
21 | onPreparePage: preparePage,
22 | onRun: run,
23 | });
24 |
--------------------------------------------------------------------------------
/src/pages/page.ts:
--------------------------------------------------------------------------------
1 | import { PageType } from '../constants';
2 | import { getDomElementAsync } from '../utils';
3 |
4 | type AsyncFn = () => Promise;
5 |
6 | type ConstructorArgs = {
7 | pageType: PageType;
8 | pageReadyElementSelector: string;
9 | onPreparePage?: AsyncFn;
10 | onRun: AsyncFn;
11 | };
12 |
13 | export class Page {
14 | private _pageType: PageType;
15 | private _pageReadyElementSelector: string;
16 |
17 | private onPreparePage: AsyncFn;
18 | private onRun: AsyncFn;
19 |
20 | constructor({ pageType, pageReadyElementSelector, onPreparePage, onRun }: ConstructorArgs) {
21 | this._pageType = pageType;
22 | this._pageReadyElementSelector = pageReadyElementSelector;
23 | this.onPreparePage = onPreparePage;
24 | this.onRun = onRun;
25 | }
26 |
27 | public run = async () => {
28 | try {
29 | console.log(`${this._pageType} page init`);
30 |
31 | await getDomElementAsync(this._pageReadyElementSelector);
32 |
33 | await this.onPreparePage?.();
34 |
35 | await this.onRun();
36 | } catch (e) {
37 | console.log(`MRP.${this._pageType}.run: `, e);
38 | }
39 | };
40 | }
41 |
--------------------------------------------------------------------------------
/src/pages/product.ts:
--------------------------------------------------------------------------------
1 | import { runCalcPrices } from '../components/calcPrices';
2 | import { debounce } from '../utils';
3 | import { PAGE_READY_ELEMENT_SELECTOR, PageType, PARAMS } from '../constants';
4 | import { Page } from './page';
5 |
6 | const debouncedCalcPrices = debounce(runCalcPrices, 300);
7 |
8 | const preparePage = async (): Promise => {
9 | const offersSection = document.querySelector(PARAMS.PRODUCT_OFFERS_SECTIONS);
10 | if (!offersSection) {
11 | return;
12 | }
13 |
14 | // Дополнительно следим за секцией "Цены"
15 | const observer = new MutationObserver(debouncedCalcPrices);
16 | observer.observe(offersSection, {
17 | childList: true,
18 | subtree: true,
19 | });
20 | };
21 |
22 | const run = async (): Promise => {
23 | runCalcPrices();
24 | };
25 |
26 | export const productPage = new Page({
27 | pageType: PageType.PRODUCT,
28 | pageReadyElementSelector: PAGE_READY_ELEMENT_SELECTOR.PRODUCT,
29 | onPreparePage: preparePage,
30 | onRun: run,
31 | });
32 |
--------------------------------------------------------------------------------
/src/styles/button.less:
--------------------------------------------------------------------------------
1 | // Кнопки
2 | .mrp-button {
3 | display: flex;
4 | align-items: center;
5 | justify-content: center;
6 | gap: 8px;
7 | padding: 6px 12px;
8 | border-radius: 4px;
9 | font-size: 14px;
10 | cursor: pointer;
11 | transition: all 0.3s ease-out;
12 |
13 | svg {
14 | color: var(--pui-text-tertiary);
15 | transition: color 0.3s ease-out;
16 | }
17 |
18 | &:hover {
19 | background-color: #8654cc1a;
20 |
21 | svg {
22 | color: var(--pui-button-primary);
23 | }
24 | }
25 |
26 | .text {
27 | @media screen and (max-width: 968px) {
28 | display: none;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/styles/catalog.less:
--------------------------------------------------------------------------------
1 | // Перебиваем стили каталога
2 | .r {
3 | .sort-field .field {
4 | max-width: 210px;
5 | }
6 |
7 | .filter {
8 | margin-left: auto;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/styles/index.less:
--------------------------------------------------------------------------------
1 | @import './button';
2 | @import './catalog';
3 | @import './price';
4 | @import './toolbar';
5 | @import './toggle';
6 |
--------------------------------------------------------------------------------
/src/styles/price.less:
--------------------------------------------------------------------------------
1 | // Стили ценников
2 | .mrp-real-price {
3 | &&& {
4 | font-family: SB Sans Display, sans-serif;
5 | font-size: max(80%, 16px);
6 | line-height: 1.4;
7 | letter-spacing: normal;
8 | color: #e91e63;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/styles/toggle.less:
--------------------------------------------------------------------------------
1 | // Переключатель
2 | .mrp-toggle {
3 | &:extend(.mrp-button);
4 | position: relative;
5 |
6 | input,
7 | input:active {
8 | border: 0;
9 | height: 0;
10 | opacity: 0;
11 | outline: none;
12 | position: absolute;
13 | left: -5000px;
14 | width: 0;
15 | }
16 |
17 | .icon {
18 | background: #f8f8f8;
19 | border: 0.2em solid #ddd;
20 | border-radius: 1.6em;
21 | width: 5.3em;
22 | height: 3.2em;
23 | padding: 1em;
24 | transition: all 0.3s ease-out;
25 | display: block;
26 | position: relative;
27 | font-size: 7px;
28 |
29 | &::before {
30 | background: #ffffff;
31 | border-radius: 1.4em;
32 | box-shadow: 0 0.3em 0.3em rgba(0, 0, 0, 0.2), 0 0 0 0.1em #ddd;
33 | content: '';
34 | display: block;
35 | height: 2.8em;
36 | left: 0;
37 | position: absolute;
38 | right: auto;
39 | text-indent: 4em;
40 | top: 0;
41 | transition: 0.25s ease-in-out;
42 | width: 2.8em;
43 | z-index: 2;
44 | }
45 |
46 | &::after {
47 | background: #f8f8f8;
48 | border-radius: 1.4em;
49 | content: '';
50 | display: block;
51 | height: 100%;
52 | left: 0;
53 | position: absolute;
54 | top: 0;
55 | transition: 0.25s ease-in-out;
56 | width: 2.8em;
57 | z-index: 1;
58 | }
59 | }
60 |
61 | input:active + .icon::before {
62 | width: 3.2em;
63 | }
64 |
65 | input:checked + .icon {
66 | border-color: var(--pui-button-primary);
67 | box-shadow: inset 0 0 0 2em var(--pui-button-primary);
68 | }
69 |
70 | input:checked + .icon::after {
71 | background-color: var(--pui-button-primary);
72 | right: 1.4em;
73 | width: 100%;
74 | }
75 |
76 | input:checked + .icon::before {
77 | box-shadow: 0 0 0 0.1em transparent, 0 0.3em 0.3em rgba(0, 0, 0, 0.3);
78 | left: calc(100% - 2.8em);
79 | }
80 |
81 | input:checked:active + .icon::before {
82 | left: calc(100% - 3.2em);
83 | }
84 |
85 | .text {
86 | @media screen and (max-width: 968px) {
87 | display: none;
88 | }
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/styles/toolbar.less:
--------------------------------------------------------------------------------
1 | // Тулбар
2 | .mrp-toolbar {
3 | display: flex;
4 | gap: 16px;
5 | margin: 0 24px;
6 |
7 | @media screen and (max-width: 1200px) {
8 | margin-top: -8px;
9 | margin-bottom: -8px;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/utils.ts:
--------------------------------------------------------------------------------
1 | import { PageType, urlPathByPage } from './constants';
2 |
3 | export const isPage = (page: PageType): boolean => {
4 | const path = urlPathByPage[page];
5 | return location.pathname.startsWith(path);
6 | };
7 |
8 | export const getDomElementAsync = (selector: string, timerLimit = 10000): Promise => {
9 | return new Promise((resolve, reject) => {
10 | try {
11 | setTimeout(() => {
12 | console.log(`Время ожидания DOM элемента ${selector} истекло (${timerLimit / 1000}s)`);
13 | resolve(null);
14 | }, timerLimit);
15 |
16 | let timerId;
17 |
18 | const tick = () => {
19 | const element = document.querySelector(selector) as HTMLElement;
20 |
21 | if (element) {
22 | clearTimeout(timerId);
23 | resolve(element);
24 | } else {
25 | timerId = setTimeout(tick, 100);
26 | }
27 | };
28 |
29 | tick();
30 | } catch (e) {
31 | reject(e);
32 | }
33 | });
34 | };
35 |
36 | export const createLogger = (isEnabled: boolean) => {
37 | return (...args) => {
38 | if (isEnabled) {
39 | console.log(...args);
40 | }
41 | };
42 | };
43 |
44 | export const digitsOnly = (cur: string): number => {
45 | return cur ? +cur.replace(/[^0-9.-]+/g, '') : 0;
46 | };
47 |
48 | export const sleep = (time: number): Promise => {
49 | return new Promise(resolve => setTimeout(() => resolve(), time));
50 | };
51 |
52 | export const cn = (tagName: string, attrs = {}, childrenList = [], parentNode = null): HTMLElement => {
53 | const node = document.createElement(tagName);
54 |
55 | if (typeof attrs === 'object') {
56 | for (const attrsKey in attrs) node.setAttribute(attrsKey, attrs[attrsKey]);
57 | }
58 |
59 | if (Array.isArray(childrenList)) {
60 | childrenList.forEach(child => {
61 | node.appendChild(typeof child === 'string' ? document.createTextNode(child) : child);
62 | });
63 | }
64 |
65 | if (parentNode) {
66 | parentNode.appendChild(node);
67 | }
68 |
69 | return node;
70 | };
71 |
72 | export const debounce = (func, wait) => {
73 | let timeout;
74 | return function (...args) {
75 | return new Promise(resolve => {
76 | clearTimeout(timeout);
77 | timeout = setTimeout(() => {
78 | timeout = null;
79 | Promise.resolve(func.apply(this, [...args])).then(resolve);
80 | }, wait);
81 | });
82 | };
83 | };
84 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["ES5", "DOM", "ES2020"],
5 | "noImplicitAny": false,
6 | "resolveJsonModule": true,
7 | "esModuleInterop": true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@ampproject/remapping@^2.2.0":
6 | version "2.2.1"
7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
8 | integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
9 | dependencies:
10 | "@jridgewell/gen-mapping" "^0.3.0"
11 | "@jridgewell/trace-mapping" "^0.3.9"
12 |
13 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5":
14 | version "7.23.5"
15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
16 | integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
17 | dependencies:
18 | "@babel/highlight" "^7.23.4"
19 | chalk "^2.4.2"
20 |
21 | "@babel/compat-data@^7.23.5":
22 | version "7.23.5"
23 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
24 | integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
25 |
26 | "@babel/core@^7.12.0":
27 | version "7.23.6"
28 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4"
29 | integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==
30 | dependencies:
31 | "@ampproject/remapping" "^2.2.0"
32 | "@babel/code-frame" "^7.23.5"
33 | "@babel/generator" "^7.23.6"
34 | "@babel/helper-compilation-targets" "^7.23.6"
35 | "@babel/helper-module-transforms" "^7.23.3"
36 | "@babel/helpers" "^7.23.6"
37 | "@babel/parser" "^7.23.6"
38 | "@babel/template" "^7.22.15"
39 | "@babel/traverse" "^7.23.6"
40 | "@babel/types" "^7.23.6"
41 | convert-source-map "^2.0.0"
42 | debug "^4.1.0"
43 | gensync "^1.0.0-beta.2"
44 | json5 "^2.2.3"
45 | semver "^6.3.1"
46 |
47 | "@babel/generator@^7.23.6":
48 | version "7.23.6"
49 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
50 | integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
51 | dependencies:
52 | "@babel/types" "^7.23.6"
53 | "@jridgewell/gen-mapping" "^0.3.2"
54 | "@jridgewell/trace-mapping" "^0.3.17"
55 | jsesc "^2.5.1"
56 |
57 | "@babel/helper-compilation-targets@^7.23.6":
58 | version "7.23.6"
59 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
60 | integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
61 | dependencies:
62 | "@babel/compat-data" "^7.23.5"
63 | "@babel/helper-validator-option" "^7.23.5"
64 | browserslist "^4.22.2"
65 | lru-cache "^5.1.1"
66 | semver "^6.3.1"
67 |
68 | "@babel/helper-environment-visitor@^7.22.20":
69 | version "7.22.20"
70 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
71 | integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
72 |
73 | "@babel/helper-function-name@^7.23.0":
74 | version "7.23.0"
75 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
76 | integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
77 | dependencies:
78 | "@babel/template" "^7.22.15"
79 | "@babel/types" "^7.23.0"
80 |
81 | "@babel/helper-hoist-variables@^7.22.5":
82 | version "7.22.5"
83 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
84 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
85 | dependencies:
86 | "@babel/types" "^7.22.5"
87 |
88 | "@babel/helper-module-imports@^7.22.15":
89 | version "7.22.15"
90 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
91 | integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
92 | dependencies:
93 | "@babel/types" "^7.22.15"
94 |
95 | "@babel/helper-module-transforms@^7.23.3":
96 | version "7.23.3"
97 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
98 | integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
99 | dependencies:
100 | "@babel/helper-environment-visitor" "^7.22.20"
101 | "@babel/helper-module-imports" "^7.22.15"
102 | "@babel/helper-simple-access" "^7.22.5"
103 | "@babel/helper-split-export-declaration" "^7.22.6"
104 | "@babel/helper-validator-identifier" "^7.22.20"
105 |
106 | "@babel/helper-simple-access@^7.22.5":
107 | version "7.22.5"
108 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
109 | integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
110 | dependencies:
111 | "@babel/types" "^7.22.5"
112 |
113 | "@babel/helper-split-export-declaration@^7.22.6":
114 | version "7.22.6"
115 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
116 | integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
117 | dependencies:
118 | "@babel/types" "^7.22.5"
119 |
120 | "@babel/helper-string-parser@^7.23.4":
121 | version "7.23.4"
122 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
123 | integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
124 |
125 | "@babel/helper-validator-identifier@^7.22.20":
126 | version "7.22.20"
127 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
128 | integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
129 |
130 | "@babel/helper-validator-option@^7.23.5":
131 | version "7.23.5"
132 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
133 | integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
134 |
135 | "@babel/helpers@^7.23.6":
136 | version "7.23.6"
137 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a"
138 | integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==
139 | dependencies:
140 | "@babel/template" "^7.22.15"
141 | "@babel/traverse" "^7.23.6"
142 | "@babel/types" "^7.23.6"
143 |
144 | "@babel/highlight@^7.23.4":
145 | version "7.23.4"
146 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
147 | integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
148 | dependencies:
149 | "@babel/helper-validator-identifier" "^7.22.20"
150 | chalk "^2.4.2"
151 | js-tokens "^4.0.0"
152 |
153 | "@babel/parser@^7.22.15", "@babel/parser@^7.23.6":
154 | version "7.23.6"
155 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
156 | integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
157 |
158 | "@babel/template@^7.22.15":
159 | version "7.22.15"
160 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
161 | integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
162 | dependencies:
163 | "@babel/code-frame" "^7.22.13"
164 | "@babel/parser" "^7.22.15"
165 | "@babel/types" "^7.22.15"
166 |
167 | "@babel/traverse@^7.23.6":
168 | version "7.23.6"
169 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5"
170 | integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==
171 | dependencies:
172 | "@babel/code-frame" "^7.23.5"
173 | "@babel/generator" "^7.23.6"
174 | "@babel/helper-environment-visitor" "^7.22.20"
175 | "@babel/helper-function-name" "^7.23.0"
176 | "@babel/helper-hoist-variables" "^7.22.5"
177 | "@babel/helper-split-export-declaration" "^7.22.6"
178 | "@babel/parser" "^7.23.6"
179 | "@babel/types" "^7.23.6"
180 | debug "^4.3.1"
181 | globals "^11.1.0"
182 |
183 | "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6":
184 | version "7.23.6"
185 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
186 | integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
187 | dependencies:
188 | "@babel/helper-string-parser" "^7.23.4"
189 | "@babel/helper-validator-identifier" "^7.22.20"
190 | to-fast-properties "^2.0.0"
191 |
192 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
193 | version "0.3.3"
194 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
195 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
196 | dependencies:
197 | "@jridgewell/set-array" "^1.0.1"
198 | "@jridgewell/sourcemap-codec" "^1.4.10"
199 | "@jridgewell/trace-mapping" "^0.3.9"
200 |
201 | "@jridgewell/resolve-uri@^3.1.0":
202 | version "3.1.1"
203 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
204 | integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
205 |
206 | "@jridgewell/set-array@^1.0.1":
207 | version "1.1.2"
208 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
209 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
210 |
211 | "@jridgewell/source-map@^0.3.3":
212 | version "0.3.5"
213 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91"
214 | integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==
215 | dependencies:
216 | "@jridgewell/gen-mapping" "^0.3.0"
217 | "@jridgewell/trace-mapping" "^0.3.9"
218 |
219 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
220 | version "1.4.15"
221 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
222 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
223 |
224 | "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
225 | version "0.3.20"
226 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
227 | integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
228 | dependencies:
229 | "@jridgewell/resolve-uri" "^3.1.0"
230 | "@jridgewell/sourcemap-codec" "^1.4.14"
231 |
232 | "@lezer/common@^1.0.0":
233 | version "1.1.2"
234 | resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.1.2.tgz#2fc5cd6788094ffc816b539ab2bc55bafacd2abc"
235 | integrity sha512-V+GqBsga5+cQJMfM0GdnHmg4DgWvLzgMWjbldBg0+jC3k9Gu6nJNZDLJxXEBT1Xj8KhRN4jmbC5CY7SIL++sVw==
236 |
237 | "@lezer/lr@^1.0.0":
238 | version "1.3.14"
239 | resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.3.14.tgz#59d4a3b25698bdac0ef182fa6eadab445fc4f29a"
240 | integrity sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==
241 | dependencies:
242 | "@lezer/common" "^1.0.0"
243 |
244 | "@lmdb/lmdb-darwin-arm64@2.8.5":
245 | version "2.8.5"
246 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz#895d8cb16a9d709ce5fedd8b60022903b875e08e"
247 | integrity sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==
248 |
249 | "@lmdb/lmdb-darwin-x64@2.8.5":
250 | version "2.8.5"
251 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz#ca243534c8b37d5516c557e4624256d18dd63184"
252 | integrity sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==
253 |
254 | "@lmdb/lmdb-linux-arm64@2.8.5":
255 | version "2.8.5"
256 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz#b44a8023057e21512eefb9f6120096843b531c1e"
257 | integrity sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==
258 |
259 | "@lmdb/lmdb-linux-arm@2.8.5":
260 | version "2.8.5"
261 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz#17bd54740779c3e4324e78e8f747c21416a84b3d"
262 | integrity sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==
263 |
264 | "@lmdb/lmdb-linux-x64@2.8.5":
265 | version "2.8.5"
266 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz#6c61835b6cc58efdf79dbd5e8c72a38300a90302"
267 | integrity sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==
268 |
269 | "@lmdb/lmdb-win32-x64@2.8.5":
270 | version "2.8.5"
271 | resolved "https://registry.yarnpkg.com/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz#8233e8762440b0f4632c47a09b1b6f23de8b934c"
272 | integrity sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==
273 |
274 | "@mischnic/json-sourcemap@^0.1.0":
275 | version "0.1.1"
276 | resolved "https://registry.yarnpkg.com/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz#0ef9b015a8f575dd9a8720d9a6b4dbc988425906"
277 | integrity sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==
278 | dependencies:
279 | "@lezer/common" "^1.0.0"
280 | "@lezer/lr" "^1.0.0"
281 | json5 "^2.2.1"
282 |
283 | "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2":
284 | version "3.0.2"
285 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38"
286 | integrity sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==
287 |
288 | "@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2":
289 | version "3.0.2"
290 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz#f954f34355712212a8e06c465bc06c40852c6bb3"
291 | integrity sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==
292 |
293 | "@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2":
294 | version "3.0.2"
295 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz#45c63037f045c2b15c44f80f0393fa24f9655367"
296 | integrity sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==
297 |
298 | "@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2":
299 | version "3.0.2"
300 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz#35707efeafe6d22b3f373caf9e8775e8920d1399"
301 | integrity sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==
302 |
303 | "@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2":
304 | version "3.0.2"
305 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz#091b1218b66c341f532611477ef89e83f25fae4f"
306 | integrity sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==
307 |
308 | "@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2":
309 | version "3.0.2"
310 | resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz#0f164b726869f71da3c594171df5ebc1c4b0a407"
311 | integrity sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==
312 |
313 | "@parcel/bundler-default@2.10.3":
314 | version "2.10.3"
315 | resolved "https://registry.yarnpkg.com/@parcel/bundler-default/-/bundler-default-2.10.3.tgz#a7a4cce80b008af1ed02cac10bbb6f34f8cf891a"
316 | integrity sha512-a+yq8zH8mrg6FBgUjrC+r3z6cfK7dQVMNzduEU/LF52Z4FVAmTR8gefl/YGmAbquJL3PFAHdhICrljYnQ1WQkg==
317 | dependencies:
318 | "@parcel/diagnostic" "2.10.3"
319 | "@parcel/graph" "3.0.3"
320 | "@parcel/plugin" "2.10.3"
321 | "@parcel/rust" "2.10.3"
322 | "@parcel/utils" "2.10.3"
323 | nullthrows "^1.1.1"
324 |
325 | "@parcel/cache@2.10.3":
326 | version "2.10.3"
327 | resolved "https://registry.yarnpkg.com/@parcel/cache/-/cache-2.10.3.tgz#39b19366c0ebd50786fa040a57844103d97521fe"
328 | integrity sha512-fNNOFOl4dwOlzP8iAa+evZ+3BakX0sV+3+PiYA0zaps7EmPmkTSGDhCWzaYRSO8fhmNDlrUX9Xh7b/X738LFqA==
329 | dependencies:
330 | "@parcel/fs" "2.10.3"
331 | "@parcel/logger" "2.10.3"
332 | "@parcel/utils" "2.10.3"
333 | lmdb "2.8.5"
334 |
335 | "@parcel/codeframe@2.10.3":
336 | version "2.10.3"
337 | resolved "https://registry.yarnpkg.com/@parcel/codeframe/-/codeframe-2.10.3.tgz#6f28b93228d90f2caa527354f983d0c04ca95bb7"
338 | integrity sha512-70ovUzeXBowDMjK+1xaLT4hm3jZUK7EbaCS6tN1cmmr0S1TDhU7g37jnpni+u9de9Lc/lErwTaDVXUf9WSQzQw==
339 | dependencies:
340 | chalk "^4.1.0"
341 |
342 | "@parcel/compressor-raw@2.10.3":
343 | version "2.10.3"
344 | resolved "https://registry.yarnpkg.com/@parcel/compressor-raw/-/compressor-raw-2.10.3.tgz#e9db2a900335f4f6be2833879dd80b319b954997"
345 | integrity sha512-5SUZ80uwu7o0D+0RjhjBnSUXJRgaayfqVQtBRP3U7/W/Bb1Ixm1yDGXtDlyCbzimWqWVMMJ4/eVCEW7I8Ln4Bw==
346 | dependencies:
347 | "@parcel/plugin" "2.10.3"
348 |
349 | "@parcel/config-default@2.10.3":
350 | version "2.10.3"
351 | resolved "https://registry.yarnpkg.com/@parcel/config-default/-/config-default-2.10.3.tgz#9a3e24eb679d3a9f5b5141ede91f6a18cfa69f71"
352 | integrity sha512-gHVw5cKZVA9h/J4E33qQLg3QG3cYMyWVruyVzF8dFy/Rar5ebXMof1f38IhR2BIavpoThbnCnxgD4SVK8xOPag==
353 | dependencies:
354 | "@parcel/bundler-default" "2.10.3"
355 | "@parcel/compressor-raw" "2.10.3"
356 | "@parcel/namer-default" "2.10.3"
357 | "@parcel/optimizer-css" "2.10.3"
358 | "@parcel/optimizer-htmlnano" "2.10.3"
359 | "@parcel/optimizer-image" "2.10.3"
360 | "@parcel/optimizer-svgo" "2.10.3"
361 | "@parcel/optimizer-swc" "2.10.3"
362 | "@parcel/packager-css" "2.10.3"
363 | "@parcel/packager-html" "2.10.3"
364 | "@parcel/packager-js" "2.10.3"
365 | "@parcel/packager-raw" "2.10.3"
366 | "@parcel/packager-svg" "2.10.3"
367 | "@parcel/packager-wasm" "2.10.3"
368 | "@parcel/reporter-dev-server" "2.10.3"
369 | "@parcel/resolver-default" "2.10.3"
370 | "@parcel/runtime-browser-hmr" "2.10.3"
371 | "@parcel/runtime-js" "2.10.3"
372 | "@parcel/runtime-react-refresh" "2.10.3"
373 | "@parcel/runtime-service-worker" "2.10.3"
374 | "@parcel/transformer-babel" "2.10.3"
375 | "@parcel/transformer-css" "2.10.3"
376 | "@parcel/transformer-html" "2.10.3"
377 | "@parcel/transformer-image" "2.10.3"
378 | "@parcel/transformer-js" "2.10.3"
379 | "@parcel/transformer-json" "2.10.3"
380 | "@parcel/transformer-postcss" "2.10.3"
381 | "@parcel/transformer-posthtml" "2.10.3"
382 | "@parcel/transformer-raw" "2.10.3"
383 | "@parcel/transformer-react-refresh-wrap" "2.10.3"
384 | "@parcel/transformer-svg" "2.10.3"
385 |
386 | "@parcel/core@2.10.3":
387 | version "2.10.3"
388 | resolved "https://registry.yarnpkg.com/@parcel/core/-/core-2.10.3.tgz#3de309cb71a6094f0c1e26634804128054c11d02"
389 | integrity sha512-b64FdqJi4CX6iWeLZNfmwdTrC1VLPXHMuFusf1sTZTuRBFw2oRpgJvuiqsrInaZ82o3lbLMo4a9/5LtNaZKa+Q==
390 | dependencies:
391 | "@mischnic/json-sourcemap" "^0.1.0"
392 | "@parcel/cache" "2.10.3"
393 | "@parcel/diagnostic" "2.10.3"
394 | "@parcel/events" "2.10.3"
395 | "@parcel/fs" "2.10.3"
396 | "@parcel/graph" "3.0.3"
397 | "@parcel/logger" "2.10.3"
398 | "@parcel/package-manager" "2.10.3"
399 | "@parcel/plugin" "2.10.3"
400 | "@parcel/profiler" "2.10.3"
401 | "@parcel/rust" "2.10.3"
402 | "@parcel/source-map" "^2.1.1"
403 | "@parcel/types" "2.10.3"
404 | "@parcel/utils" "2.10.3"
405 | "@parcel/workers" "2.10.3"
406 | abortcontroller-polyfill "^1.1.9"
407 | base-x "^3.0.8"
408 | browserslist "^4.6.6"
409 | clone "^2.1.1"
410 | dotenv "^7.0.0"
411 | dotenv-expand "^5.1.0"
412 | json5 "^2.2.0"
413 | msgpackr "^1.9.9"
414 | nullthrows "^1.1.1"
415 | semver "^7.5.2"
416 |
417 | "@parcel/diagnostic@2.10.3":
418 | version "2.10.3"
419 | resolved "https://registry.yarnpkg.com/@parcel/diagnostic/-/diagnostic-2.10.3.tgz#43d9c0e0c7ecdc152d1fad0f88a799b1b7dd222d"
420 | integrity sha512-Hf3xG9UVkDABDXWi89TjEP5U1CLUUj81kx/QFeupBXnzt5GEQZBhkxdBq6+4w17Mmuvk7H5uumNsSptkWq9PCA==
421 | dependencies:
422 | "@mischnic/json-sourcemap" "^0.1.0"
423 | nullthrows "^1.1.1"
424 |
425 | "@parcel/events@2.10.3":
426 | version "2.10.3"
427 | resolved "https://registry.yarnpkg.com/@parcel/events/-/events-2.10.3.tgz#aa9249170947a4628a5a00240bb03ed651349a35"
428 | integrity sha512-I3FsZYmKzgvo1f6frUWdF7hWwpeWTshPrFqpn9ICDXs/1Hjlf32jNXLBqon9b9XUDfMw4nSRMFMzMLJpbdheGA==
429 |
430 | "@parcel/fs@2.10.3":
431 | version "2.10.3"
432 | resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-2.10.3.tgz#bd23bb962b2e17e907144013aabcf343b8f8aac8"
433 | integrity sha512-0w4+Lc7B5VpwqX4GQfjnI5qN7tc9qbGPSPsf/6U2YPWU4dkGsMfPEmLBx7dZvJy3UiGxpsjMMuRHa14+jJ5QrQ==
434 | dependencies:
435 | "@parcel/rust" "2.10.3"
436 | "@parcel/types" "2.10.3"
437 | "@parcel/utils" "2.10.3"
438 | "@parcel/watcher" "^2.0.7"
439 | "@parcel/workers" "2.10.3"
440 |
441 | "@parcel/graph@3.0.3":
442 | version "3.0.3"
443 | resolved "https://registry.yarnpkg.com/@parcel/graph/-/graph-3.0.3.tgz#c19e2bcf83cc10b0969c5fa824459997c4c10fd2"
444 | integrity sha512-zUA8KsjR2+v2Q2bFBF7zBk33ejriDiRA/+LK5QE8LrFpkaDa+gjkx76h2x7JqGXIDHNos446KX4nz2OUCVwrNQ==
445 | dependencies:
446 | nullthrows "^1.1.1"
447 |
448 | "@parcel/logger@2.10.3":
449 | version "2.10.3"
450 | resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-2.10.3.tgz#d1b17a3a500183e2525b0116b6885fd801aa6c6b"
451 | integrity sha512-mAVTA0NgbbwEUzkzjBqjqyBBax+8bscRaZIAsEqMiSFWGcUmRgwVlH/jy3QDkFc7OHzwvdPK+XlMLV7s/3DJNw==
452 | dependencies:
453 | "@parcel/diagnostic" "2.10.3"
454 | "@parcel/events" "2.10.3"
455 |
456 | "@parcel/markdown-ansi@2.10.3":
457 | version "2.10.3"
458 | resolved "https://registry.yarnpkg.com/@parcel/markdown-ansi/-/markdown-ansi-2.10.3.tgz#b090d241c458e4c7b0480fed17600bd0f1faefae"
459 | integrity sha512-uzN1AJmp1oYh/ZLdD9WA7xP5u/L3Bs/6AFZz5s695zus74RCx9OtQcF0Yyl1hbKVJDfuw9WFuzMfPL/9p/C5DQ==
460 | dependencies:
461 | chalk "^4.1.0"
462 |
463 | "@parcel/namer-default@2.10.3":
464 | version "2.10.3"
465 | resolved "https://registry.yarnpkg.com/@parcel/namer-default/-/namer-default-2.10.3.tgz#54564418fad528c96d2b36ecfe2fba3f5591bdb7"
466 | integrity sha512-s7kgB/x7TISIHhen9IK4+CBXgmRJYahVS+oiAbMm18vcUVuXeZDBeTedOco6zUQIKuB71vx/4DBIuiIp6Q9hpg==
467 | dependencies:
468 | "@parcel/diagnostic" "2.10.3"
469 | "@parcel/plugin" "2.10.3"
470 | nullthrows "^1.1.1"
471 |
472 | "@parcel/node-resolver-core@3.1.3":
473 | version "3.1.3"
474 | resolved "https://registry.yarnpkg.com/@parcel/node-resolver-core/-/node-resolver-core-3.1.3.tgz#7d0e944bccfdf2954dbcf8ba000d0251887f14c0"
475 | integrity sha512-o7XK1KiK3ymO39bhc5qfDQiZpKA1xQmKg0TEPDNiLIXHKLEBheqarhw3Nwwt9MOFibfwsisQtDTIS+2v9A640A==
476 | dependencies:
477 | "@mischnic/json-sourcemap" "^0.1.0"
478 | "@parcel/diagnostic" "2.10.3"
479 | "@parcel/fs" "2.10.3"
480 | "@parcel/rust" "2.10.3"
481 | "@parcel/utils" "2.10.3"
482 | nullthrows "^1.1.1"
483 | semver "^7.5.2"
484 |
485 | "@parcel/optimizer-css@2.10.3":
486 | version "2.10.3"
487 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-css/-/optimizer-css-2.10.3.tgz#6fd3514b0d3c52e3354855ceb245842eff5e06de"
488 | integrity sha512-Pc8jwV3U9w5DJDNcRQML5FlKdpPGnuCTtk1P+9FfyEUjdxoVxC+YeMIQcE961clAgl47qh7eNObXtsX/lb04Dg==
489 | dependencies:
490 | "@parcel/diagnostic" "2.10.3"
491 | "@parcel/plugin" "2.10.3"
492 | "@parcel/source-map" "^2.1.1"
493 | "@parcel/utils" "2.10.3"
494 | browserslist "^4.6.6"
495 | lightningcss "^1.16.1"
496 | nullthrows "^1.1.1"
497 |
498 | "@parcel/optimizer-htmlnano@2.10.3":
499 | version "2.10.3"
500 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.10.3.tgz#4f8266892309dc5279a7a03c7cabc26e5ee56121"
501 | integrity sha512-KTIZOy19tYeG0j3JRv435A6jnTh3O1LPhsUfo6Xlea7Cz1yUUxAANl9MG8lHZKYbZCFFKbfk2I9QBycmcYxAAw==
502 | dependencies:
503 | "@parcel/plugin" "2.10.3"
504 | htmlnano "^2.0.0"
505 | nullthrows "^1.1.1"
506 | posthtml "^0.16.5"
507 | svgo "^2.4.0"
508 |
509 | "@parcel/optimizer-image@2.10.3":
510 | version "2.10.3"
511 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-image/-/optimizer-image-2.10.3.tgz#374f4308b3fbffa072646ef605cc7e740e471600"
512 | integrity sha512-hbeI6+GoddJxib8MlK5iafbCm1oy3p0UL9bb8s5mjTZiHtj1PORlH8gP7mT1WlYOCgoy45QdHelcrmL9fJ8kBA==
513 | dependencies:
514 | "@parcel/diagnostic" "2.10.3"
515 | "@parcel/plugin" "2.10.3"
516 | "@parcel/rust" "2.10.3"
517 | "@parcel/utils" "2.10.3"
518 | "@parcel/workers" "2.10.3"
519 |
520 | "@parcel/optimizer-svgo@2.10.3":
521 | version "2.10.3"
522 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-svgo/-/optimizer-svgo-2.10.3.tgz#654ab6b5abde66cebf672cec38dce620abf4037c"
523 | integrity sha512-STN7sdjz6wGnQnvy22SkQaLi5C1E+j7J0xy96T0/mCP9KoIsBDE7panCtf53p4sWCNRsXNVrXt5KrpCC+u0LHg==
524 | dependencies:
525 | "@parcel/diagnostic" "2.10.3"
526 | "@parcel/plugin" "2.10.3"
527 | "@parcel/utils" "2.10.3"
528 | svgo "^2.4.0"
529 |
530 | "@parcel/optimizer-swc@2.10.3":
531 | version "2.10.3"
532 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-swc/-/optimizer-swc-2.10.3.tgz#96f3dd10addced8b21041315d6802ee2aab53027"
533 | integrity sha512-Cxy05CysiKbv/PtX++ETje4cbhCJySmN6EmFyQBs0jvzsUdWwqnsttavYRoMviUUK9mjm/i5q+cyewBO/8Oc5g==
534 | dependencies:
535 | "@parcel/diagnostic" "2.10.3"
536 | "@parcel/plugin" "2.10.3"
537 | "@parcel/source-map" "^2.1.1"
538 | "@parcel/utils" "2.10.3"
539 | "@swc/core" "^1.3.36"
540 | nullthrows "^1.1.1"
541 |
542 | "@parcel/optimizer-terser@^2.10.3":
543 | version "2.10.3"
544 | resolved "https://registry.yarnpkg.com/@parcel/optimizer-terser/-/optimizer-terser-2.10.3.tgz#10e59c8b2ecf1f1b7187851413d0c7920a9a29e2"
545 | integrity sha512-u0Z1+3xLPyjpV3fTIR28jj4vmGVPSAmFMhIBTixPIYSMhf/cW2oOnyB9Ih8UaHz9M0bGO9aMrlsqjHMXhIMx2g==
546 | dependencies:
547 | "@parcel/diagnostic" "2.10.3"
548 | "@parcel/plugin" "2.10.3"
549 | "@parcel/source-map" "^2.1.1"
550 | "@parcel/utils" "2.10.3"
551 | nullthrows "^1.1.1"
552 | terser "^5.2.0"
553 |
554 | "@parcel/package-manager@2.10.3":
555 | version "2.10.3"
556 | resolved "https://registry.yarnpkg.com/@parcel/package-manager/-/package-manager-2.10.3.tgz#e856ad728d0c7fef51924451e032c4b6cc974c86"
557 | integrity sha512-KqOW5oUmElrcb7d+hOC68ja1PI2qbPZTwdduduRvB90DAweMt7r1046+W2Df5bd+p9iv72DxGEn9xomX+qz9MA==
558 | dependencies:
559 | "@parcel/diagnostic" "2.10.3"
560 | "@parcel/fs" "2.10.3"
561 | "@parcel/logger" "2.10.3"
562 | "@parcel/node-resolver-core" "3.1.3"
563 | "@parcel/types" "2.10.3"
564 | "@parcel/utils" "2.10.3"
565 | "@parcel/workers" "2.10.3"
566 | semver "^7.5.2"
567 |
568 | "@parcel/packager-css@2.10.3":
569 | version "2.10.3"
570 | resolved "https://registry.yarnpkg.com/@parcel/packager-css/-/packager-css-2.10.3.tgz#6045778e8c1849b55bf9351db13dd3c452759ce0"
571 | integrity sha512-Jk165fFU2XyWjN7agKy+YvvRoOJbWIb57VlVDgBHanB5ptS7aCildambrljGNTivatr+zFrchE5ZDNUFXZhYnw==
572 | dependencies:
573 | "@parcel/diagnostic" "2.10.3"
574 | "@parcel/plugin" "2.10.3"
575 | "@parcel/source-map" "^2.1.1"
576 | "@parcel/utils" "2.10.3"
577 | nullthrows "^1.1.1"
578 |
579 | "@parcel/packager-html@2.10.3":
580 | version "2.10.3"
581 | resolved "https://registry.yarnpkg.com/@parcel/packager-html/-/packager-html-2.10.3.tgz#937ab185dcfbe910a7243758803db0fbb396042b"
582 | integrity sha512-bEI6FhBvERuoqyi/h681qGImTRBUnqNW4sKoFO67q/bxWLevXtEGMFOeqridiVOjYQH9s1kKwM/ln/UwKVazZw==
583 | dependencies:
584 | "@parcel/plugin" "2.10.3"
585 | "@parcel/types" "2.10.3"
586 | "@parcel/utils" "2.10.3"
587 | nullthrows "^1.1.1"
588 | posthtml "^0.16.5"
589 |
590 | "@parcel/packager-js@2.10.3":
591 | version "2.10.3"
592 | resolved "https://registry.yarnpkg.com/@parcel/packager-js/-/packager-js-2.10.3.tgz#66538229a7edc795e763ec5ceed6e6265eb2f54d"
593 | integrity sha512-SjLSDw0juC7bEk/0geUtSVXaZqm2SgHL2IZaPnkoBQxVqzh2MdvAxJCrS2LxiR/cuQRfvQ5bnoJA7Kk1w2VNAg==
594 | dependencies:
595 | "@parcel/diagnostic" "2.10.3"
596 | "@parcel/plugin" "2.10.3"
597 | "@parcel/rust" "2.10.3"
598 | "@parcel/source-map" "^2.1.1"
599 | "@parcel/types" "2.10.3"
600 | "@parcel/utils" "2.10.3"
601 | globals "^13.2.0"
602 | nullthrows "^1.1.1"
603 |
604 | "@parcel/packager-raw@2.10.3":
605 | version "2.10.3"
606 | resolved "https://registry.yarnpkg.com/@parcel/packager-raw/-/packager-raw-2.10.3.tgz#96c92170b49f306e015540dc85794b90c4e3174f"
607 | integrity sha512-d236tnP2ViOnUJR0+qG6EHw7MUWSA14fLKnYYzL5SRQ4BVo5XC+CM9HKN5O4YCCVu3+9Su2X1+RESo5sxbFq7w==
608 | dependencies:
609 | "@parcel/plugin" "2.10.3"
610 |
611 | "@parcel/packager-svg@2.10.3":
612 | version "2.10.3"
613 | resolved "https://registry.yarnpkg.com/@parcel/packager-svg/-/packager-svg-2.10.3.tgz#5b5674ff47a04a0178b54eb9c21a4c297a657a13"
614 | integrity sha512-Rk/GokkNs9uLwiy6Ux/xXpD8nMVhA9LN9eIbVqi8+eR42xUmICmEoUoSm+CnekkXxY2a5e3mKpL7JZbT9vOEhA==
615 | dependencies:
616 | "@parcel/plugin" "2.10.3"
617 | "@parcel/types" "2.10.3"
618 | "@parcel/utils" "2.10.3"
619 | posthtml "^0.16.4"
620 |
621 | "@parcel/packager-wasm@2.10.3":
622 | version "2.10.3"
623 | resolved "https://registry.yarnpkg.com/@parcel/packager-wasm/-/packager-wasm-2.10.3.tgz#30c7f0eac43717cd2f2ccdacd99731138696df0b"
624 | integrity sha512-j6VmU84LKy+XRHgZQFoASG98P50a9tkeT3LYRrol3RGGQrvx7PT3/D6rOqbnQjR2iGnaHzYoAlgg9jIMmWXYiA==
625 | dependencies:
626 | "@parcel/plugin" "2.10.3"
627 |
628 | "@parcel/plugin@2.10.3":
629 | version "2.10.3"
630 | resolved "https://registry.yarnpkg.com/@parcel/plugin/-/plugin-2.10.3.tgz#c8055dded9beee2c0269edfdb7acdfb7df64469b"
631 | integrity sha512-FgsfGKSdtSV1EcO2NWFCZaY14W0PnEEF8vZaRCTML3vKfUbilYs/biaqf5geFOu4DwRuCC8unOTqFy7dLwcK/A==
632 | dependencies:
633 | "@parcel/types" "2.10.3"
634 |
635 | "@parcel/profiler@2.10.3":
636 | version "2.10.3"
637 | resolved "https://registry.yarnpkg.com/@parcel/profiler/-/profiler-2.10.3.tgz#0def95e18b0f71756524c4120e88a77895e9783e"
638 | integrity sha512-yikaM6/vsvjDCcBHAXTKmDsWUF3UvC0lMG8RpnuVSN+R40MGH1vyrR4vNnqhkiCcs0RkVXm7bpuz3cDJLNLYSQ==
639 | dependencies:
640 | "@parcel/diagnostic" "2.10.3"
641 | "@parcel/events" "2.10.3"
642 | chrome-trace-event "^1.0.2"
643 |
644 | "@parcel/reporter-cli@2.10.3":
645 | version "2.10.3"
646 | resolved "https://registry.yarnpkg.com/@parcel/reporter-cli/-/reporter-cli-2.10.3.tgz#c7942c56b4d66701b7776c0fe4aca4ce0793fed1"
647 | integrity sha512-p5xQTPRuB1K3eI3Ro90vcdxpdt0VqIgrUP/VJKtSI8I3fLLGgPBNmSZejqqLup3jFRzUttQPHYkWl/R14LHjAQ==
648 | dependencies:
649 | "@parcel/plugin" "2.10.3"
650 | "@parcel/types" "2.10.3"
651 | "@parcel/utils" "2.10.3"
652 | chalk "^4.1.0"
653 | term-size "^2.2.1"
654 |
655 | "@parcel/reporter-dev-server@2.10.3":
656 | version "2.10.3"
657 | resolved "https://registry.yarnpkg.com/@parcel/reporter-dev-server/-/reporter-dev-server-2.10.3.tgz#5d287fb8480488d212c4a5c33f2ea552e7bab7fb"
658 | integrity sha512-1Kzb2TrlnOYhGwFXZYCeoO18hpVhI3pRXnN22li9ZmdpeugZ0zZJamfPV8Duj4sBvBoSajbZhiPAe/6tQgWDSA==
659 | dependencies:
660 | "@parcel/plugin" "2.10.3"
661 | "@parcel/utils" "2.10.3"
662 |
663 | "@parcel/reporter-tracer@2.10.3":
664 | version "2.10.3"
665 | resolved "https://registry.yarnpkg.com/@parcel/reporter-tracer/-/reporter-tracer-2.10.3.tgz#55a19b2abc3726c541f18de10423f05954ca5b87"
666 | integrity sha512-53T9VPJvCi4Co0iTmNN+nqFD+Fkt3QFW8CPXBVlmlQzOtufVjDb01VsE1NPD8/J7O0jd548HJX/s5uqT0380jg==
667 | dependencies:
668 | "@parcel/plugin" "2.10.3"
669 | "@parcel/utils" "2.10.3"
670 | chrome-trace-event "^1.0.3"
671 | nullthrows "^1.1.1"
672 |
673 | "@parcel/resolver-default@2.10.3":
674 | version "2.10.3"
675 | resolved "https://registry.yarnpkg.com/@parcel/resolver-default/-/resolver-default-2.10.3.tgz#df8dac49201d84934308a4e30142faa946786a76"
676 | integrity sha512-TQc1LwpvEKyF3CnU9ifHOKV2usFLVYmMAVAkxyKKGTbnJGEqBDQ0ITqTapA6bJLvZ6d2eUT7guqd4nrBEjeZpw==
677 | dependencies:
678 | "@parcel/node-resolver-core" "3.1.3"
679 | "@parcel/plugin" "2.10.3"
680 |
681 | "@parcel/runtime-browser-hmr@2.10.3":
682 | version "2.10.3"
683 | resolved "https://registry.yarnpkg.com/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.10.3.tgz#2b584272c437350c564d3c6cff3e6c228405931c"
684 | integrity sha512-+6+mlJiLL3aNVIEyXMUPbPSgljYgnbl9JNMbEXikDQpGGiXTZ7gNNKsqwYeYzgQBYwgqRfR2ir6Bznc2R7dvxg==
685 | dependencies:
686 | "@parcel/plugin" "2.10.3"
687 | "@parcel/utils" "2.10.3"
688 |
689 | "@parcel/runtime-js@2.10.3":
690 | version "2.10.3"
691 | resolved "https://registry.yarnpkg.com/@parcel/runtime-js/-/runtime-js-2.10.3.tgz#505552942014356b7199f2411b3093b4bc399157"
692 | integrity sha512-EMLgZzBGf5ylOT5U/N2rBK5ZZxnmEM4aJsissEAxcE/2cgE8TyhSng6p3A88vVJlO/unHcwRuFGlxKCueugGsQ==
693 | dependencies:
694 | "@parcel/diagnostic" "2.10.3"
695 | "@parcel/plugin" "2.10.3"
696 | "@parcel/utils" "2.10.3"
697 | nullthrows "^1.1.1"
698 |
699 | "@parcel/runtime-react-refresh@2.10.3":
700 | version "2.10.3"
701 | resolved "https://registry.yarnpkg.com/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.10.3.tgz#c88aa09b0984b81c4db1be4defad63252063ce75"
702 | integrity sha512-l03mni8XJq3fmeAV8UYlKJ/+u0LYRuk6ZVP0VLYLwgK4O0mlRuxwaZWYUeB8r/kTsEjB3gF/9AAtUZdAC7Swow==
703 | dependencies:
704 | "@parcel/plugin" "2.10.3"
705 | "@parcel/utils" "2.10.3"
706 | react-error-overlay "6.0.9"
707 | react-refresh "^0.9.0"
708 |
709 | "@parcel/runtime-service-worker@2.10.3":
710 | version "2.10.3"
711 | resolved "https://registry.yarnpkg.com/@parcel/runtime-service-worker/-/runtime-service-worker-2.10.3.tgz#62d03fed56931cfe53a8373acb219c8665f9f1b1"
712 | integrity sha512-NjhS80t+O5iBgKXIQ+i07ZEh/VW8XHzanwTHmznJXEoIjLoBpELZ9r6bV/eUD3mYgM1vmW9Aijdu5xtsd0JW6A==
713 | dependencies:
714 | "@parcel/plugin" "2.10.3"
715 | "@parcel/utils" "2.10.3"
716 | nullthrows "^1.1.1"
717 |
718 | "@parcel/rust@2.10.3":
719 | version "2.10.3"
720 | resolved "https://registry.yarnpkg.com/@parcel/rust/-/rust-2.10.3.tgz#d5992ad0016f828dc2d1214fbd8e376f351d3efb"
721 | integrity sha512-s1dD1QI/6JkWLICsFh8/iUvO7W1aj/avx+2mCSzuwEIsMywexpBf56qhVYMa3D9D50hS1h5FMk9RrSnSiPf8WA==
722 |
723 | "@parcel/source-map@^2.1.1":
724 | version "2.1.1"
725 | resolved "https://registry.yarnpkg.com/@parcel/source-map/-/source-map-2.1.1.tgz#fb193b82dba6dd62cc7a76b326f57bb35000a782"
726 | integrity sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==
727 | dependencies:
728 | detect-libc "^1.0.3"
729 |
730 | "@parcel/transformer-babel@2.10.3":
731 | version "2.10.3"
732 | resolved "https://registry.yarnpkg.com/@parcel/transformer-babel/-/transformer-babel-2.10.3.tgz#10430b076e7226d23f54916e980665975b6f05bc"
733 | integrity sha512-SDTyDZX3WTkX7WS5Dg5cBLjWtIkUeeHezIjeOI4cw40tBjj5bXRR2TBfPsqwOnpTHr5jhNSicD6DN+XfTI2MMw==
734 | dependencies:
735 | "@parcel/diagnostic" "2.10.3"
736 | "@parcel/plugin" "2.10.3"
737 | "@parcel/source-map" "^2.1.1"
738 | "@parcel/utils" "2.10.3"
739 | browserslist "^4.6.6"
740 | json5 "^2.2.0"
741 | nullthrows "^1.1.1"
742 | semver "^7.5.2"
743 |
744 | "@parcel/transformer-css@2.10.3":
745 | version "2.10.3"
746 | resolved "https://registry.yarnpkg.com/@parcel/transformer-css/-/transformer-css-2.10.3.tgz#6a0b80649c676298e36ad0a37d55481609051f78"
747 | integrity sha512-qlPYcwVgbqFHrec6CKcTQ4hY7EkjvH40Wyqf0xjAyIoIuOPmrpSUOp+VKjeRdbyFwH/4GBjrDZMBvCUsgeM2GA==
748 | dependencies:
749 | "@parcel/diagnostic" "2.10.3"
750 | "@parcel/plugin" "2.10.3"
751 | "@parcel/source-map" "^2.1.1"
752 | "@parcel/utils" "2.10.3"
753 | browserslist "^4.6.6"
754 | lightningcss "^1.16.1"
755 | nullthrows "^1.1.1"
756 |
757 | "@parcel/transformer-html@2.10.3":
758 | version "2.10.3"
759 | resolved "https://registry.yarnpkg.com/@parcel/transformer-html/-/transformer-html-2.10.3.tgz#bd60209c4b87668933e6ad21108144f8a0a76c9a"
760 | integrity sha512-u0uklWpliEcPADtBlboxhxBvlGrP0yPRZk/A2iL0VhfAi9ONFEuJkEoesispNhAg3KiojEh0Ddzu7bYp9U0yww==
761 | dependencies:
762 | "@parcel/diagnostic" "2.10.3"
763 | "@parcel/plugin" "2.10.3"
764 | "@parcel/rust" "2.10.3"
765 | nullthrows "^1.1.1"
766 | posthtml "^0.16.5"
767 | posthtml-parser "^0.10.1"
768 | posthtml-render "^3.0.0"
769 | semver "^7.5.2"
770 | srcset "4"
771 |
772 | "@parcel/transformer-image@2.10.3":
773 | version "2.10.3"
774 | resolved "https://registry.yarnpkg.com/@parcel/transformer-image/-/transformer-image-2.10.3.tgz#8b460b531e19cba9f9c24f4153b714b064e63670"
775 | integrity sha512-At7D7eMauE+/EnlXiDfNSap2te11L0TIW55SC9iTRTI/CqesWfT96ZB/LcH3HXckYy/GJi0xyTjYxC/YjUqDog==
776 | dependencies:
777 | "@parcel/plugin" "2.10.3"
778 | "@parcel/utils" "2.10.3"
779 | "@parcel/workers" "2.10.3"
780 | nullthrows "^1.1.1"
781 |
782 | "@parcel/transformer-inline-string@^2.10.3":
783 | version "2.10.3"
784 | resolved "https://registry.yarnpkg.com/@parcel/transformer-inline-string/-/transformer-inline-string-2.10.3.tgz#96e916f8465bb22ef953986251b62f4b7ef6c8e8"
785 | integrity sha512-vOxBqLkzouA744b4x1KoaV4+Lo8kQmnz1Y2ahlnt2bEER3TMJpGiEiggFahq3WQKOOFOfhBcVFH0ncBCszCfWg==
786 | dependencies:
787 | "@parcel/plugin" "2.10.3"
788 |
789 | "@parcel/transformer-js@2.10.3":
790 | version "2.10.3"
791 | resolved "https://registry.yarnpkg.com/@parcel/transformer-js/-/transformer-js-2.10.3.tgz#7274113277ad4676fb46afd68a9fcda1a84d13ec"
792 | integrity sha512-9pGqrCSLlipXvL7hOrLsaW5Pq4bjFBOTiZ5k5kizk1qeuHKMIHxySGdy0E35eSsJ6JzXP0lTXPywMPysSI6owQ==
793 | dependencies:
794 | "@parcel/diagnostic" "2.10.3"
795 | "@parcel/plugin" "2.10.3"
796 | "@parcel/rust" "2.10.3"
797 | "@parcel/source-map" "^2.1.1"
798 | "@parcel/utils" "2.10.3"
799 | "@parcel/workers" "2.10.3"
800 | "@swc/helpers" "^0.5.0"
801 | browserslist "^4.6.6"
802 | nullthrows "^1.1.1"
803 | regenerator-runtime "^0.13.7"
804 | semver "^7.5.2"
805 |
806 | "@parcel/transformer-json@2.10.3":
807 | version "2.10.3"
808 | resolved "https://registry.yarnpkg.com/@parcel/transformer-json/-/transformer-json-2.10.3.tgz#1efb938de14f9e315c7f9cc9218457305dae8564"
809 | integrity sha512-cPhiQNgrX92VEATuxf3GCPQnlfnZW1iCsOHMT1CzgmofE7tVlW1hOOokWw21/8spG44Zax0SrRW0udi9TdmpQA==
810 | dependencies:
811 | "@parcel/plugin" "2.10.3"
812 | json5 "^2.2.0"
813 |
814 | "@parcel/transformer-less@2.10.3":
815 | version "2.10.3"
816 | resolved "https://registry.yarnpkg.com/@parcel/transformer-less/-/transformer-less-2.10.3.tgz#dca2048b970eafe8c354f21be7887aa59ae9cd74"
817 | integrity sha512-RnGOVYNZiG5VQzDnUQRe4TIgh5hoDYP+xDoSDc6fmxKDV9ZDzj2+p+N6vGZN6Xg4X6g7ldsAV6nkn31848WWHA==
818 | dependencies:
819 | "@parcel/plugin" "2.10.3"
820 | "@parcel/source-map" "^2.1.1"
821 | less "^4.1.1"
822 |
823 | "@parcel/transformer-postcss@2.10.3":
824 | version "2.10.3"
825 | resolved "https://registry.yarnpkg.com/@parcel/transformer-postcss/-/transformer-postcss-2.10.3.tgz#8b5c4756c4e0a64ff3a88fac5b26eb3601056fe7"
826 | integrity sha512-SpTZQdGQ3aVvl6+3tLlw/txUyzZSsv8t+hcfc9PM0n1rd4mfjWxVKmgNC1Y3nFoSubLMp+03GbMq16ym8t89WQ==
827 | dependencies:
828 | "@parcel/diagnostic" "2.10.3"
829 | "@parcel/plugin" "2.10.3"
830 | "@parcel/rust" "2.10.3"
831 | "@parcel/utils" "2.10.3"
832 | clone "^2.1.1"
833 | nullthrows "^1.1.1"
834 | postcss-value-parser "^4.2.0"
835 | semver "^7.5.2"
836 |
837 | "@parcel/transformer-posthtml@2.10.3":
838 | version "2.10.3"
839 | resolved "https://registry.yarnpkg.com/@parcel/transformer-posthtml/-/transformer-posthtml-2.10.3.tgz#25f8361cad4d3a2abd23c0ec148562a1ca76c42d"
840 | integrity sha512-k6pz0H/W1k+i9uDNXjum7XkaFYKvSSrgEsmhoh7OriXPrLunboIzMBXFQcQSCyxCpw/kLuKFBLP38mQnYC5BbQ==
841 | dependencies:
842 | "@parcel/plugin" "2.10.3"
843 | "@parcel/utils" "2.10.3"
844 | nullthrows "^1.1.1"
845 | posthtml "^0.16.5"
846 | posthtml-parser "^0.10.1"
847 | posthtml-render "^3.0.0"
848 | semver "^7.5.2"
849 |
850 | "@parcel/transformer-raw@2.10.3":
851 | version "2.10.3"
852 | resolved "https://registry.yarnpkg.com/@parcel/transformer-raw/-/transformer-raw-2.10.3.tgz#bbda9f554e6cb8985039a97d80eb5468b2109f25"
853 | integrity sha512-r//P2Hg14m/vJK/XJyq0cmcS4RTRy4bPSL4c0FxbEdDRrSm0Hcd1gdfgl0HeqSQQfcz0Xu4nCM5zAhg6FUpiXQ==
854 | dependencies:
855 | "@parcel/plugin" "2.10.3"
856 |
857 | "@parcel/transformer-react-refresh-wrap@2.10.3":
858 | version "2.10.3"
859 | resolved "https://registry.yarnpkg.com/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.10.3.tgz#872377fe4d1abac83780f68f1e95656ebb91f0fe"
860 | integrity sha512-Sc6ExGQy/YhNYFxRgEyi4SikYmV3wbATYo/VzqUjvZ4vE9YXM0sC5CyJhcoWVHmMPhm5eowOwFA6UrTsgHd2+g==
861 | dependencies:
862 | "@parcel/plugin" "2.10.3"
863 | "@parcel/utils" "2.10.3"
864 | react-refresh "^0.9.0"
865 |
866 | "@parcel/transformer-svg@2.10.3":
867 | version "2.10.3"
868 | resolved "https://registry.yarnpkg.com/@parcel/transformer-svg/-/transformer-svg-2.10.3.tgz#349b276e784e4169971112e9ed54c2fe2f0af229"
869 | integrity sha512-fjkTdPB8y467I/yHPEaNxNxoGtRIgEqNjVkBhtE/ibhF/YfqIEpDlJyI7G5G71pt2peLMLXZnJowzHqeoEUHOQ==
870 | dependencies:
871 | "@parcel/diagnostic" "2.10.3"
872 | "@parcel/plugin" "2.10.3"
873 | "@parcel/rust" "2.10.3"
874 | nullthrows "^1.1.1"
875 | posthtml "^0.16.5"
876 | posthtml-parser "^0.10.1"
877 | posthtml-render "^3.0.0"
878 | semver "^7.5.2"
879 |
880 | "@parcel/types@2.10.3":
881 | version "2.10.3"
882 | resolved "https://registry.yarnpkg.com/@parcel/types/-/types-2.10.3.tgz#8f8c4f1f837b0466cc132ba4fdc96edd9da4927f"
883 | integrity sha512-4ISgDKcbJsR7NKj2jquPUPQWc/b2x6zHb/jZVdHVzMQxJp98DX+cvQR137iOTXUAFtwkKVjFcHWfejwGdGf9bw==
884 | dependencies:
885 | "@parcel/cache" "2.10.3"
886 | "@parcel/diagnostic" "2.10.3"
887 | "@parcel/fs" "2.10.3"
888 | "@parcel/package-manager" "2.10.3"
889 | "@parcel/source-map" "^2.1.1"
890 | "@parcel/workers" "2.10.3"
891 | utility-types "^3.10.0"
892 |
893 | "@parcel/utils@2.10.3":
894 | version "2.10.3"
895 | resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-2.10.3.tgz#16c967b76c684ec206eaa7a16abd16fa4e4a55af"
896 | integrity sha512-l9pEQgq+D57t42m2sJkdU08Dpp0HVzDEwVrp/by/l37ZkYPJ2Me3oXtsJhvA+hej2kO8+FuKPm64FaUVaA2g+w==
897 | dependencies:
898 | "@parcel/codeframe" "2.10.3"
899 | "@parcel/diagnostic" "2.10.3"
900 | "@parcel/logger" "2.10.3"
901 | "@parcel/markdown-ansi" "2.10.3"
902 | "@parcel/rust" "2.10.3"
903 | "@parcel/source-map" "^2.1.1"
904 | chalk "^4.1.0"
905 | nullthrows "^1.1.1"
906 |
907 | "@parcel/watcher-android-arm64@2.3.0":
908 | version "2.3.0"
909 | resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab"
910 | integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==
911 |
912 | "@parcel/watcher-darwin-arm64@2.3.0":
913 | version "2.3.0"
914 | resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad"
915 | integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==
916 |
917 | "@parcel/watcher-darwin-x64@2.3.0":
918 | version "2.3.0"
919 | resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219"
920 | integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==
921 |
922 | "@parcel/watcher-freebsd-x64@2.3.0":
923 | version "2.3.0"
924 | resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6"
925 | integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==
926 |
927 | "@parcel/watcher-linux-arm-glibc@2.3.0":
928 | version "2.3.0"
929 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da"
930 | integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==
931 |
932 | "@parcel/watcher-linux-arm64-glibc@2.3.0":
933 | version "2.3.0"
934 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc"
935 | integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==
936 |
937 | "@parcel/watcher-linux-arm64-musl@2.3.0":
938 | version "2.3.0"
939 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43"
940 | integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==
941 |
942 | "@parcel/watcher-linux-x64-glibc@2.3.0":
943 | version "2.3.0"
944 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943"
945 | integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==
946 |
947 | "@parcel/watcher-linux-x64-musl@2.3.0":
948 | version "2.3.0"
949 | resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd"
950 | integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==
951 |
952 | "@parcel/watcher-win32-arm64@2.3.0":
953 | version "2.3.0"
954 | resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6"
955 | integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==
956 |
957 | "@parcel/watcher-win32-ia32@2.3.0":
958 | version "2.3.0"
959 | resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a"
960 | integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==
961 |
962 | "@parcel/watcher-win32-x64@2.3.0":
963 | version "2.3.0"
964 | resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7"
965 | integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==
966 |
967 | "@parcel/watcher@^2.0.7":
968 | version "2.3.0"
969 | resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9"
970 | integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==
971 | dependencies:
972 | detect-libc "^1.0.3"
973 | is-glob "^4.0.3"
974 | micromatch "^4.0.5"
975 | node-addon-api "^7.0.0"
976 | optionalDependencies:
977 | "@parcel/watcher-android-arm64" "2.3.0"
978 | "@parcel/watcher-darwin-arm64" "2.3.0"
979 | "@parcel/watcher-darwin-x64" "2.3.0"
980 | "@parcel/watcher-freebsd-x64" "2.3.0"
981 | "@parcel/watcher-linux-arm-glibc" "2.3.0"
982 | "@parcel/watcher-linux-arm64-glibc" "2.3.0"
983 | "@parcel/watcher-linux-arm64-musl" "2.3.0"
984 | "@parcel/watcher-linux-x64-glibc" "2.3.0"
985 | "@parcel/watcher-linux-x64-musl" "2.3.0"
986 | "@parcel/watcher-win32-arm64" "2.3.0"
987 | "@parcel/watcher-win32-ia32" "2.3.0"
988 | "@parcel/watcher-win32-x64" "2.3.0"
989 |
990 | "@parcel/workers@2.10.3":
991 | version "2.10.3"
992 | resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-2.10.3.tgz#2c4b674f3485124b56b584358ae38034f20d649f"
993 | integrity sha512-qlN8G3VybPHVIbD6fsZr2gmrXG2UlROUQIPW/kkAvjQ29uRfFn7YEC8CHTICt8M1HhCNkr0cMXkuXQBi0l3kAg==
994 | dependencies:
995 | "@parcel/diagnostic" "2.10.3"
996 | "@parcel/logger" "2.10.3"
997 | "@parcel/profiler" "2.10.3"
998 | "@parcel/types" "2.10.3"
999 | "@parcel/utils" "2.10.3"
1000 | nullthrows "^1.1.1"
1001 |
1002 | "@swc/core-darwin-arm64@1.3.100":
1003 | version "1.3.100"
1004 | resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.100.tgz#f582c5bbc9c49506f728fc1d14dff33c2cc226d5"
1005 | integrity sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==
1006 |
1007 | "@swc/core-darwin-x64@1.3.100":
1008 | version "1.3.100"
1009 | resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.100.tgz#d84f5c0bb4603c252884d011a698ed7c634b1505"
1010 | integrity sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==
1011 |
1012 | "@swc/core-linux-arm64-gnu@1.3.100":
1013 | version "1.3.100"
1014 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.100.tgz#1ed4b92b373882d8f338c4e0a0aa64cdaa6106f1"
1015 | integrity sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==
1016 |
1017 | "@swc/core-linux-arm64-musl@1.3.100":
1018 | version "1.3.100"
1019 | resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.100.tgz#9db560f7459e42e65ec02670d6a8316e7c850cfc"
1020 | integrity sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==
1021 |
1022 | "@swc/core-linux-x64-gnu@1.3.100":
1023 | version "1.3.100"
1024 | resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.100.tgz#228826ea48879bf1e73683fbef4373e3e762e424"
1025 | integrity sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==
1026 |
1027 | "@swc/core-linux-x64-musl@1.3.100":
1028 | version "1.3.100"
1029 | resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.100.tgz#09a234dbbf625d071ecb663680e997a62d230d49"
1030 | integrity sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==
1031 |
1032 | "@swc/core-win32-arm64-msvc@1.3.100":
1033 | version "1.3.100"
1034 | resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.100.tgz#add1c82884c10a9054ed6a48f884097aa85c6d2b"
1035 | integrity sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==
1036 |
1037 | "@swc/core-win32-ia32-msvc@1.3.100":
1038 | version "1.3.100"
1039 | resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.100.tgz#e0b6c5ae7f3250adeeb88dae83558d3f45148c56"
1040 | integrity sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==
1041 |
1042 | "@swc/core-win32-x64-msvc@1.3.100":
1043 | version "1.3.100"
1044 | resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.100.tgz#34721dff151d7dcf165675f18aeed0a12264d88c"
1045 | integrity sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==
1046 |
1047 | "@swc/core@^1.3.36":
1048 | version "1.3.100"
1049 | resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.100.tgz#8fa36f26a35137620234b084224c9fa9b8a0fee2"
1050 | integrity sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw==
1051 | dependencies:
1052 | "@swc/counter" "^0.1.1"
1053 | "@swc/types" "^0.1.5"
1054 | optionalDependencies:
1055 | "@swc/core-darwin-arm64" "1.3.100"
1056 | "@swc/core-darwin-x64" "1.3.100"
1057 | "@swc/core-linux-arm64-gnu" "1.3.100"
1058 | "@swc/core-linux-arm64-musl" "1.3.100"
1059 | "@swc/core-linux-x64-gnu" "1.3.100"
1060 | "@swc/core-linux-x64-musl" "1.3.100"
1061 | "@swc/core-win32-arm64-msvc" "1.3.100"
1062 | "@swc/core-win32-ia32-msvc" "1.3.100"
1063 | "@swc/core-win32-x64-msvc" "1.3.100"
1064 |
1065 | "@swc/counter@^0.1.1":
1066 | version "0.1.2"
1067 | resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e"
1068 | integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==
1069 |
1070 | "@swc/helpers@^0.5.0":
1071 | version "0.5.3"
1072 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.3.tgz#98c6da1e196f5f08f977658b80d6bd941b5f294f"
1073 | integrity sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==
1074 | dependencies:
1075 | tslib "^2.4.0"
1076 |
1077 | "@swc/types@^0.1.5":
1078 | version "0.1.5"
1079 | resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a"
1080 | integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==
1081 |
1082 | "@trysound/sax@0.2.0":
1083 | version "0.2.0"
1084 | resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
1085 | integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
1086 |
1087 | "@types/tampermonkey@^5.0.2":
1088 | version "5.0.2"
1089 | resolved "https://registry.yarnpkg.com/@types/tampermonkey/-/tampermonkey-5.0.2.tgz#667c94cf58bfed3e2471aeb887fb2f8da08dee79"
1090 | integrity sha512-keKnYemqWts68wO2+TBdEg84iQd5vymK5SEQGxitI9uOfOnjm/ZskBoK9ZH3mnSYp79HidZMA/Y7ODQtiA/VIg==
1091 |
1092 | abortcontroller-polyfill@^1.1.9:
1093 | version "1.7.5"
1094 | resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed"
1095 | integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==
1096 |
1097 | acorn@^8.8.2:
1098 | version "8.11.2"
1099 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
1100 | integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
1101 |
1102 | ansi-styles@^3.2.1:
1103 | version "3.2.1"
1104 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
1105 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
1106 | dependencies:
1107 | color-convert "^1.9.0"
1108 |
1109 | ansi-styles@^4.1.0:
1110 | version "4.3.0"
1111 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
1112 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
1113 | dependencies:
1114 | color-convert "^2.0.1"
1115 |
1116 | argparse@^2.0.1:
1117 | version "2.0.1"
1118 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
1119 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
1120 |
1121 | babel-plugin-transform-remove-console@^6.9.4:
1122 | version "6.9.4"
1123 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780"
1124 | integrity sha512-88blrUrMX3SPiGkT1GnvVY8E/7A+k6oj3MNvUtTIxJflFzXTw1bHkuJ/y039ouhFMp2prRn5cQGzokViYi1dsg==
1125 |
1126 | base-x@^3.0.8:
1127 | version "3.0.9"
1128 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"
1129 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
1130 | dependencies:
1131 | safe-buffer "^5.0.1"
1132 |
1133 | boolbase@^1.0.0:
1134 | version "1.0.0"
1135 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
1136 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
1137 |
1138 | braces@^3.0.2:
1139 | version "3.0.2"
1140 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
1141 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
1142 | dependencies:
1143 | fill-range "^7.0.1"
1144 |
1145 | browserslist@^4.22.2, browserslist@^4.6.6:
1146 | version "4.22.2"
1147 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
1148 | integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
1149 | dependencies:
1150 | caniuse-lite "^1.0.30001565"
1151 | electron-to-chromium "^1.4.601"
1152 | node-releases "^2.0.14"
1153 | update-browserslist-db "^1.0.13"
1154 |
1155 | buffer-from@^1.0.0:
1156 | version "1.1.2"
1157 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
1158 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
1159 |
1160 | callsites@^3.0.0:
1161 | version "3.1.0"
1162 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
1163 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
1164 |
1165 | caniuse-lite@^1.0.30001565:
1166 | version "1.0.30001570"
1167 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca"
1168 | integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==
1169 |
1170 | chalk@^2.4.2:
1171 | version "2.4.2"
1172 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1173 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1174 | dependencies:
1175 | ansi-styles "^3.2.1"
1176 | escape-string-regexp "^1.0.5"
1177 | supports-color "^5.3.0"
1178 |
1179 | chalk@^4.1.0:
1180 | version "4.1.2"
1181 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
1182 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
1183 | dependencies:
1184 | ansi-styles "^4.1.0"
1185 | supports-color "^7.1.0"
1186 |
1187 | chrome-trace-event@^1.0.2, chrome-trace-event@^1.0.3:
1188 | version "1.0.3"
1189 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
1190 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
1191 |
1192 | clone@^2.1.1:
1193 | version "2.1.2"
1194 | resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
1195 | integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
1196 |
1197 | color-convert@^1.9.0:
1198 | version "1.9.3"
1199 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1200 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1201 | dependencies:
1202 | color-name "1.1.3"
1203 |
1204 | color-convert@^2.0.1:
1205 | version "2.0.1"
1206 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1207 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1208 | dependencies:
1209 | color-name "~1.1.4"
1210 |
1211 | color-name@1.1.3:
1212 | version "1.1.3"
1213 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1214 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
1215 |
1216 | color-name@~1.1.4:
1217 | version "1.1.4"
1218 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1219 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1220 |
1221 | commander@^2.20.0:
1222 | version "2.20.3"
1223 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
1224 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
1225 |
1226 | commander@^7.0.0, commander@^7.2.0:
1227 | version "7.2.0"
1228 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
1229 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
1230 |
1231 | convert-source-map@^2.0.0:
1232 | version "2.0.0"
1233 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
1234 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
1235 |
1236 | copy-anything@^2.0.1:
1237 | version "2.0.6"
1238 | resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
1239 | integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==
1240 | dependencies:
1241 | is-what "^3.14.1"
1242 |
1243 | cosmiconfig@^8.0.0:
1244 | version "8.3.6"
1245 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
1246 | integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==
1247 | dependencies:
1248 | import-fresh "^3.3.0"
1249 | js-yaml "^4.1.0"
1250 | parse-json "^5.2.0"
1251 | path-type "^4.0.0"
1252 |
1253 | css-select@^4.1.3:
1254 | version "4.3.0"
1255 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
1256 | integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
1257 | dependencies:
1258 | boolbase "^1.0.0"
1259 | css-what "^6.0.1"
1260 | domhandler "^4.3.1"
1261 | domutils "^2.8.0"
1262 | nth-check "^2.0.1"
1263 |
1264 | css-tree@^1.1.2, css-tree@^1.1.3:
1265 | version "1.1.3"
1266 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
1267 | integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
1268 | dependencies:
1269 | mdn-data "2.0.14"
1270 | source-map "^0.6.1"
1271 |
1272 | css-what@^6.0.1:
1273 | version "6.1.0"
1274 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
1275 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
1276 |
1277 | csso@^4.2.0:
1278 | version "4.2.0"
1279 | resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
1280 | integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
1281 | dependencies:
1282 | css-tree "^1.1.2"
1283 |
1284 | debug@^4.1.0, debug@^4.3.1:
1285 | version "4.3.4"
1286 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
1287 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
1288 | dependencies:
1289 | ms "2.1.2"
1290 |
1291 | detect-libc@^1.0.3:
1292 | version "1.0.3"
1293 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
1294 | integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==
1295 |
1296 | detect-libc@^2.0.1:
1297 | version "2.0.2"
1298 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d"
1299 | integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==
1300 |
1301 | dom-serializer@^1.0.1:
1302 | version "1.4.1"
1303 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
1304 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
1305 | dependencies:
1306 | domelementtype "^2.0.1"
1307 | domhandler "^4.2.0"
1308 | entities "^2.0.0"
1309 |
1310 | domelementtype@^2.0.1, domelementtype@^2.2.0:
1311 | version "2.3.0"
1312 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
1313 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
1314 |
1315 | domhandler@^4.2.0, domhandler@^4.2.2, domhandler@^4.3.1:
1316 | version "4.3.1"
1317 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
1318 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
1319 | dependencies:
1320 | domelementtype "^2.2.0"
1321 |
1322 | domutils@^2.8.0:
1323 | version "2.8.0"
1324 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
1325 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
1326 | dependencies:
1327 | dom-serializer "^1.0.1"
1328 | domelementtype "^2.2.0"
1329 | domhandler "^4.2.0"
1330 |
1331 | dotenv-expand@^5.1.0:
1332 | version "5.1.0"
1333 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
1334 | integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
1335 |
1336 | dotenv@^7.0.0:
1337 | version "7.0.0"
1338 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c"
1339 | integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==
1340 |
1341 | electron-to-chromium@^1.4.601:
1342 | version "1.4.614"
1343 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz#2fe789d61fa09cb875569f37c309d0c2701f91c0"
1344 | integrity sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==
1345 |
1346 | entities@^2.0.0:
1347 | version "2.2.0"
1348 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
1349 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
1350 |
1351 | entities@^3.0.1:
1352 | version "3.0.1"
1353 | resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4"
1354 | integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
1355 |
1356 | errno@^0.1.1:
1357 | version "0.1.8"
1358 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
1359 | integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
1360 | dependencies:
1361 | prr "~1.0.1"
1362 |
1363 | error-ex@^1.3.1:
1364 | version "1.3.2"
1365 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
1366 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
1367 | dependencies:
1368 | is-arrayish "^0.2.1"
1369 |
1370 | escalade@^3.1.1:
1371 | version "3.1.1"
1372 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
1373 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
1374 |
1375 | escape-string-regexp@^1.0.5:
1376 | version "1.0.5"
1377 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1378 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
1379 |
1380 | fill-range@^7.0.1:
1381 | version "7.0.1"
1382 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1383 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1384 | dependencies:
1385 | to-regex-range "^5.0.1"
1386 |
1387 | gensync@^1.0.0-beta.2:
1388 | version "1.0.0-beta.2"
1389 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1390 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1391 |
1392 | get-port@^4.2.0:
1393 | version "4.2.0"
1394 | resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119"
1395 | integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==
1396 |
1397 | globals@^11.1.0:
1398 | version "11.12.0"
1399 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1400 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1401 |
1402 | globals@^13.2.0:
1403 | version "13.24.0"
1404 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171"
1405 | integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==
1406 | dependencies:
1407 | type-fest "^0.20.2"
1408 |
1409 | graceful-fs@^4.1.2:
1410 | version "4.2.11"
1411 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
1412 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
1413 |
1414 | has-flag@^3.0.0:
1415 | version "3.0.0"
1416 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1417 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
1418 |
1419 | has-flag@^4.0.0:
1420 | version "4.0.0"
1421 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1422 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1423 |
1424 | htmlnano@^2.0.0:
1425 | version "2.1.0"
1426 | resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-2.1.0.tgz#67b31b3cd3fad23f0b610ca628fdb48382209c3c"
1427 | integrity sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==
1428 | dependencies:
1429 | cosmiconfig "^8.0.0"
1430 | posthtml "^0.16.5"
1431 | timsort "^0.3.0"
1432 |
1433 | htmlparser2@^7.1.1:
1434 | version "7.2.0"
1435 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.2.0.tgz#8817cdea38bbc324392a90b1990908e81a65f5a5"
1436 | integrity sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==
1437 | dependencies:
1438 | domelementtype "^2.0.1"
1439 | domhandler "^4.2.2"
1440 | domutils "^2.8.0"
1441 | entities "^3.0.1"
1442 |
1443 | iconv-lite@^0.6.3:
1444 | version "0.6.3"
1445 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
1446 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
1447 | dependencies:
1448 | safer-buffer ">= 2.1.2 < 3.0.0"
1449 |
1450 | image-size@~0.5.0:
1451 | version "0.5.5"
1452 | resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
1453 | integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
1454 |
1455 | import-fresh@^3.3.0:
1456 | version "3.3.0"
1457 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1458 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1459 | dependencies:
1460 | parent-module "^1.0.0"
1461 | resolve-from "^4.0.0"
1462 |
1463 | is-arrayish@^0.2.1:
1464 | version "0.2.1"
1465 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
1466 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
1467 |
1468 | is-extglob@^2.1.1:
1469 | version "2.1.1"
1470 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1471 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1472 |
1473 | is-glob@^4.0.3:
1474 | version "4.0.3"
1475 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1476 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1477 | dependencies:
1478 | is-extglob "^2.1.1"
1479 |
1480 | is-json@^2.0.1:
1481 | version "2.0.1"
1482 | resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff"
1483 | integrity sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==
1484 |
1485 | is-number@^7.0.0:
1486 | version "7.0.0"
1487 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1488 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1489 |
1490 | is-what@^3.14.1:
1491 | version "3.14.1"
1492 | resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
1493 | integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
1494 |
1495 | js-tokens@^4.0.0:
1496 | version "4.0.0"
1497 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1498 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1499 |
1500 | js-yaml@^4.1.0:
1501 | version "4.1.0"
1502 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1503 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1504 | dependencies:
1505 | argparse "^2.0.1"
1506 |
1507 | jsesc@^2.5.1:
1508 | version "2.5.2"
1509 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1510 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1511 |
1512 | json-parse-even-better-errors@^2.3.0:
1513 | version "2.3.1"
1514 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
1515 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
1516 |
1517 | json5@^2.2.0, json5@^2.2.1, json5@^2.2.3:
1518 | version "2.2.3"
1519 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
1520 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1521 |
1522 | less@^4.1.1:
1523 | version "4.2.0"
1524 | resolved "https://registry.yarnpkg.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450"
1525 | integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==
1526 | dependencies:
1527 | copy-anything "^2.0.1"
1528 | parse-node-version "^1.0.1"
1529 | tslib "^2.3.0"
1530 | optionalDependencies:
1531 | errno "^0.1.1"
1532 | graceful-fs "^4.1.2"
1533 | image-size "~0.5.0"
1534 | make-dir "^2.1.0"
1535 | mime "^1.4.1"
1536 | needle "^3.1.0"
1537 | source-map "~0.6.0"
1538 |
1539 | lightningcss-darwin-arm64@1.22.1:
1540 | version "1.22.1"
1541 | resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz#c03c042335fd7e9e1f45c977b39ff6886b8b064f"
1542 | integrity sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==
1543 |
1544 | lightningcss-darwin-x64@1.22.1:
1545 | version "1.22.1"
1546 | resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz#cdd380006a176b7faea83d1d642d9c5d65620f74"
1547 | integrity sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==
1548 |
1549 | lightningcss-freebsd-x64@1.22.1:
1550 | version "1.22.1"
1551 | resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz#dd1b19308e3b0f24b6f79da10fd3975e5e02ebda"
1552 | integrity sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==
1553 |
1554 | lightningcss-linux-arm-gnueabihf@1.22.1:
1555 | version "1.22.1"
1556 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz#134cf9b41abd44ec53d8bae02c9f6e4f257eb617"
1557 | integrity sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==
1558 |
1559 | lightningcss-linux-arm64-gnu@1.22.1:
1560 | version "1.22.1"
1561 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz#33800723fb3d782c71cc131cf38ca678a0e9d1fa"
1562 | integrity sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==
1563 |
1564 | lightningcss-linux-arm64-musl@1.22.1:
1565 | version "1.22.1"
1566 | resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz#cff86acaa98a0245add5a333098befc894802137"
1567 | integrity sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==
1568 |
1569 | lightningcss-linux-x64-gnu@1.22.1:
1570 | version "1.22.1"
1571 | resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz#3f68602228b49d661db0692548e061456b603ca2"
1572 | integrity sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==
1573 |
1574 | lightningcss-linux-x64-musl@1.22.1:
1575 | version "1.22.1"
1576 | resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz#e713e56798f8a50df3e3f285ef102191a01ef951"
1577 | integrity sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==
1578 |
1579 | lightningcss-win32-x64-msvc@1.22.1:
1580 | version "1.22.1"
1581 | resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz#48b141554bf05cc4338f064b6892dd5dd16185ef"
1582 | integrity sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==
1583 |
1584 | lightningcss@^1.16.1:
1585 | version "1.22.1"
1586 | resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.22.1.tgz#8108ddecb2e859032bdd99908abd2b37515b1750"
1587 | integrity sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==
1588 | dependencies:
1589 | detect-libc "^1.0.3"
1590 | optionalDependencies:
1591 | lightningcss-darwin-arm64 "1.22.1"
1592 | lightningcss-darwin-x64 "1.22.1"
1593 | lightningcss-freebsd-x64 "1.22.1"
1594 | lightningcss-linux-arm-gnueabihf "1.22.1"
1595 | lightningcss-linux-arm64-gnu "1.22.1"
1596 | lightningcss-linux-arm64-musl "1.22.1"
1597 | lightningcss-linux-x64-gnu "1.22.1"
1598 | lightningcss-linux-x64-musl "1.22.1"
1599 | lightningcss-win32-x64-msvc "1.22.1"
1600 |
1601 | lines-and-columns@^1.1.6:
1602 | version "1.2.4"
1603 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
1604 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
1605 |
1606 | lmdb@2.8.5:
1607 | version "2.8.5"
1608 | resolved "https://registry.yarnpkg.com/lmdb/-/lmdb-2.8.5.tgz#ce191110c755c0951caa062722e300c703973837"
1609 | integrity sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==
1610 | dependencies:
1611 | msgpackr "^1.9.5"
1612 | node-addon-api "^6.1.0"
1613 | node-gyp-build-optional-packages "5.1.1"
1614 | ordered-binary "^1.4.1"
1615 | weak-lru-cache "^1.2.2"
1616 | optionalDependencies:
1617 | "@lmdb/lmdb-darwin-arm64" "2.8.5"
1618 | "@lmdb/lmdb-darwin-x64" "2.8.5"
1619 | "@lmdb/lmdb-linux-arm" "2.8.5"
1620 | "@lmdb/lmdb-linux-arm64" "2.8.5"
1621 | "@lmdb/lmdb-linux-x64" "2.8.5"
1622 | "@lmdb/lmdb-win32-x64" "2.8.5"
1623 |
1624 | lru-cache@^5.1.1:
1625 | version "5.1.1"
1626 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
1627 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
1628 | dependencies:
1629 | yallist "^3.0.2"
1630 |
1631 | lru-cache@^6.0.0:
1632 | version "6.0.0"
1633 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1634 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1635 | dependencies:
1636 | yallist "^4.0.0"
1637 |
1638 | make-dir@^2.1.0:
1639 | version "2.1.0"
1640 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
1641 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
1642 | dependencies:
1643 | pify "^4.0.1"
1644 | semver "^5.6.0"
1645 |
1646 | mdn-data@2.0.14:
1647 | version "2.0.14"
1648 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
1649 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
1650 |
1651 | micromatch@^4.0.5:
1652 | version "4.0.5"
1653 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
1654 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1655 | dependencies:
1656 | braces "^3.0.2"
1657 | picomatch "^2.3.1"
1658 |
1659 | mime@^1.4.1:
1660 | version "1.6.0"
1661 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
1662 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
1663 |
1664 | ms@2.1.2:
1665 | version "2.1.2"
1666 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1667 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1668 |
1669 | msgpackr-extract@^3.0.2:
1670 | version "3.0.2"
1671 | resolved "https://registry.yarnpkg.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz#e05ec1bb4453ddf020551bcd5daaf0092a2c279d"
1672 | integrity sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==
1673 | dependencies:
1674 | node-gyp-build-optional-packages "5.0.7"
1675 | optionalDependencies:
1676 | "@msgpackr-extract/msgpackr-extract-darwin-arm64" "3.0.2"
1677 | "@msgpackr-extract/msgpackr-extract-darwin-x64" "3.0.2"
1678 | "@msgpackr-extract/msgpackr-extract-linux-arm" "3.0.2"
1679 | "@msgpackr-extract/msgpackr-extract-linux-arm64" "3.0.2"
1680 | "@msgpackr-extract/msgpackr-extract-linux-x64" "3.0.2"
1681 | "@msgpackr-extract/msgpackr-extract-win32-x64" "3.0.2"
1682 |
1683 | msgpackr@^1.9.5, msgpackr@^1.9.9:
1684 | version "1.10.0"
1685 | resolved "https://registry.yarnpkg.com/msgpackr/-/msgpackr-1.10.0.tgz#adbca9c951f06647a808f76bc00a519cf6f7fbe4"
1686 | integrity sha512-rVQ5YAQDoZKZLX+h8tNq7FiHrPJoeGHViz3U4wIcykhAEpwF/nH2Vbk8dQxmpX5JavkI8C7pt4bnkJ02ZmRoUw==
1687 | optionalDependencies:
1688 | msgpackr-extract "^3.0.2"
1689 |
1690 | needle@^3.1.0:
1691 | version "3.3.1"
1692 | resolved "https://registry.yarnpkg.com/needle/-/needle-3.3.1.tgz#63f75aec580c2e77e209f3f324e2cdf3d29bd049"
1693 | integrity sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==
1694 | dependencies:
1695 | iconv-lite "^0.6.3"
1696 | sax "^1.2.4"
1697 |
1698 | node-addon-api@^6.1.0:
1699 | version "6.1.0"
1700 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76"
1701 | integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==
1702 |
1703 | node-addon-api@^7.0.0:
1704 | version "7.0.0"
1705 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e"
1706 | integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==
1707 |
1708 | node-gyp-build-optional-packages@5.0.7:
1709 | version "5.0.7"
1710 | resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz#5d2632bbde0ab2f6e22f1bbac2199b07244ae0b3"
1711 | integrity sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==
1712 |
1713 | node-gyp-build-optional-packages@5.1.1:
1714 | version "5.1.1"
1715 | resolved "https://registry.yarnpkg.com/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz#52b143b9dd77b7669073cbfe39e3f4118bfc603c"
1716 | integrity sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==
1717 | dependencies:
1718 | detect-libc "^2.0.1"
1719 |
1720 | node-releases@^2.0.14:
1721 | version "2.0.14"
1722 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
1723 | integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
1724 |
1725 | nth-check@^2.0.1:
1726 | version "2.1.1"
1727 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
1728 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
1729 | dependencies:
1730 | boolbase "^1.0.0"
1731 |
1732 | nullthrows@^1.1.1:
1733 | version "1.1.1"
1734 | resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
1735 | integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
1736 |
1737 | ordered-binary@^1.4.1:
1738 | version "1.5.1"
1739 | resolved "https://registry.yarnpkg.com/ordered-binary/-/ordered-binary-1.5.1.tgz#94ccbf14181711081ee23931db0dc3f58aaa0df6"
1740 | integrity sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==
1741 |
1742 | parcel@^2.10.3:
1743 | version "2.10.3"
1744 | resolved "https://registry.yarnpkg.com/parcel/-/parcel-2.10.3.tgz#f91a0c98896df98ca857505ea2d1c0dcb0560a01"
1745 | integrity sha512-Ocx33N4ZVnotJTALhMZ0AqPIE9UN5uP6jjA+lYJ4FlEYuYYZsvOQXZQgeMa62pFj6jrOHWh7ho8uJhRdTNwVyg==
1746 | dependencies:
1747 | "@parcel/config-default" "2.10.3"
1748 | "@parcel/core" "2.10.3"
1749 | "@parcel/diagnostic" "2.10.3"
1750 | "@parcel/events" "2.10.3"
1751 | "@parcel/fs" "2.10.3"
1752 | "@parcel/logger" "2.10.3"
1753 | "@parcel/package-manager" "2.10.3"
1754 | "@parcel/reporter-cli" "2.10.3"
1755 | "@parcel/reporter-dev-server" "2.10.3"
1756 | "@parcel/reporter-tracer" "2.10.3"
1757 | "@parcel/utils" "2.10.3"
1758 | chalk "^4.1.0"
1759 | commander "^7.0.0"
1760 | get-port "^4.2.0"
1761 |
1762 | parent-module@^1.0.0:
1763 | version "1.0.1"
1764 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1765 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1766 | dependencies:
1767 | callsites "^3.0.0"
1768 |
1769 | parse-json@^5.2.0:
1770 | version "5.2.0"
1771 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
1772 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
1773 | dependencies:
1774 | "@babel/code-frame" "^7.0.0"
1775 | error-ex "^1.3.1"
1776 | json-parse-even-better-errors "^2.3.0"
1777 | lines-and-columns "^1.1.6"
1778 |
1779 | parse-node-version@^1.0.1:
1780 | version "1.0.1"
1781 | resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
1782 | integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
1783 |
1784 | path-type@^4.0.0:
1785 | version "4.0.0"
1786 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
1787 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1788 |
1789 | picocolors@^1.0.0:
1790 | version "1.0.0"
1791 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1792 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1793 |
1794 | picomatch@^2.3.1:
1795 | version "2.3.1"
1796 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1797 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1798 |
1799 | pify@^4.0.1:
1800 | version "4.0.1"
1801 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
1802 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
1803 |
1804 | postcss-value-parser@^4.2.0:
1805 | version "4.2.0"
1806 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1807 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1808 |
1809 | posthtml-parser@^0.10.1:
1810 | version "0.10.2"
1811 | resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.10.2.tgz#df364d7b179f2a6bf0466b56be7b98fd4e97c573"
1812 | integrity sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==
1813 | dependencies:
1814 | htmlparser2 "^7.1.1"
1815 |
1816 | posthtml-parser@^0.11.0:
1817 | version "0.11.0"
1818 | resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.11.0.tgz#25d1c7bf811ea83559bc4c21c189a29747a24b7a"
1819 | integrity sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==
1820 | dependencies:
1821 | htmlparser2 "^7.1.1"
1822 |
1823 | posthtml-render@^3.0.0:
1824 | version "3.0.0"
1825 | resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-3.0.0.tgz#97be44931496f495b4f07b99e903cc70ad6a3205"
1826 | integrity sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==
1827 | dependencies:
1828 | is-json "^2.0.1"
1829 |
1830 | posthtml@^0.16.4, posthtml@^0.16.5:
1831 | version "0.16.6"
1832 | resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.16.6.tgz#e2fc407f67a64d2fa3567afe770409ffdadafe59"
1833 | integrity sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==
1834 | dependencies:
1835 | posthtml-parser "^0.11.0"
1836 | posthtml-render "^3.0.0"
1837 |
1838 | prr@~1.0.1:
1839 | version "1.0.1"
1840 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
1841 | integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
1842 |
1843 | react-error-overlay@6.0.9:
1844 | version "6.0.9"
1845 | resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a"
1846 | integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==
1847 |
1848 | react-refresh@^0.9.0:
1849 | version "0.9.0"
1850 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf"
1851 | integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==
1852 |
1853 | regenerator-runtime@^0.13.7:
1854 | version "0.13.11"
1855 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
1856 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
1857 |
1858 | resolve-from@^4.0.0:
1859 | version "4.0.0"
1860 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1861 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1862 |
1863 | safe-buffer@^5.0.1:
1864 | version "5.2.1"
1865 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1866 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1867 |
1868 | "safer-buffer@>= 2.1.2 < 3.0.0":
1869 | version "2.1.2"
1870 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1871 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1872 |
1873 | sax@^1.2.4:
1874 | version "1.3.0"
1875 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
1876 | integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==
1877 |
1878 | semver@^5.6.0:
1879 | version "5.7.2"
1880 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
1881 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
1882 |
1883 | semver@^6.3.1:
1884 | version "6.3.1"
1885 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
1886 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
1887 |
1888 | semver@^7.5.2:
1889 | version "7.5.4"
1890 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
1891 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
1892 | dependencies:
1893 | lru-cache "^6.0.0"
1894 |
1895 | source-map-support@~0.5.20:
1896 | version "0.5.21"
1897 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
1898 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
1899 | dependencies:
1900 | buffer-from "^1.0.0"
1901 | source-map "^0.6.0"
1902 |
1903 | source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0:
1904 | version "0.6.1"
1905 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1906 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1907 |
1908 | srcset@4:
1909 | version "4.0.0"
1910 | resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4"
1911 | integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==
1912 |
1913 | stable@^0.1.8:
1914 | version "0.1.8"
1915 | resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
1916 | integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
1917 |
1918 | supports-color@^5.3.0:
1919 | version "5.5.0"
1920 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1921 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1922 | dependencies:
1923 | has-flag "^3.0.0"
1924 |
1925 | supports-color@^7.1.0:
1926 | version "7.2.0"
1927 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1928 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1929 | dependencies:
1930 | has-flag "^4.0.0"
1931 |
1932 | svgo@^2.4.0:
1933 | version "2.8.0"
1934 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
1935 | integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
1936 | dependencies:
1937 | "@trysound/sax" "0.2.0"
1938 | commander "^7.2.0"
1939 | css-select "^4.1.3"
1940 | css-tree "^1.1.3"
1941 | csso "^4.2.0"
1942 | picocolors "^1.0.0"
1943 | stable "^0.1.8"
1944 |
1945 | term-size@^2.2.1:
1946 | version "2.2.1"
1947 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
1948 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
1949 |
1950 | terser@^5.2.0:
1951 | version "5.26.0"
1952 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1"
1953 | integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==
1954 | dependencies:
1955 | "@jridgewell/source-map" "^0.3.3"
1956 | acorn "^8.8.2"
1957 | commander "^2.20.0"
1958 | source-map-support "~0.5.20"
1959 |
1960 | timsort@^0.3.0:
1961 | version "0.3.0"
1962 | resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
1963 | integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==
1964 |
1965 | to-fast-properties@^2.0.0:
1966 | version "2.0.0"
1967 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1968 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
1969 |
1970 | to-regex-range@^5.0.1:
1971 | version "5.0.1"
1972 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1973 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1974 | dependencies:
1975 | is-number "^7.0.0"
1976 |
1977 | tslib@^2.3.0, tslib@^2.4.0:
1978 | version "2.6.2"
1979 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
1980 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
1981 |
1982 | type-fest@^0.20.2:
1983 | version "0.20.2"
1984 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
1985 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1986 |
1987 | update-browserslist-db@^1.0.13:
1988 | version "1.0.13"
1989 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
1990 | integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
1991 | dependencies:
1992 | escalade "^3.1.1"
1993 | picocolors "^1.0.0"
1994 |
1995 | utility-types@^3.10.0:
1996 | version "3.10.0"
1997 | resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b"
1998 | integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==
1999 |
2000 | weak-lru-cache@^1.2.2:
2001 | version "1.2.2"
2002 | resolved "https://registry.yarnpkg.com/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz#fdbb6741f36bae9540d12f480ce8254060dccd19"
2003 | integrity sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==
2004 |
2005 | yallist@^3.0.2:
2006 | version "3.1.1"
2007 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
2008 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
2009 |
2010 | yallist@^4.0.0:
2011 | version "4.0.0"
2012 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
2013 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
2014 |
--------------------------------------------------------------------------------