@samitouri / QOS-React / commits / 2f66d37cfd

Use lz-string for playground state uri param

This compresses more efficiently than the base64 encoding we were previously using, which makes sharing URLs a little less unwieldy and takes up less space in local storage. Using some real code as an example, lz-string compresses to 8040 bytes, whereas the original base64 encoding we were using compresses to 16504 bytes ghstack-source-id: b8f1089889b94b07d6f419606b798ffddb8863ba Pull Request resolved: https://github.com/facebook/react-forget/pull/2834

Lauren Tan committed Apr 10, 2024 at 17:46 UTC 2f66d37cfd9a0bb1b502147ebc8212ed416f9bec
4 files changed +38 -227
compiler/apps/playground/lib/stores/store.ts
+8 -6
@@ -5,10 +5,12 @@
5 * LICENSE file in the root directory of this source tree.
6 */
7
8 -
8 import invariant from "invariant";
9 +import {
10 + compressToEncodedURIComponent,
11 + decompressFromEncodedURIComponent,
12 +} from "lz-string";
13 import { defaultStore } from "../defaultStore";
11 -import { codec } from "../utils";
14
15 /**
16 * Global Store for Playground
@@ -21,9 +23,9 @@ export interface Store {
23 * Serialize, encode, and save @param store to localStorage and update URL.
24 */
25 export function saveStore(store: Store) {
24 - const base64 = codec.utoa(JSON.stringify(store));
25 - localStorage.setItem("playgroundStore", base64);
26 - history.replaceState({}, "", `#${base64}`);
26 + const hash = compressToEncodedURIComponent(JSON.stringify(store));
27 + localStorage.setItem("playgroundStore", hash);
28 + history.replaceState({}, "", `#${hash}`);
29 }
30
31 /**
@@ -52,7 +54,7 @@ export function initStoreFromUrlOrLocalStorage(): Store {
54 // Initialize with the default store.
55 if (!encodedSource) return defaultStore;
56
55 - const raw = JSON.parse(codec.atou(encodedSource));
57 + const raw = JSON.parse(decompressFromEncodedURIComponent(encodedSource));
58
59 invariant(isValidStore(raw), "Invalid Store");
60 return raw;
compiler/apps/playground/lib/utils.ts deleted
-26
@@ -1,26 +0,0 @@
1 -/**
2 - * Copyright (c) Meta Platforms, Inc. and affiliates.
3 - *
4 - * This source code is licensed under the MIT license found in the
5 - * LICENSE file in the root directory of this source tree.
6 - */
7 -
8 -
9 -/**
10 - * Unicode-Base64 Codec.
11 - *
12 - * @see https://base64.guru/developers/javascript/examples/unicode-strings
13 - * @see https://github.com/vuejs/core/pull/3662/
14 - */
15 -export const codec = {
16 - utoa(data: string): string {
17 - return btoa(unescape(encodeURIComponent(data)));
18 - },
19 -
20 - /**
21 - * @returns undefined if @base64 is not a valid Base64 string.
22 - */
23 - atou(base64: string): string {
24 - return decodeURIComponent(escape(atob(base64)));
25 - },
26 -};
compiler/apps/playground/package.json
+1
@@ -27,6 +27,7 @@
27 "babel-plugin-react-forget": "*",
28 "hermes-eslint": "^0.14.0",
29 "invariant": "^2.2.4",
30 + "lz-string": "^1.5.0",
31 "monaco-editor": "^0.34.1",
32 "next": "^13.5.6",
33 "notistack": "^3.0.0-alpha.7",
compiler/yarn.lock
+29 -195
@@ -12,14 +12,6 @@
12 resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
13 integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
14
15 -"@ampproject/remapping@^2.2.0":
16 - version "2.3.0"
17 - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
18 - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
19 - dependencies:
20 - "@jridgewell/gen-mapping" "^0.3.5"
21 - "@jridgewell/trace-mapping" "^0.3.24"
22 -
15 "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
16 version "7.18.6"
17 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
@@ -41,7 +33,7 @@
33 dependencies:
34 "@babel/highlight" "^7.22.5"
35
44 -"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2":
36 +"@babel/code-frame@^7.23.5":
37 version "7.24.2"
38 resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
39 integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
@@ -54,12 +46,7 @@
46 resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.3.tgz#cd502a6a0b6e37d7ad72ce7e71a7160a3ae36f7e"
47 integrity sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==
48
57 -"@babel/compat-data@^7.23.5":
58 - version "7.24.4"
59 - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a"
60 - integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==
61 -
62 -"@babel/core@^7.0.0", "@babel/core@^7.2.0":
49 +"@babel/core@7.2.0", "@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.1", "@babel/core@^7.2.0", "@babel/core@^7.24.4":
50 version "7.2.0"
51 resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.0.tgz#a4dd3814901998e93340f0086e9867fefa163ada"
52 integrity sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw==
@@ -79,28 +66,7 @@
66 semver "^5.4.1"
67 source-map "^0.5.0"
68
82 -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.1", "@babel/core@^7.24.4":
83 - version "7.24.4"
84 - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717"
85 - integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==
86 - dependencies:
87 - "@ampproject/remapping" "^2.2.0"
88 - "@babel/code-frame" "^7.24.2"
89 - "@babel/generator" "^7.24.4"
90 - "@babel/helper-compilation-targets" "^7.23.6"
91 - "@babel/helper-module-transforms" "^7.23.3"
92 - "@babel/helpers" "^7.24.4"
93 - "@babel/parser" "^7.24.4"
94 - "@babel/template" "^7.24.0"
95 - "@babel/traverse" "^7.24.1"
96 - "@babel/types" "^7.24.0"
97 - convert-source-map "^2.0.0"
98 - debug "^4.1.0"
99 - gensync "^1.0.0-beta.2"
100 - json5 "^2.2.3"
101 - semver "^6.3.1"
102 -
103 -"@babel/generator@7.2.0", "@babel/generator@^7.0.0", "@babel/generator@^7.1.6", "@babel/generator@^7.2.0":
69 +"@babel/generator@7.2.0", "@babel/generator@^7.0.0", "@babel/generator@^7.1.6", "@babel/generator@^7.2.0", "@babel/generator@^7.7.2":
70 version "7.2.0"
71 resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.0.tgz#eaf3821fa0301d9d4aef88e63d4bcc19b73ba16c"
72 integrity sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==
@@ -111,16 +77,6 @@
77 source-map "^0.5.0"
78 trim-right "^1.0.1"
79
114 -"@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2":
115 - version "7.24.4"
116 - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498"
117 - integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==
118 - dependencies:
119 - "@babel/types" "^7.24.0"
120 - "@jridgewell/gen-mapping" "^0.3.5"
121 - "@jridgewell/trace-mapping" "^0.3.25"
122 - jsesc "^2.5.1"
123 -
80 "@babel/helper-annotate-as-pure@^7.18.6":
81 version "7.18.6"
82 resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -153,17 +109,6 @@
109 lru-cache "^5.1.1"
110 semver "^6.3.0"
111
156 -"@babel/helper-compilation-targets@^7.23.6":
157 - version "7.23.6"
158 - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
159 - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
160 - dependencies:
161 - "@babel/compat-data" "^7.23.5"
162 - "@babel/helper-validator-option" "^7.23.5"
163 - browserslist "^4.22.2"
164 - lru-cache "^5.1.1"
165 - semver "^6.3.1"
166 -
112 "@babel/helper-create-class-features-plugin@^7.18.6":
113 version "7.22.9"
114 resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236"
@@ -238,17 +183,12 @@
183 resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8"
184 integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==
185
241 -"@babel/helper-environment-visitor@^7.22.20":
242 - version "7.22.20"
243 - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
244 - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
245 -
186 "@babel/helper-environment-visitor@^7.22.5":
187 version "7.22.5"
188 resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
189 integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
190
251 -"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.23.0":
191 +"@babel/helper-function-name@^7.1.0":
192 version "7.23.0"
193 resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
194 integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
@@ -287,13 +227,6 @@
227 dependencies:
228 "@babel/types" "^7.18.6"
229
290 -"@babel/helper-hoist-variables@^7.22.5":
291 - version "7.22.5"
292 - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
293 - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
294 - dependencies:
295 - "@babel/types" "^7.22.5"
296 -
230 "@babel/helper-member-expression-to-functions@^7.18.9":
231 version "7.18.9"
232 resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815"
@@ -329,13 +262,6 @@
262 dependencies:
263 "@babel/types" "^7.21.4"
264
332 -"@babel/helper-module-imports@^7.22.15":
333 - version "7.24.3"
334 - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
335 - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
336 - dependencies:
337 - "@babel/types" "^7.24.0"
338 -
265 "@babel/helper-module-transforms@^7.18.6":
266 version "7.19.0"
267 resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30"
@@ -378,17 +304,6 @@
304 "@babel/traverse" "^7.21.2"
305 "@babel/types" "^7.21.2"
306
381 -"@babel/helper-module-transforms@^7.23.3":
382 - version "7.23.3"
383 - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
384 - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
385 - dependencies:
386 - "@babel/helper-environment-visitor" "^7.22.20"
387 - "@babel/helper-module-imports" "^7.22.15"
388 - "@babel/helper-simple-access" "^7.22.5"
389 - "@babel/helper-split-export-declaration" "^7.22.6"
390 - "@babel/helper-validator-identifier" "^7.22.20"
391 -
307 "@babel/helper-optimise-call-expression@^7.18.6":
308 version "7.18.6"
309 resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
@@ -486,13 +401,6 @@
401 dependencies:
402 "@babel/types" "^7.21.5"
403
489 -"@babel/helper-simple-access@^7.22.5":
490 - version "7.22.5"
491 - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
492 - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
493 - dependencies:
494 - "@babel/types" "^7.22.5"
495 -
404 "@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
405 version "7.20.0"
406 resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
@@ -576,11 +484,6 @@
484 resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
485 integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
486
579 -"@babel/helper-validator-option@^7.23.5":
580 - version "7.23.5"
581 - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
582 - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
583 -
487 "@babel/helper-wrap-function@^7.18.9":
488 version "7.20.5"
489 resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3"
@@ -600,15 +503,6 @@
503 "@babel/traverse" "^7.19.0"
504 "@babel/types" "^7.19.0"
505
603 -"@babel/helpers@^7.24.4":
604 - version "7.24.4"
605 - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6"
606 - integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==
607 - dependencies:
608 - "@babel/template" "^7.24.0"
609 - "@babel/traverse" "^7.24.1"
610 - "@babel/types" "^7.24.0"
611 -
506 "@babel/highlight@^7.18.6":
507 version "7.18.6"
508 resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
@@ -637,12 +531,17 @@
531 js-tokens "^4.0.0"
532 picocolors "^1.0.0"
533
534 +"@babel/parser@7.7.4":
535 + version "7.7.4"
536 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb"
537 + integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==
538 +
539 "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.1", "@babel/parser@^7.2.0":
540 version "7.19.1"
541 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c"
542 integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==
543
645 -"@babel/parser@^7.1.6", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4":
544 +"@babel/parser@^7.1.6", "@babel/parser@^7.24.4":
545 version "7.24.4"
546 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88"
547 integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==
@@ -1544,7 +1443,7 @@
1443 "@babel/parser" "^7.21.9"
1444 "@babel/types" "^7.21.5"
1445
1547 -"@babel/template@^7.22.15", "@babel/template@^7.24.0":
1446 +"@babel/template@^7.22.15":
1447 version "7.24.0"
1448 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
1449 integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
@@ -1571,7 +1470,7 @@
1470 "@babel/parser" "^7.18.6"
1471 "@babel/types" "^7.18.6"
1472
1574 -"@babel/traverse@^7.1.6":
1473 +"@babel/traverse@7.1.6", "@babel/traverse@^7.1.6", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.2.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.2", "@babel/traverse@^7.22.1", "@babel/traverse@^7.7.2":
1474 version "7.1.6"
1475 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
1476 integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==
@@ -1586,21 +1485,14 @@
1485 globals "^11.1.0"
1486 lodash "^4.17.10"
1487
1589 -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.2.0", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.2", "@babel/traverse@^7.22.1", "@babel/traverse@^7.24.1", "@babel/traverse@^7.7.2":
1590 - version "7.24.1"
1591 - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
1592 - integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
1593 - dependencies:
1594 - "@babel/code-frame" "^7.24.1"
1595 - "@babel/generator" "^7.24.1"
1596 - "@babel/helper-environment-visitor" "^7.22.20"
1597 - "@babel/helper-function-name" "^7.23.0"
1598 - "@babel/helper-hoist-variables" "^7.22.5"
1599 - "@babel/helper-split-export-declaration" "^7.22.6"
1600 - "@babel/parser" "^7.24.1"
1601 - "@babel/types" "^7.24.0"
1602 - debug "^4.3.1"
1603 - globals "^11.1.0"
1488 +"@babel/types@7.7.4":
1489 + version "7.7.4"
1490 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193"
1491 + integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==
1492 + dependencies:
1493 + esutils "^2.0.2"
1494 + lodash "^4.17.13"
1495 + to-fast-properties "^2.0.0"
1496
1497 "@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3":
1498 version "7.18.9"
@@ -3858,16 +3750,6 @@ browserslist@^4.21.3, browserslist@^4.21.5:
3750 node-releases "^2.0.12"
3751 update-browserslist-db "^1.0.11"
3752
3861 -browserslist@^4.22.2:
3862 - version "4.23.0"
3863 - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab"
3864 - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
3865 - dependencies:
3866 - caniuse-lite "^1.0.30001587"
3867 - electron-to-chromium "^1.4.668"
3868 - node-releases "^2.0.14"
3869 - update-browserslist-db "^1.0.13"
3870 -
3753 bs-logger@0.x:
3754 version "0.2.6"
3755 resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
@@ -3948,11 +3830,6 @@ caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.300014
3830 resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz"
3831 integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==
3832
3951 -caniuse-lite@^1.0.30001587:
3952 - version "1.0.30001605"
3953 - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz#ca12d7330dd8bcb784557eb9aa64f0037870d9d6"
3954 - integrity sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==
3955 -
3833 chalk@4, chalk@^4.0.0, chalk@^4.1.0:
3834 version "4.1.2"
3835 resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
@@ -4453,11 +4330,6 @@ electron-to-chromium@^1.4.411:
4330 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.418.tgz#9092aca12db25acf02a2ddf9de59f0e4363c9928"
4331 integrity sha512-1KnpDTS9onwAfMzW50LcpNtyOkMyjd/OLoD2Kx/DDITZqgNYixY71XNszPHNxyQQ/Brh+FDcUnf4BaM041sdWg==
4332
4456 -electron-to-chromium@^1.4.668:
4457 - version "1.4.724"
4458 - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.724.tgz#e0a86fe4d3d0e05a4d7b032549d79608078f830d"
4459 - integrity sha512-RTRvkmRkGhNBPPpdrgtDKvmOEYTrPlXDfc0J/Nfq5s29tEahAwhiX4mmhNzj6febWMleulxVYPh7QwCSL/EldA==
4460 -
4333 emittery@^0.10.2:
4334 version "0.10.2"
4335 resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
@@ -5311,11 +5183,6 @@ functions-have-names@^1.2.2, functions-have-names@^1.2.3:
5183 resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
5184 integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
5185
5314 -gensync@^1.0.0-beta.2:
5315 - version "1.0.0-beta.2"
5316 - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
5317 - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
5318 -
5186 get-caller-file@^2.0.1, get-caller-file@^2.0.5:
5187 version "2.0.5"
5188 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
@@ -7495,7 +7362,7 @@ lodash.omitby@4.6.0:
7362 resolved "https://registry.yarnpkg.com/lodash.omitby/-/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791"
7363 integrity sha512-5OrRcIVR75M288p4nbI2WLAf3ndw2GD9fyNv3Bc15+WCxJDdZ4lYndSxGd7hnG6PVjiJTeJE2dHEGhIuKGicIQ==
7364
7498 -lodash@^4.17.10, lodash@^4.17.21:
7365 +lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.21:
7366 version "4.17.21"
7367 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
7368 integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -7531,6 +7398,11 @@ lz-string@^1.4.4:
7398 resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
7399 integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==
7400
7401 +lz-string@^1.5.0:
7402 + version "1.5.0"
7403 + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
7404 + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
7405 +
7406 magic-string@0.30.5:
7407 version "0.30.5"
7408 resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9"
@@ -7739,11 +7611,6 @@ node-releases@^2.0.12:
7611 resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
7612 integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==
7613
7742 -node-releases@^2.0.14:
7743 - version "2.0.14"
7744 - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
7745 - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
7746 -
7614 normalize-path@^3.0.0, normalize-path@~3.0.0:
7615 version "3.0.0"
7616 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -8887,16 +8754,7 @@ string-length@^4.0.1:
8754 char-regex "^1.0.2"
8755 strip-ansi "^6.0.0"
8756
8890 -"string-width-cjs@npm:string-width@^4.2.0":
8891 - version "4.2.3"
8892 - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
8893 - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
8894 - dependencies:
8895 - emoji-regex "^8.0.0"
8896 - is-fullwidth-code-point "^3.0.0"
8897 - strip-ansi "^6.0.1"
8898 -
8899 -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
8757 +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
8758 version "4.2.3"
8759 resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
8760 integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -8982,14 +8840,7 @@ string.prototype.trimstart@^1.0.7:
8840 define-properties "^1.2.0"
8841 es-abstract "^1.22.1"
8842
8985 -"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
8986 - version "6.0.1"
8987 - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
8988 - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
8989 - dependencies:
8990 - ansi-regex "^5.0.1"
8991 -
8992 -strip-ansi@^6.0.0, strip-ansi@^6.0.1:
8843 +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
8844 version "6.0.1"
8845 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
8846 integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -9437,14 +9288,6 @@ update-browserslist-db@^1.0.11:
9288 escalade "^3.1.1"
9289 picocolors "^1.0.0"
9290
9440 -update-browserslist-db@^1.0.13:
9441 - version "1.0.13"
9442 - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
9443 - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
9444 - dependencies:
9445 - escalade "^3.1.1"
9446 - picocolors "^1.0.0"
9447 -
9291 uri-js@^4.2.2:
9292 version "4.4.1"
9293 resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -9632,7 +9475,7 @@ wordwrap@>=0.0.2:
9475 resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
9476 integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
9477
9635 -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
9478 +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
9479 version "7.0.0"
9480 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
9481 integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -9650,15 +9493,6 @@ wrap-ansi@^6.2.0:
9493 string-width "^4.1.0"
9494 strip-ansi "^6.0.0"
9495
9653 -wrap-ansi@^7.0.0:
9654 - version "7.0.0"
9655 - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
9656 - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
9657 - dependencies:
9658 - ansi-styles "^4.0.0"
9659 - string-width "^4.1.0"
9660 - strip-ansi "^6.0.0"
9661 -
9496 wrap-ansi@^8.1.0:
9497 version "8.1.0"
9498 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"