@samitouri / QOS-React-2 / commits / 3c46984e09

Repro of fbt issues

Adds the two FBT (https://facebook.github.io/fbt/) plugins to our test setup so that we can verify Forget plays well with FBT. Unfortunately FBT's plugins are a bit finicky, and things that are technically allowed per the JSX spec (such as wrapping string attribute values in a JsxExpressionContainer) aren't supported by FBT's plugin. This PR is just to add the fbt plugins and highlight some cases that fail; these are fixed in later PRs in the stack. For example, the `fbt-params.js` fixture fails on this PR: Input ```error.fbt-params.js import fbt from "fbt"; function Component(props) { return ( <fbt desc={"Dialog to show to user"}> Hello <fbt:param name="user name">{props.name}</fbt:param> </fbt> ); } ``` Output ``` React Forget › __tests__/fixtures/compiler › fixtures › fbt-params Expected fixture 'fbt-params' to succeed but it failed with error: /Users/joesavona/github/react-forget/forget/fbt-params: fbt: unsupported babel node: MemberExpression --- props.name --- ``` See fixes later in the stack.

Joe Savona committed Apr 4, 2023 at 14:32 UTC 3c46984e09b5e0343ec7e9a99a4557a2f15ef2a2
13 files changed +409 -120
compiler/forget/package.json
+2
@@ -53,6 +53,8 @@
53 "@typescript-eslint/eslint-plugin": "^5.51.0",
54 "@typescript-eslint/parser": "^5.51.0",
55 "babel-jest": "^29.0.3",
56 + "babel-plugin-fbt": "^1.0.0",
57 + "babel-plugin-fbt-runtime": "^1.0.0",
58 "concurrently": "^7.4.0",
59 "eslint": "^8.33.0",
60 "glob": "^7.1.6",
compiler/forget/src/Babel/RunReactForgetBabelPlugin.ts
+5 -1
@@ -27,7 +27,11 @@ export default function runReactForgetBabelPlugin(
27 filename: file,
28 highlightCode: false,
29 retainLines: true,
30 - plugins: [[ReactForgetBabelPlugin, options]],
30 + plugins: [
31 + [ReactForgetBabelPlugin, options],
32 + "babel-plugin-fbt",
33 + "babel-plugin-fbt-runtime",
34 + ],
35 sourceType: "module",
36 });
37 invariant(
compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params-complex-param-value.expect.md new
+27
@@ -0,0 +1,27 @@
1 +
2 +## Input
3 +
4 +```javascript
5 +import fbt from "fbt";
6 +
7 +function Component(props) {
8 + return (
9 + <fbt desc={"Dialog to show to user"}>
10 + Hello <fbt:param name="user name">{capitalize(props.name)}</fbt:param>
11 + </fbt>
12 + );
13 +}
14 +
15 +```
16 +
17 +
18 +## Error
19 +
20 +```
21 +fbt: unsupported babel node: Identifier
22 +---
23 +t0
24 +---
25 +```
26 +
27 +
\ No newline at end of file
compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params-complex-param-value.js renamed
+2
@@ -1,3 +1,5 @@
1 +import fbt from "fbt";
2 +
3 function Component(props) {
4 return (
5 <fbt desc={"Dialog to show to user"}>
compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params.expect.md new
+27
@@ -0,0 +1,27 @@
1 +
2 +## Input
3 +
4 +```javascript
5 +import fbt from "fbt";
6 +
7 +function Component(props) {
8 + return (
9 + <fbt desc={"Dialog to show to user"}>
10 + Hello <fbt:param name="user name">{props.name}</fbt:param>
11 + </fbt>
12 + );
13 +}
14 +
15 +```
16 +
17 +
18 +## Error
19 +
20 +```
21 +fbt: unsupported babel node: MemberExpression
22 +---
23 +props.name
24 +---
25 +```
26 +
27 +
\ No newline at end of file
compiler/forget/src/__tests__/fixtures/compiler/error.fbt-params.js renamed
+2
@@ -1,3 +1,5 @@
1 +import fbt from "fbt";
2 +
3 function Component(props) {
4 return (
5 <fbt desc={"Dialog to show to user"}>
compiler/forget/src/__tests__/fixtures/compiler/fbt-call-complex-param-value.expect.md
+8 -3
@@ -2,6 +2,8 @@
2 ## Input
3
4 ```javascript
5 +import fbt from "fbt";
6 +
7 function Component(props) {
8 const text = fbt(
9 `Hello, ${fbt.param("(key) name", capitalize(props.name))}!`,
@@ -15,14 +17,17 @@ function Component(props) {
17 ## Code
18
19 ```javascript
20 +import fbt from "fbt";
21 +
22 function Component(props) {
23 const $ = React.unstable_useMemoCache(4);
24 const c_0 = $[0] !== props.name;
25 let t0;
26 if (c_0) {
23 - t0 = fbt(
24 - `Hello, ${fbt.param("(key) name", capitalize(props.name))}!`,
25 - "(description) Greeting"
27 + t0 = fbt._(
28 + "Hello, {(key) name}!",
29 + [fbt._param("(key) name", capitalize(props.name))],
30 + { hk: "2sOsn5" }
31 );
32 $[0] = props.name;
33 $[1] = t0;
compiler/forget/src/__tests__/fixtures/compiler/fbt-call-complex-param-value.js
+2
@@ -1,3 +1,5 @@
1 +import fbt from "fbt";
2 +
3 function Component(props) {
4 const text = fbt(
5 `Hello, ${fbt.param("(key) name", capitalize(props.name))}!`,
compiler/forget/src/__tests__/fixtures/compiler/fbt-call.expect.md
+8 -3
@@ -2,6 +2,8 @@
2 ## Input
3
4 ```javascript
5 +import fbt from "fbt";
6 +
7 function Component(props) {
8 const text = fbt(
9 `${fbt.param("(key) count", props.count)} items`,
@@ -15,14 +17,17 @@ function Component(props) {
17 ## Code
18
19 ```javascript
20 +import fbt from "fbt";
21 +
22 function Component(props) {
23 const $ = React.unstable_useMemoCache(4);
24 const c_0 = $[0] !== props.count;
25 let t0;
26 if (c_0) {
23 - t0 = fbt(
24 - `${fbt.param("(key) count", props.count)} items`,
25 - "(description) Number of items"
27 + t0 = fbt._(
28 + "{(key) count} items",
29 + [fbt._param("(key) count", props.count)],
30 + { hk: "3yW91j" }
31 );
32 $[0] = props.count;
33 $[1] = t0;
compiler/forget/src/__tests__/fixtures/compiler/fbt-call.js
+2
@@ -1,3 +1,5 @@
1 +import fbt from "fbt";
2 +
3 function Component(props) {
4 const text = fbt(
5 `${fbt.param("(key) count", props.count)} items`,
compiler/forget/src/__tests__/fixtures/compiler/fbt-params-complex-param-value.expect.md deleted
-46
@@ -1,46 +0,0 @@
1 -
2 -## Input
3 -
4 -```javascript
5 -function Component(props) {
6 - return (
7 - <fbt desc={"Dialog to show to user"}>
8 - Hello <fbt:param name="user name">{capitalize(props.name)}</fbt:param>
9 - </fbt>
10 - );
11 -}
12 -
13 -```
14 -
15 -## Code
16 -
17 -```javascript
18 -function Component(props) {
19 - const $ = React.unstable_useMemoCache(4);
20 - const c_0 = $[0] !== props.name;
21 - let t1;
22 - if (c_0) {
23 - const c_2 = $[2] !== props.name;
24 - let t0;
25 - if (c_2) {
26 - t0 = capitalize(props.name);
27 - $[2] = props.name;
28 - $[3] = t0;
29 - } else {
30 - t0 = $[3];
31 - }
32 - t1 = (
33 - <fbt desc={"Dialog to show to user"}>
34 - Hello <fbt:param name={"user name"}>{t0}</fbt:param>
35 - </fbt>
36 - );
37 - $[0] = props.name;
38 - $[1] = t1;
39 - } else {
40 - t1 = $[1];
41 - }
42 - return t1;
43 -}
44 -
45 -```
46 -
\ No newline at end of file
compiler/forget/src/__tests__/fixtures/compiler/fbt-params.expect.md deleted
-37
@@ -1,37 +0,0 @@
1 -
2 -## Input
3 -
4 -```javascript
5 -function Component(props) {
6 - return (
7 - <fbt desc={"Dialog to show to user"}>
8 - Hello <fbt:param name="user name">{props.name}</fbt:param>
9 - </fbt>
10 - );
11 -}
12 -
13 -```
14 -
15 -## Code
16 -
17 -```javascript
18 -function Component(props) {
19 - const $ = React.unstable_useMemoCache(2);
20 - const c_0 = $[0] !== props.name;
21 - let t0;
22 - if (c_0) {
23 - t0 = (
24 - <fbt desc={"Dialog to show to user"}>
25 - Hello <fbt:param name={"user name"}>{props.name}</fbt:param>
26 - </fbt>
27 - );
28 - $[0] = props.name;
29 - $[1] = t0;
30 - } else {
31 - t0 = $[1];
32 - }
33 - return t0;
34 -}
35 -
36 -```
37 -
\ No newline at end of file
compiler/forget/yarn.lock
+324 -30
@@ -29,7 +29,7 @@
29 resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9"
30 integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==
31
32 -"@babel/core@7.2.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3":
32 +"@babel/core@7.2.0", "@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3":
33 version "7.2.0"
34 resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.0.tgz#a4dd3814901998e93340f0086e9867fefa163ada"
35 integrity sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw==
@@ -81,16 +81,7 @@
81 source-map "^0.5.0"
82 trim-right "^1.0.1"
83
84 -"@babel/generator@^7.19.0", "@babel/generator@^7.7.2":
85 - version "7.19.5"
86 - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.5.tgz#da3f4b301c8086717eee9cab14da91b1fa5dcca7"
87 - integrity sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==
88 - dependencies:
89 - "@babel/types" "^7.19.4"
90 - "@jridgewell/gen-mapping" "^0.3.2"
91 - jsesc "^2.5.1"
92 -
93 -"@babel/generator@^7.21.4":
84 +"@babel/generator@^7.0.0", "@babel/generator@^7.21.4":
85 version "7.21.4"
86 resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc"
87 integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==
@@ -100,6 +91,15 @@
91 "@jridgewell/trace-mapping" "^0.3.17"
92 jsesc "^2.5.1"
93
94 +"@babel/generator@^7.19.0", "@babel/generator@^7.7.2":
95 + version "7.19.5"
96 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.5.tgz#da3f4b301c8086717eee9cab14da91b1fa5dcca7"
97 + integrity sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==
98 + dependencies:
99 + "@babel/types" "^7.19.4"
100 + "@jridgewell/gen-mapping" "^0.3.2"
101 + jsesc "^2.5.1"
102 +
103 "@babel/helper-annotate-as-pure@^7.18.6":
104 version "7.18.6"
105 resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
@@ -186,6 +186,20 @@
186 "@babel/traverse" "^7.19.0"
187 "@babel/types" "^7.19.0"
188
189 +"@babel/helper-module-transforms@^7.21.2":
190 + version "7.21.2"
191 + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2"
192 + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==
193 + dependencies:
194 + "@babel/helper-environment-visitor" "^7.18.9"
195 + "@babel/helper-module-imports" "^7.18.6"
196 + "@babel/helper-simple-access" "^7.20.2"
197 + "@babel/helper-split-export-declaration" "^7.18.6"
198 + "@babel/helper-validator-identifier" "^7.19.1"
199 + "@babel/template" "^7.20.7"
200 + "@babel/traverse" "^7.21.2"
201 + "@babel/types" "^7.21.2"
202 +
203 "@babel/helper-optimise-call-expression@^7.18.6":
204 version "7.18.6"
205 resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
@@ -198,6 +212,11 @@
212 resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf"
213 integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==
214
215 +"@babel/helper-plugin-utils@^7.20.2":
216 + version "7.20.2"
217 + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
218 + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
219 +
220 "@babel/helper-replace-supers@^7.18.9":
221 version "7.19.1"
222 resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78"
@@ -216,6 +235,13 @@
235 dependencies:
236 "@babel/types" "^7.18.6"
237
238 +"@babel/helper-simple-access@^7.20.2":
239 + version "7.20.2"
240 + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
241 + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
242 + dependencies:
243 + "@babel/types" "^7.20.2"
244 +
245 "@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.18.6":
246 version "7.18.6"
247 resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
@@ -281,7 +307,7 @@
307 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3"
308 integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==
309
284 -"@babel/parser@^7.21.4":
310 +"@babel/parser@^7.21.4", "@babel/parser@^7.7.4":
311 version "7.21.4"
312 resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
313 integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==
@@ -300,13 +326,20 @@
326 dependencies:
327 "@babel/helper-plugin-utils" "^7.8.0"
328
303 -"@babel/plugin-syntax-class-properties@^7.8.3":
329 +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3":
330 version "7.12.13"
331 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
332 integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
333 dependencies:
334 "@babel/helper-plugin-utils" "^7.12.13"
335
336 +"@babel/plugin-syntax-flow@^7.18.6", "@babel/plugin-syntax-flow@^7.7.4":
337 + version "7.21.4"
338 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107"
339 + integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw==
340 + dependencies:
341 + "@babel/helper-plugin-utils" "^7.20.2"
342 +
343 "@babel/plugin-syntax-import-meta@^7.8.3":
344 version "7.10.4"
345 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
@@ -321,6 +354,13 @@
354 dependencies:
355 "@babel/helper-plugin-utils" "^7.8.0"
356
357 +"@babel/plugin-syntax-jsx@^7.0.0":
358 + version "7.21.4"
359 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2"
360 + integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==
361 + dependencies:
362 + "@babel/helper-plugin-utils" "^7.20.2"
363 +
364 "@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2":
365 version "7.18.6"
366 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
@@ -335,35 +375,35 @@
375 dependencies:
376 "@babel/helper-plugin-utils" "^7.10.4"
377
338 -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
378 +"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
379 version "7.8.3"
380 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
381 integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
382 dependencies:
383 "@babel/helper-plugin-utils" "^7.8.0"
384
345 -"@babel/plugin-syntax-numeric-separator@^7.8.3":
385 +"@babel/plugin-syntax-numeric-separator@^7.2.0", "@babel/plugin-syntax-numeric-separator@^7.8.3":
386 version "7.10.4"
387 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
388 integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
389 dependencies:
390 "@babel/helper-plugin-utils" "^7.10.4"
391
352 -"@babel/plugin-syntax-object-rest-spread@^7.8.3":
392 +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
393 version "7.8.3"
394 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
395 integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
396 dependencies:
397 "@babel/helper-plugin-utils" "^7.8.0"
398
359 -"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
399 +"@babel/plugin-syntax-optional-catch-binding@^7.0.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
400 version "7.8.3"
401 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
402 integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
403 dependencies:
404 "@babel/helper-plugin-utils" "^7.8.0"
405
366 -"@babel/plugin-syntax-optional-chaining@^7.8.3":
406 +"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
407 version "7.8.3"
408 resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
409 integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
@@ -391,6 +431,14 @@
431 dependencies:
432 "@babel/helper-plugin-utils" "^7.18.9"
433
434 +"@babel/plugin-transform-flow-strip-types@^7.2.0":
435 + version "7.21.0"
436 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5"
437 + integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w==
438 + dependencies:
439 + "@babel/helper-plugin-utils" "^7.20.2"
440 + "@babel/plugin-syntax-flow" "^7.18.6"
441 +
442 "@babel/plugin-transform-modules-commonjs@^7.18.6":
443 version "7.18.6"
444 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
@@ -401,6 +449,15 @@
449 "@babel/helper-simple-access" "^7.18.6"
450 babel-plugin-dynamic-import-node "^2.3.3"
451
452 +"@babel/plugin-transform-modules-commonjs@^7.8.3":
453 + version "7.21.2"
454 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7"
455 + integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==
456 + dependencies:
457 + "@babel/helper-module-transforms" "^7.21.2"
458 + "@babel/helper-plugin-utils" "^7.20.2"
459 + "@babel/helper-simple-access" "^7.20.2"
460 +
461 "@babel/plugin-transform-react-display-name@^7.18.6":
462 version "7.18.6"
463 resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415"
@@ -464,6 +521,17 @@
521 "@babel/helper-validator-option" "^7.18.6"
522 "@babel/plugin-transform-typescript" "^7.18.6"
523
524 +"@babel/register@^7.0.0":
525 + version "7.21.0"
526 + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.21.0.tgz#c97bf56c2472e063774f31d344c592ebdcefa132"
527 + integrity sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==
528 + dependencies:
529 + clone-deep "^4.0.1"
530 + find-cache-dir "^2.0.0"
531 + make-dir "^2.1.0"
532 + pirates "^4.0.5"
533 + source-map-support "^0.5.16"
534 +
535 "@babel/runtime@^7.12.5":
536 version "7.19.0"
537 resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259"
@@ -498,7 +566,7 @@
566 "@babel/parser" "^7.18.6"
567 "@babel/types" "^7.18.6"
568
501 -"@babel/traverse@7.1.6", "@babel/traverse@^7.1.6", "@babel/traverse@^7.19.0", "@babel/traverse@^7.7.2":
569 +"@babel/traverse@7.1.6", "@babel/traverse@^7.1.6", "@babel/traverse@^7.19.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2":
570 version "7.1.6"
571 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c"
572 integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==
@@ -564,6 +632,15 @@
632 "@babel/helper-validator-identifier" "^7.19.1"
633 to-fast-properties "^2.0.0"
634
635 +"@babel/types@^7.2.2", "@babel/types@^7.20.2", "@babel/types@^7.21.2", "@babel/types@^7.21.4":
636 + version "7.21.4"
637 + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4"
638 + integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==
639 + dependencies:
640 + "@babel/helper-string-parser" "^7.19.4"
641 + "@babel/helper-validator-identifier" "^7.19.1"
642 + to-fast-properties "^2.0.0"
643 +
644 "@babel/types@^7.20.7":
645 version "7.20.7"
646 resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
@@ -582,15 +659,6 @@
659 "@babel/helper-validator-identifier" "^7.19.1"
660 to-fast-properties "^2.0.0"
661
585 -"@babel/types@^7.21.4":
586 - version "7.21.4"
587 - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4"
588 - integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==
589 - dependencies:
590 - "@babel/helper-string-parser" "^7.19.4"
591 - "@babel/helper-validator-identifier" "^7.19.1"
592 - to-fast-properties "^2.0.0"
593 -
662 "@bcoe/v8-coverage@^0.2.3":
663 version "0.2.3"
664 resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -1438,6 +1506,34 @@ babel-plugin-dynamic-import-node@^2.3.3:
1506 dependencies:
1507 object.assign "^4.1.0"
1508
1509 +babel-plugin-fbt-runtime@^1.0.0:
1510 + version "1.0.0"
1511 + resolved "https://registry.yarnpkg.com/babel-plugin-fbt-runtime/-/babel-plugin-fbt-runtime-1.0.0.tgz#8e7c34cd333ffd9cee5a27d738090a12729b8a82"
1512 + integrity sha512-gML1rXqIfc+sDf1DWxu1WJjmotBYr6f9vjKwOoetuOukM1o3mTKNAeBFGEYu7iBACkuaXpIi++qW8/URgHnduQ==
1513 + dependencies:
1514 + "@babel/core" "^7.0.0"
1515 + invariant "^2.2.4"
1516 +
1517 +babel-plugin-fbt@^1.0.0:
1518 + version "1.0.0"
1519 + resolved "https://registry.yarnpkg.com/babel-plugin-fbt/-/babel-plugin-fbt-1.0.0.tgz#77e707f1478437ce4941de73d12ee869d0feab8f"
1520 + integrity sha512-Tjpkrt4JJLgtS+x6HzkWdOguH+Pb+pzJmSkBmHIWrjf3x9Pf+xFcQUdAbpDKOtRPgu6QyI9DtDulw0sbgdfYdg==
1521 + dependencies:
1522 + "@babel/core" "^7.0.0"
1523 + "@babel/generator" "^7.0.0"
1524 + "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
1525 + "@babel/plugin-transform-flow-strip-types" "^7.2.0"
1526 + "@babel/plugin-transform-modules-commonjs" "^7.8.3"
1527 + "@babel/register" "^7.0.0"
1528 + "@babel/types" "^7.2.2"
1529 + fb-babel-plugin-utils "^0.13.0"
1530 + flow-enums-runtime "^0.0.4"
1531 + glob "^7.1.6"
1532 + invariant "^2.2.4"
1533 + jest-docblock "^26.0.0"
1534 + nullthrows "^1.1.1"
1535 + yargs "^15.3.1"
1536 +
1537 babel-plugin-istanbul@^6.1.1:
1538 version "6.1.1"
1539 resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
@@ -1619,6 +1715,13 @@ cjs-module-lexer@^1.0.0:
1715 resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40"
1716 integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==
1717
1718 +cli-color@~0.1.6:
1719 + version "0.1.7"
1720 + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-0.1.7.tgz#adc3200fa471cc211b0da7f566b71e98b9d67347"
1721 + integrity sha512-xNaQxWYgI6DD4xIJLn8GY2zDZVbrN0vsU1fEbDNAHZRyceWhpj7A08mYcG1AY92q1Aw0geYkVfiAcEYIZtuTSg==
1722 + dependencies:
1723 + es5-ext "0.8.x"
1724 +
1725 cliui@^5.0.0:
1726 version "5.0.0"
1727 resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
@@ -1628,6 +1731,15 @@ cliui@^5.0.0:
1731 strip-ansi "^5.2.0"
1732 wrap-ansi "^5.1.0"
1733
1734 +cliui@^6.0.0:
1735 + version "6.0.0"
1736 + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
1737 + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
1738 + dependencies:
1739 + string-width "^4.2.0"
1740 + strip-ansi "^6.0.0"
1741 + wrap-ansi "^6.2.0"
1742 +
1743 cliui@^7.0.2:
1744 version "7.0.4"
1745 resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
@@ -1637,6 +1749,15 @@ cliui@^7.0.2:
1749 strip-ansi "^6.0.0"
1750 wrap-ansi "^7.0.0"
1751
1752 +clone-deep@^4.0.1:
1753 + version "4.0.1"
1754 + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
1755 + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
1756 + dependencies:
1757 + is-plain-object "^2.0.4"
1758 + kind-of "^6.0.2"
1759 + shallow-clone "^3.0.0"
1760 +
1761 co@^4.6.0:
1762 version "4.6.0"
1763 resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -1678,6 +1799,11 @@ combined-stream@^1.0.8:
1799 dependencies:
1800 delayed-stream "~1.0.0"
1801
1802 +commondir@^1.0.1:
1803 + version "1.0.1"
1804 + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
1805 + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
1806 +
1807 component-bind@1.0.0:
1808 version "1.0.0"
1809 resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
@@ -1859,6 +1985,13 @@ diff@^4.0.1:
1985 resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
1986 integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
1987
1988 +difflib@~0.2.1:
1989 + version "0.2.4"
1990 + resolved "https://registry.yarnpkg.com/difflib/-/difflib-0.2.4.tgz#b5e30361a6db023176d562892db85940a718f47e"
1991 + integrity sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==
1992 + dependencies:
1993 + heap ">= 0.2.0"
1994 +
1995 dir-glob@^3.0.1:
1996 version "3.0.1"
1997 resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
@@ -1885,6 +2018,13 @@ domexception@^4.0.0:
2018 dependencies:
2019 webidl-conversions "^7.0.0"
2020
2021 +dreamopt@~0.6.0:
2022 + version "0.6.0"
2023 + resolved "https://registry.yarnpkg.com/dreamopt/-/dreamopt-0.6.0.tgz#d813ccdac8d39d8ad526775514a13dda664d6b4b"
2024 + integrity sha512-KRJa47iBEK0y6ZtgCgy2ykuvMT8c9gj3ua9Dv7vCkclFJJeH2FjhGY2xO5qBoWGahsjCGMlk4Cq9wJYeWxuYhQ==
2025 + dependencies:
2026 + wordwrap ">=0.0.2"
2027 +
2028 electron-to-chromium@^1.4.251:
2029 version "1.4.260"
2030 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.260.tgz#9aa3348d037686b47ccc5d3b48fe417b1f20017a"
@@ -1964,6 +2104,11 @@ error-stack-parser@^1.3.3:
2104 dependencies:
2105 stackframe "^0.3.1"
2106
2107 +es5-ext@0.8.x:
2108 + version "0.8.2"
2109 + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.8.2.tgz#aba8d9e1943a895ac96837a62a39b3f55ecd94ab"
2110 + integrity sha512-H19ompyhnKiBdjHR1DPHvf5RHgHPmJaY9JNzFGbMbPgdsUkvnUCN1Ke8J4Y0IMyTwFM2M9l4h2GoHwzwpSmXbA==
2111 +
2112 escalade@^3.1.1:
2113 version "3.1.1"
2114 resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -2194,6 +2339,24 @@ fastq@^1.6.0:
2339 dependencies:
2340 reusify "^1.0.4"
2341
2342 +fb-babel-plugin-utils@^0.13.0:
2343 + version "0.13.1"
2344 + resolved "https://registry.yarnpkg.com/fb-babel-plugin-utils/-/fb-babel-plugin-utils-0.13.1.tgz#ff1d9466fc4875f8f71a1c6f6e83f558118b0d2e"
2345 + integrity sha512-AxAr7ut7v4fzHp5VETGxcDUPmRup5H7bkMNNfxaRunS3jzm2rOS5NLvCPCDnnQIiI6AB0x2GrOx/eIcAOVJAAA==
2346 + dependencies:
2347 + "@babel/core" "^7.0.0"
2348 + "@babel/generator" "^7.0.0"
2349 + "@babel/parser" "^7.7.4"
2350 + "@babel/plugin-syntax-class-properties" "^7.0.0"
2351 + "@babel/plugin-syntax-flow" "^7.7.4"
2352 + "@babel/plugin-syntax-jsx" "^7.0.0"
2353 + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
2354 + "@babel/plugin-syntax-numeric-separator" "^7.2.0"
2355 + "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
2356 + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
2357 + "@babel/plugin-syntax-optional-chaining" "^7.0.0"
2358 + json-diff "^0.5.4"
2359 +
2360 fb-watchman@^2.0.0:
2361 version "2.0.2"
2362 resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
@@ -2215,6 +2378,15 @@ fill-range@^7.0.1:
2378 dependencies:
2379 to-regex-range "^5.0.1"
2380
2381 +find-cache-dir@^2.0.0:
2382 + version "2.1.0"
2383 + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
2384 + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
2385 + dependencies:
2386 + commondir "^1.0.1"
2387 + make-dir "^2.0.0"
2388 + pkg-dir "^3.0.0"
2389 +
2390 find-up@^3.0.0:
2391 version "3.0.0"
2392 resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
@@ -2251,6 +2423,11 @@ flatted@^3.1.0:
2423 resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
2424 integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
2425
2426 +flow-enums-runtime@^0.0.4:
2427 + version "0.0.4"
2428 + resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.4.tgz#038635c679030d08d4c197db29a2fad62722072f"
2429 + integrity sha512-kkJ/ABZb4rhyFw05yCWdcA1K2uW7ddYzz9zVNJp5kRX3BzsIynB4f0E4oLlf+zgDLErj9FwGda1qEAmhnRNXPQ==
2430 +
2431 form-data@^4.0.0:
2432 version "4.0.0"
2433 resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
@@ -2405,6 +2582,11 @@ has@^1.0.3:
2582 dependencies:
2583 function-bind "^1.1.1"
2584
2585 +"heap@>= 0.2.0":
2586 + version "0.2.7"
2587 + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc"
2588 + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
2589 +
2590 html-encoding-sniffer@^3.0.0:
2591 version "3.0.0"
2592 resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
@@ -2551,6 +2733,13 @@ is-path-inside@^3.0.3:
2733 resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
2734 integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
2735
2736 +is-plain-object@^2.0.4:
2737 + version "2.0.4"
2738 + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
2739 + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
2740 + dependencies:
2741 + isobject "^3.0.1"
2742 +
2743 is-potential-custom-element-name@^1.0.1:
2744 version "1.0.1"
2745 resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
@@ -2581,6 +2770,11 @@ isexe@^2.0.0:
2770 resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
2771 integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
2772
2773 +isobject@^3.0.1:
2774 + version "3.0.1"
2775 + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
2776 + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
2777 +
2778 istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
2779 version "3.2.0"
2780 resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
@@ -2712,6 +2906,13 @@ jest-diff@^29.0.3:
2906 jest-get-type "^29.0.0"
2907 pretty-format "^29.0.3"
2908
2909 +jest-docblock@^26.0.0:
2910 + version "26.0.0"
2911 + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5"
2912 + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==
2913 + dependencies:
2914 + detect-newline "^3.0.0"
2915 +
2916 jest-docblock@^29.0.0:
2917 version "29.0.0"
2918 resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae"
@@ -3059,6 +3260,15 @@ jsesc@^2.5.1:
3260 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
3261 integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
3262
3263 +json-diff@^0.5.4:
3264 + version "0.5.5"
3265 + resolved "https://registry.yarnpkg.com/json-diff/-/json-diff-0.5.5.tgz#24658ad200dbdd64ae8a56baf4d87b2b33d7196e"
3266 + integrity sha512-B2RSfPv8Y5iqm6/9aKC3cOhXPzjYupKDpGuqT5py9NRulL8J0UoB/zKXUo70xBsuxPcIFgtsGgEdXLrNp0GL7w==
3267 + dependencies:
3268 + cli-color "~0.1.6"
3269 + difflib "~0.2.1"
3270 + dreamopt "~0.6.0"
3271 +
3272 json-parse-even-better-errors@^2.3.0:
3273 version "2.3.1"
3274 resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
@@ -3089,6 +3299,11 @@ jszip@^3.10.0:
3299 readable-stream "~2.3.6"
3300 setimmediate "^1.0.5"
3301
3302 +kind-of@^6.0.2:
3303 + version "6.0.3"
3304 + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
3305 + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
3306 +
3307 klaw@^2.1.0:
3308 version "2.1.1"
3309 resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.1.1.tgz#42b76894701169cc910fd0d19ce677b5fb378af1"
@@ -3190,6 +3405,14 @@ lz-string@^1.4.4:
3405 resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
3406 integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==
3407
3408 +make-dir@^2.0.0, make-dir@^2.1.0:
3409 + version "2.1.0"
3410 + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
3411 + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
3412 + dependencies:
3413 + pify "^4.0.1"
3414 + semver "^5.6.0"
3415 +
3416 make-dir@^3.0.0:
3417 version "3.1.0"
3418 resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@@ -3315,6 +3538,11 @@ npm-run-path@^4.0.1:
3538 dependencies:
3539 path-key "^3.0.0"
3540
3541 +nullthrows@^1.1.1:
3542 + version "1.1.1"
3543 + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
3544 + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
3545 +
3546 nwsapi@^2.2.0:
3547 version "2.2.2"
3548 resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
@@ -3497,11 +3725,23 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
3725 resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
3726 integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
3727
3500 -pirates@^4.0.4:
3728 +pify@^4.0.1:
3729 + version "4.0.1"
3730 + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
3731 + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
3732 +
3733 +pirates@^4.0.4, pirates@^4.0.5:
3734 version "4.0.5"
3735 resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
3736 integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
3737
3738 +pkg-dir@^3.0.0:
3739 + version "3.0.0"
3740 + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
3741 + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
3742 + dependencies:
3743 + find-up "^3.0.0"
3744 +
3745 pkg-dir@^4.2.0:
3746 version "4.2.0"
3747 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
@@ -3772,7 +4012,7 @@ semver@7.x, semver@^7.3.5:
4012 dependencies:
4013 lru-cache "^6.0.0"
4014
3775 -semver@^5.4.1:
4015 +semver@^5.4.1, semver@^5.6.0:
4016 version "5.7.1"
4017 resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
4018 integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -3804,6 +4044,13 @@ setimmediate@^1.0.5:
4044 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
4045 integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
4046
4047 +shallow-clone@^3.0.0:
4048 + version "3.0.1"
4049 + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
4050 + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
4051 + dependencies:
4052 + kind-of "^6.0.2"
4053 +
4054 shebang-command@^2.0.0:
4055 version "2.0.0"
4056 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -3896,6 +4143,14 @@ source-map-support@0.5.13:
4143 buffer-from "^1.0.0"
4144 source-map "^0.6.0"
4145
4146 +source-map-support@^0.5.16:
4147 + version "0.5.21"
4148 + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
4149 + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
4150 + dependencies:
4151 + buffer-from "^1.0.0"
4152 + source-map "^0.6.0"
4153 +
4154 source-map@^0.5.0:
4155 version "0.5.7"
4156 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@@ -4334,6 +4589,11 @@ word-wrap@^1.2.3, word-wrap@~1.2.3:
4589 resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
4590 integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
4591
4592 +wordwrap@>=0.0.2:
4593 + version "1.0.0"
4594 + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
4595 + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
4596 +
4597 wrap-ansi@^5.1.0:
4598 version "5.1.0"
4599 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
@@ -4343,6 +4603,15 @@ wrap-ansi@^5.1.0:
4603 string-width "^3.0.0"
4604 strip-ansi "^5.0.0"
4605
4606 +wrap-ansi@^6.2.0:
4607 + version "6.2.0"
4608 + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
4609 + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
4610 + dependencies:
4611 + ansi-styles "^4.0.0"
4612 + string-width "^4.1.0"
4613 + strip-ansi "^6.0.0"
4614 +
4615 wrap-ansi@^7.0.0:
4616 version "7.0.0"
4617 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -4418,6 +4687,14 @@ yargs-parser@^13.1.2:
4687 camelcase "^5.0.0"
4688 decamelize "^1.2.0"
4689
4690 +yargs-parser@^18.1.2:
4691 + version "18.1.3"
4692 + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
4693 + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
4694 + dependencies:
4695 + camelcase "^5.0.0"
4696 + decamelize "^1.2.0"
4697 +
4698 yargs-parser@^21.0.0, yargs-parser@^21.0.1:
4699 version "21.1.1"
4700 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
@@ -4452,6 +4729,23 @@ yargs@^13.2.2:
4729 y18n "^4.0.0"
4730 yargs-parser "^13.1.2"
4731
4732 +yargs@^15.3.1:
4733 + version "15.4.1"
4734 + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
4735 + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
4736 + dependencies:
4737 + cliui "^6.0.0"
4738 + decamelize "^1.2.0"
4739 + find-up "^4.1.0"
4740 + get-caller-file "^2.0.1"
4741 + require-directory "^2.1.1"
4742 + require-main-filename "^2.0.0"
4743 + set-blocking "^2.0.0"
4744 + string-width "^4.2.0"
4745 + which-module "^2.0.0"
4746 + y18n "^4.0.0"
4747 + yargs-parser "^18.1.2"
4748 +
4749 yeast@0.1.2:
4750 version "0.1.2"
4751 resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"