diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 000000000..31354ec13 --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..f3a679604 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +yarn pretty-quick --staged diff --git a/.pnp.js b/.pnp.js index 7688c49db..40aa8fd32 100755 --- a/.pnp.js +++ b/.pnp.js @@ -2,41874 +2,60581 @@ /* eslint-disable */ try { - Object.freeze({}).detectStrictMode = true; + Object.freeze({}).detectStrictMode = true } catch (error) { - throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`); + throw new Error( + `The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.` + ) } -var __non_webpack_module__ = module; +var __non_webpack_module__ = module function $$SETUP_STATE(hydrateRuntimeState, basePath) { - return hydrateRuntimeState({ - "__info": [ - "This file is automatically generated. Do not touch it, or risk", - "your modifications being lost. We also recommend you not to read", - "it either without using the @yarnpkg/pnp package, as the data layout", - "is entirely unspecified and WILL change from a version to another." - ], - "dependencyTreeRoots": [ - { - "name": "sc", - "reference": "workspace:." - }, - { - "name": "demo", - "reference": "workspace:apps/demo" - }, - { - "name": "test", - "reference": "workspace:apps/test" - }, - { - "name": "tina-cloud-starter", - "reference": "workspace:apps/tina-cloud-starter" - }, - { - "name": "tina-graphql", - "reference": "workspace:packages/tina-graphql" - }, - { - "name": "tina-graphql-gateway", - "reference": "workspace:packages/tina-graphql-gateway" - }, - { - "name": "tina-graphql-gateway-cli", - "reference": "workspace:packages/tina-graphql-gateway-cli" - }, - { - "name": "tina-graphql-helpers", - "reference": "workspace:packages/tina-graphql-helpers" - } - ], - "enableTopLevelFallback": true, - "ignorePatternData": "(^(?:\\.yarn\\/sdks(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)|$))$)", - "fallbackExclusionList": [ - ["demo", ["workspace:apps/demo"]], - ["sc", ["workspace:."]], - ["test", ["workspace:apps/test"]], - ["tina-cloud-starter", ["workspace:apps/tina-cloud-starter"]], - ["tina-graphql", ["workspace:packages/tina-graphql"]], - ["tina-graphql-gateway", ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway", "workspace:packages/tina-graphql-gateway"]], - ["tina-graphql-gateway-cli", ["workspace:packages/tina-graphql-gateway-cli"]], - ["tina-graphql-helpers", ["workspace:packages/tina-graphql-helpers"]] - ], - "fallbackPool": [ - ], - "locationBlacklistData": [ - ], - "packageRegistryData": [ - [null, [ - [null, { - "packageLocation": "./", - "packageDependencies": [ - ["@yarnpkg/pnpify", "virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0"], - ["danger", "npm:10.6.0"], - ["eslint", "npm:6.8.0"], - ["prettier", "npm:2.0.5"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["workspace", "npm:0.0.1-preview.1"] - ], - "linkType": "SOFT", - }] - ]], - ["@ampproject/toolbox-core", [ - ["npm:2.5.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-core-npm-2.5.4-e058ab53be-9ebd64948d.zip/node_modules/@ampproject/toolbox-core/", - "packageDependencies": [ - ["@ampproject/toolbox-core", "npm:2.5.4"], - ["cross-fetch", "npm:3.0.5"], - ["lru-cache", "npm:5.1.1"] - ], - "linkType": "HARD", - }], - ["npm:2.7.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-core-npm-2.7.4-33dbe17e28-0d215bbbcf.zip/node_modules/@ampproject/toolbox-core/", - "packageDependencies": [ - ["@ampproject/toolbox-core", "npm:2.7.4"], - ["cross-fetch", "npm:3.0.6"], - ["lru-cache", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@ampproject/toolbox-optimizer", [ - ["npm:2.3.1", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-optimizer-npm-2.3.1-8885a83c55-5ccf6590fd.zip/node_modules/@ampproject/toolbox-optimizer/", - "packageDependencies": [ - ["@ampproject/toolbox-optimizer", "npm:2.3.1"] - ], - "linkType": "SOFT", - }], - ["npm:2.5.14", { - "packageLocation": "./.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-70264be78b/node_modules/@ampproject/toolbox-optimizer/", - "packageDependencies": [ - ["@ampproject/toolbox-optimizer", "npm:2.5.14"] - ], - "linkType": "SOFT", - }], - ["npm:2.7.1-alpha.0", { - "packageLocation": "./.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-7cfff4ce70/node_modules/@ampproject/toolbox-optimizer/", - "packageDependencies": [ - ["@ampproject/toolbox-optimizer", "npm:2.7.1-alpha.0"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:2.7.1-alpha.0", { - "packageLocation": "./.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-7cfff4ce70/node_modules/@ampproject/toolbox-optimizer/", - "packageDependencies": [ - ["@ampproject/toolbox-optimizer", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:2.7.1-alpha.0"], - ["@ampproject/toolbox-core", "npm:2.7.4"], - ["@ampproject/toolbox-runtime-version", "npm:2.7.4"], - ["@ampproject/toolbox-script-csp", "npm:2.5.4"], - ["@ampproject/toolbox-validator-rules", "npm:2.7.4"], - ["abort-controller", "npm:3.0.0"], - ["cross-fetch", "npm:3.0.6"], - ["cssnano-simple", "npm:1.2.1"], - ["dom-serializer", "npm:1.1.0"], - ["domhandler", "npm:3.3.0"], - ["domutils", "npm:2.4.2"], - ["htmlparser2", "npm:5.0.1"], - ["https-proxy-agent", "npm:5.0.0"], - ["jimp", null], - ["lru-cache", "npm:6.0.0"], - ["node-fetch", "npm:2.6.1"], - ["normalize-html-whitespace", "npm:1.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-safe-parser", "npm:4.0.2"], - ["probe-image-size", null], - ["terser", "npm:5.5.1"] - ], - "packagePeers": [ - "jimp", - "probe-image-size" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:2.5.14", { - "packageLocation": "./.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-70264be78b/node_modules/@ampproject/toolbox-optimizer/", - "packageDependencies": [ - ["@ampproject/toolbox-optimizer", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:2.5.14"], - ["@ampproject/toolbox-core", "npm:2.5.4"], - ["@ampproject/toolbox-runtime-version", "npm:2.5.4"], - ["@ampproject/toolbox-script-csp", "npm:2.5.4"], - ["@ampproject/toolbox-validator-rules", "npm:2.5.4"], - ["@types/jimp", null], - ["@types/probe-image-size", null], - ["abort-controller", "npm:3.0.0"], - ["cross-fetch", "npm:3.0.5"], - ["cssnano", "npm:4.1.10"], - ["dom-serializer", "npm:1.0.1"], - ["domhandler", "npm:3.0.0"], - ["domutils", "npm:2.1.0"], - ["htmlparser2", "npm:4.1.0"], - ["jimp", null], - ["lru-cache", "npm:5.1.1"], - ["node-fetch", "npm:2.6.0"], - ["normalize-html-whitespace", "npm:1.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-safe-parser", "npm:4.0.2"], - ["probe-image-size", null], - ["terser", "npm:4.8.0"] - ], - "packagePeers": [ - "@types/jimp", - "@types/probe-image-size", - "jimp", - "probe-image-size" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:2.3.1", { - "packageLocation": "./.yarn/$$virtual/@ampproject-toolbox-optimizer-virtual-5eacb22364/0/cache/@ampproject-toolbox-optimizer-npm-2.3.1-8885a83c55-5ccf6590fd.zip/node_modules/@ampproject/toolbox-optimizer/", - "packageDependencies": [ - ["@ampproject/toolbox-optimizer", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:2.3.1"], - ["@ampproject/toolbox-core", "npm:2.5.4"], - ["@ampproject/toolbox-runtime-version", "npm:2.5.4"], - ["@ampproject/toolbox-script-csp", "npm:2.5.4"], - ["@ampproject/toolbox-validator-rules", "npm:2.5.4"], - ["@types/jimp", null], - ["@types/lru-cache", null], - ["@types/probe-image-size", null], - ["cssnano", "npm:4.1.10"], - ["domhandler", "npm:3.0.0"], - ["domutils", "npm:2.0.0"], - ["htmlparser2", "npm:4.1.0"], - ["jimp", null], - ["lru-cache", null], - ["normalize-html-whitespace", "npm:1.0.0"], - ["postcss-safe-parser", "npm:4.0.2"], - ["probe-image-size", null], - ["terser", "npm:4.6.13"] - ], - "packagePeers": [ - "@types/jimp", - "@types/lru-cache", - "@types/probe-image-size", - "jimp", - "lru-cache", - "probe-image-size" - ], - "linkType": "HARD", - }] - ]], - ["@ampproject/toolbox-runtime-version", [ - ["npm:2.5.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-runtime-version-npm-2.5.4-40c639fdac-0a773fdce7.zip/node_modules/@ampproject/toolbox-runtime-version/", - "packageDependencies": [ - ["@ampproject/toolbox-runtime-version", "npm:2.5.4"], - ["@ampproject/toolbox-core", "npm:2.5.4"] - ], - "linkType": "HARD", - }], - ["npm:2.7.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-runtime-version-npm-2.7.4-8a83b0aef9-e07513cc6d.zip/node_modules/@ampproject/toolbox-runtime-version/", - "packageDependencies": [ - ["@ampproject/toolbox-runtime-version", "npm:2.7.4"], - ["@ampproject/toolbox-core", "npm:2.7.4"] - ], - "linkType": "HARD", - }] - ]], - ["@ampproject/toolbox-script-csp", [ - ["npm:2.5.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-script-csp-npm-2.5.4-199ba98988-fcafb38682.zip/node_modules/@ampproject/toolbox-script-csp/", - "packageDependencies": [ - ["@ampproject/toolbox-script-csp", "npm:2.5.4"] - ], - "linkType": "HARD", - }] - ]], - ["@ampproject/toolbox-validator-rules", [ - ["npm:2.5.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-validator-rules-npm-2.5.4-2554e7119a-41e81a02d6.zip/node_modules/@ampproject/toolbox-validator-rules/", - "packageDependencies": [ - ["@ampproject/toolbox-validator-rules", "npm:2.5.4"], - ["cross-fetch", "npm:3.0.5"] - ], - "linkType": "HARD", - }], - ["npm:2.7.4", { - "packageLocation": "./.yarn/cache/@ampproject-toolbox-validator-rules-npm-2.7.4-a7dd063ec2-53c7765b3b.zip/node_modules/@ampproject/toolbox-validator-rules/", - "packageDependencies": [ - ["@ampproject/toolbox-validator-rules", "npm:2.7.4"], - ["cross-fetch", "npm:3.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["@apollo/client", [ - ["npm:3.1.4", { - "packageLocation": "./.yarn/cache/@apollo-client-npm-3.1.4-d9c79daea6-2d28f17f33.zip/node_modules/@apollo/client/", - "packageDependencies": [ - ["@apollo/client", "npm:3.1.4"] - ], - "linkType": "SOFT", - }], - ["virtual:b9b0e1dd832f3eefdbdae1b04f9c91400316688efbe29541e6d687eb030bcce67b26083f769282e2f54c6b6ad7b02a34d34e6a5ae386ad9d99aef1f7f903bc24#npm:3.1.4", { - "packageLocation": "./.yarn/$$virtual/@apollo-client-virtual-cf6957b3f4/0/cache/@apollo-client-npm-3.1.4-d9c79daea6-2d28f17f33.zip/node_modules/@apollo/client/", - "packageDependencies": [ - ["@apollo/client", "virtual:b9b0e1dd832f3eefdbdae1b04f9c91400316688efbe29541e6d687eb030bcce67b26083f769282e2f54c6b6ad7b02a34d34e6a5ae386ad9d99aef1f7f903bc24#npm:3.1.4"], - ["@types/graphql", null], - ["@types/react", null], - ["@types/subscriptions-transport-ws", null], - ["@types/zen-observable", "npm:0.8.1"], - ["@wry/context", "npm:0.5.2"], - ["@wry/equality", "npm:0.2.0"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["hoist-non-react-statics", "npm:3.3.2"], - ["optimism", "npm:0.12.1"], - ["prop-types", "npm:15.7.2"], - ["react", null], - ["subscriptions-transport-ws", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18"], - ["symbol-observable", "npm:1.2.0"], - ["terser", "npm:5.3.0"], - ["ts-invariant", "npm:0.4.4"], - ["tslib", "npm:1.13.0"], - ["zen-observable", "npm:0.8.15"] - ], - "packagePeers": [ - "@types/graphql", - "@types/react", - "@types/subscriptions-transport-ws", - "graphql", - "react", - "subscriptions-transport-ws" - ], - "linkType": "HARD", - }] - ]], - ["@arcanis/slice-ansi", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/@arcanis-slice-ansi-npm-1.0.2-f258a50730-1b45393630.zip/node_modules/@arcanis/slice-ansi/", - "packageDependencies": [ - ["@arcanis/slice-ansi", "npm:1.0.2"], - ["grapheme-splitter", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["@ardatan/aggregate-error", [ - ["npm:0.0.1", { - "packageLocation": "./.yarn/cache/@ardatan-aggregate-error-npm-0.0.1-221ba0bbbd-bb98b317db.zip/node_modules/@ardatan/aggregate-error/", - "packageDependencies": [ - ["@ardatan/aggregate-error", "npm:0.0.1"] - ], - "linkType": "HARD", - }], - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/@ardatan-aggregate-error-npm-0.0.6-0f1d22ed0c-c11138d0cb.zip/node_modules/@ardatan/aggregate-error/", - "packageDependencies": [ - ["@ardatan/aggregate-error", "npm:0.0.6"], - ["tslib", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/code-frame", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.10.4-ab1ee3c93e-05245d3b22.zip/node_modules/@babel/code-frame/", - "packageDependencies": [ - ["@babel/code-frame", "npm:7.10.4"], - ["@babel/highlight", "npm:7.10.4"] - ], - "linkType": "HARD", - }], - ["npm:7.12.11", { - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.12.11-1a9a1b277f-033d3fb3bf.zip/node_modules/@babel/code-frame/", - "packageDependencies": [ - ["@babel/code-frame", "npm:7.12.11"], - ["@babel/highlight", "npm:7.10.4"] - ], - "linkType": "HARD", - }], - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-code-frame-npm-7.8.3-ea28dc5d9b-0552a3e366.zip/node_modules/@babel/code-frame/", - "packageDependencies": [ - ["@babel/code-frame", "npm:7.8.3"], - ["@babel/highlight", "npm:7.10.4"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/compat-data", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-compat-data-npm-7.10.5-6035215b0e-788af12585.zip/node_modules/@babel/compat-data/", - "packageDependencies": [ - ["@babel/compat-data", "npm:7.10.5"], - ["browserslist", "npm:4.13.0"], - ["invariant", "npm:2.2.4"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/core", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-core-npm-7.10.5-3a200310d8-1b7ddcb578.zip/node_modules/@babel/core/", - "packageDependencies": [ - ["@babel/core", "npm:7.10.5"], - ["@babel/code-frame", "npm:7.10.4"], - ["@babel/generator", "npm:7.10.5"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helpers", "npm:7.10.4"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/template", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["convert-source-map", "npm:1.7.0"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["gensync", "npm:1.0.0-beta.1"], - ["json5", "npm:2.1.3"], - ["lodash", "npm:4.17.19"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"], - ["semver", "npm:5.7.1"], - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }], - ["npm:7.7.7", { - "packageLocation": "./.yarn/cache/@babel-core-npm-7.7.7-b84b7d303c-fdd52c4cda.zip/node_modules/@babel/core/", - "packageDependencies": [ - ["@babel/core", "npm:7.7.7"], - ["@babel/code-frame", "npm:7.10.4"], - ["@babel/generator", "npm:7.10.5"], - ["@babel/helpers", "npm:7.10.4"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/template", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["convert-source-map", "npm:1.7.0"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["json5", "npm:2.1.3"], - ["lodash", "npm:4.17.19"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"], - ["semver", "npm:5.7.1"], - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/generator", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-generator-npm-7.10.5-f5ec869d37-6e3fd80652.zip/node_modules/@babel/generator/", - "packageDependencies": [ - ["@babel/generator", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["jsesc", "npm:2.5.2"], - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }], - ["npm:7.11.6", { - "packageLocation": "./.yarn/cache/@babel-generator-npm-7.11.6-54b7afa079-734bd60e01.zip/node_modules/@babel/generator/", - "packageDependencies": [ - ["@babel/generator", "npm:7.11.6"], - ["@babel/types", "npm:7.11.5"], - ["jsesc", "npm:2.5.2"], - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-annotate-as-pure", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-annotate-as-pure-npm-7.10.4-61cb45f47d-535cdf631e.zip/node_modules/@babel/helper-annotate-as-pure/", - "packageDependencies": [ - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-builder-binary-assignment-operator-visitor", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.10.4-84f16304b7-369530a197.zip/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/", - "packageDependencies": [ - ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4"], - ["@babel/helper-explode-assignable-expression", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-builder-react-jsx", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-builder-react-jsx-npm-7.10.4-ea8d3e69ef-f14f786b5e.zip/node_modules/@babel/helper-builder-react-jsx/", - "packageDependencies": [ - ["@babel/helper-builder-react-jsx", "npm:7.10.4"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-builder-react-jsx-experimental", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-helper-builder-react-jsx-experimental-npm-7.10.5-a2db210bb1-9505bc9d36.zip/node_modules/@babel/helper-builder-react-jsx-experimental/", - "packageDependencies": [ - ["@babel/helper-builder-react-jsx-experimental", "npm:7.10.5"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-compilation-targets", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-compilation-targets-npm-7.10.4-26147fe36f-7603388e45.zip/node_modules/@babel/helper-compilation-targets/", - "packageDependencies": [ - ["@babel/helper-compilation-targets", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-compilation-targets-virtual-c45a1d9463/0/cache/@babel-helper-compilation-targets-npm-7.10.4-26147fe36f-7603388e45.zip/node_modules/@babel/helper-compilation-targets/", - "packageDependencies": [ - ["@babel/helper-compilation-targets", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/compat-data", "npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@types/babel__core", null], - ["browserslist", "npm:4.13.0"], - ["invariant", "npm:2.2.4"], - ["levenary", "npm:1.1.1"], - ["semver", "npm:5.7.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-create-class-features-plugin", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-d617be0e4a-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-8ca74c743b/0/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-d617be0e4a-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-member-expression-to-functions", "npm:7.10.5"], - ["@babel/helper-optimise-call-expression", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8b6041c120a4d18b9efd12486ec841c4d372a14a6fb2d9f8f9a5011f36dc785f0896498682346d0f225f61f420a2cf75d9594fbcf5b10318a5afe27ea598c925#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-de20916dce/0/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-d617be0e4a-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-class-features-plugin", "virtual:8b6041c120a4d18b9efd12486ec841c4d372a14a6fb2d9f8f9a5011f36dc785f0896498682346d0f225f61f420a2cf75d9594fbcf5b10318a5afe27ea598c925#npm:7.10.5"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-member-expression-to-functions", "npm:7.10.5"], - ["@babel/helper-optimise-call-expression", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-create-regexp-features-plugin", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-5d1b7c5ca4-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-f5feeb1521/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-5d1b7c5ca4-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/", - "packageDependencies": [ - ["@babel/helper-create-regexp-features-plugin", "virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-regex", "npm:7.10.5"], - ["@types/babel__core", null], - ["regexpu-core", "npm:4.7.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-define-map", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-helper-define-map-npm-7.10.5-a39821074e-964cab640d.zip/node_modules/@babel/helper-define-map/", - "packageDependencies": [ - ["@babel/helper-define-map", "npm:7.10.5"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-explode-assignable-expression", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.10.4-50e5a819c3-3348549a83.zip/node_modules/@babel/helper-explode-assignable-expression/", - "packageDependencies": [ - ["@babel/helper-explode-assignable-expression", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-function-name", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-function-name-npm-7.10.4-153d80f559-41ab8f48bb.zip/node_modules/@babel/helper-function-name/", - "packageDependencies": [ - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-get-function-arity", "npm:7.10.4"], - ["@babel/template", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-get-function-arity", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-get-function-arity-npm-7.10.4-29a99c32bb-4f0ddd4340.zip/node_modules/@babel/helper-get-function-arity/", - "packageDependencies": [ - ["@babel/helper-get-function-arity", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-hoist-variables", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-hoist-variables-npm-7.10.4-ba6140a324-0bc1976366.zip/node_modules/@babel/helper-hoist-variables/", - "packageDependencies": [ - ["@babel/helper-hoist-variables", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-member-expression-to-functions", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.10.5-328cc5931f-f239d2dfdb.zip/node_modules/@babel/helper-member-expression-to-functions/", - "packageDependencies": [ - ["@babel/helper-member-expression-to-functions", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-module-imports", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-module-imports-npm-7.10.4-f55d85af2c-84d03b58e7.zip/node_modules/@babel/helper-module-imports/", - "packageDependencies": [ - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-module-transforms", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-helper-module-transforms-npm-7.10.5-39c6d857ed-02a2b60705.zip/node_modules/@babel/helper-module-transforms/", - "packageDependencies": [ - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@babel/helper-simple-access", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@babel/template", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-optimise-call-expression", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-optimise-call-expression-npm-7.10.4-135301e242-70dd5a6daf.zip/node_modules/@babel/helper-optimise-call-expression/", - "packageDependencies": [ - ["@babel/helper-optimise-call-expression", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-plugin-utils", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-plugin-utils-npm-7.10.4-af87df4f11-9f617e619a.zip/node_modules/@babel/helper-plugin-utils/", - "packageDependencies": [ - ["@babel/helper-plugin-utils", "npm:7.10.4"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-regex", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-helper-regex-npm-7.10.5-2157cc850a-956b9f22da.zip/node_modules/@babel/helper-regex/", - "packageDependencies": [ - ["@babel/helper-regex", "npm:7.10.5"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-remap-async-to-generator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.10.4-1bf07cfa56-258395dbab.zip/node_modules/@babel/helper-remap-async-to-generator/", - "packageDependencies": [ - ["@babel/helper-remap-async-to-generator", "npm:7.10.4"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-wrap-function", "npm:7.10.4"], - ["@babel/template", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-replace-supers", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-replace-supers-npm-7.10.4-8bf69fb844-2d7e0627cd.zip/node_modules/@babel/helper-replace-supers/", - "packageDependencies": [ - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@babel/helper-member-expression-to-functions", "npm:7.10.5"], - ["@babel/helper-optimise-call-expression", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-simple-access", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-simple-access-npm-7.10.4-0a4bf355e6-a7ce52a229.zip/node_modules/@babel/helper-simple-access/", - "packageDependencies": [ - ["@babel/helper-simple-access", "npm:7.10.4"], - ["@babel/template", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-split-export-declaration", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.10.4-834d026d0a-d8536faa40.zip/node_modules/@babel/helper-split-export-declaration/", - "packageDependencies": [ - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }], - ["npm:7.11.0", { - "packageLocation": "./.yarn/cache/@babel-helper-split-export-declaration-npm-7.11.0-d39c69702f-ddfc44d0cf.zip/node_modules/@babel/helper-split-export-declaration/", - "packageDependencies": [ - ["@babel/helper-split-export-declaration", "npm:7.11.0"], - ["@babel/types", "npm:7.11.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-validator-identifier", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.10.4-0689d787fa-25098ef842.zip/node_modules/@babel/helper-validator-identifier/", - "packageDependencies": [ - ["@babel/helper-validator-identifier", "npm:7.10.4"] - ], - "linkType": "HARD", - }], - ["npm:7.12.11", { - "packageLocation": "./.yarn/cache/@babel-helper-validator-identifier-npm-7.12.11-e33455648e-18de432203.zip/node_modules/@babel/helper-validator-identifier/", - "packageDependencies": [ - ["@babel/helper-validator-identifier", "npm:7.12.11"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helper-wrap-function", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helper-wrap-function-npm-7.10.4-03676069ea-4d5fe2db33.zip/node_modules/@babel/helper-wrap-function/", - "packageDependencies": [ - ["@babel/helper-wrap-function", "npm:7.10.4"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/template", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/helpers", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-helpers-npm-7.10.4-5e11989f8d-96859c490a.zip/node_modules/@babel/helpers/", - "packageDependencies": [ - ["@babel/helpers", "npm:7.10.4"], - ["@babel/template", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/highlight", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-highlight-npm-7.10.4-c7ff18fbba-c167b938af.zip/node_modules/@babel/highlight/", - "packageDependencies": [ - ["@babel/highlight", "npm:7.10.4"], - ["@babel/helper-validator-identifier", "npm:7.10.4"], - ["chalk", "npm:2.4.2"], - ["js-tokens", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/parser", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-parser-npm-7.10.5-eebd996481-c7b4d7183f.zip/node_modules/@babel/parser/", - "packageDependencies": [ - ["@babel/parser", "npm:7.10.5"], - ["@babel/types", "npm:7.13.0"] - ], - "linkType": "HARD", - }], - ["npm:7.11.5", { - "packageLocation": "./.yarn/cache/@babel-parser-npm-7.11.5-7dfe3dc547-ef2874e4d2.zip/node_modules/@babel/parser/", - "packageDependencies": [ - ["@babel/parser", "npm:7.11.5"], - ["@babel/types", "npm:7.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-async-generator-functions", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.10.5-fa0418ca83-d43c72c330.zip/node_modules/@babel/plugin-proposal-async-generator-functions/", - "packageDependencies": [ - ["@babel/plugin-proposal-async-generator-functions", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-948461163a/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.10.5-fa0418ca83-d43c72c330.zip/node_modules/@babel/plugin-proposal-async-generator-functions/", - "packageDependencies": [ - ["@babel/plugin-proposal-async-generator-functions", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-remap-async-to-generator", "npm:7.10.4"], - ["@babel/plugin-syntax-async-generators", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-class-properties", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.10.4-03607813f3-32cf34c077.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.8.3-7c6b03c6f9-09072d267c.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-8b6041c120/0/cache/@babel-plugin-proposal-class-properties-npm-7.10.4-03607813f3-32cf34c077.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-create-class-features-plugin", "virtual:8b6041c120a4d18b9efd12486ec841c4d372a14a6fb2d9f8f9a5011f36dc785f0896498682346d0f225f61f420a2cf75d9594fbcf5b10318a5afe27ea598c925#npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-22fc93b2d7/0/cache/@babel-plugin-proposal-class-properties-npm-7.8.3-7c6b03c6f9-09072d267c.zip/node_modules/@babel/plugin-proposal-class-properties/", - "packageDependencies": [ - ["@babel/plugin-proposal-class-properties", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-create-class-features-plugin", "virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-dynamic-import", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.10.4-62a4ddfd86-0ded8305a7.zip/node_modules/@babel/plugin-proposal-dynamic-import/", - "packageDependencies": [ - ["@babel/plugin-proposal-dynamic-import", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-f7fb9627bd/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.10.4-62a4ddfd86-0ded8305a7.zip/node_modules/@babel/plugin-proposal-dynamic-import/", - "packageDependencies": [ - ["@babel/plugin-proposal-dynamic-import", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-dynamic-import", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-json-strings", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.10.4-5f32c74b60-3403971661.zip/node_modules/@babel/plugin-proposal-json-strings/", - "packageDependencies": [ - ["@babel/plugin-proposal-json-strings", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-018d4dc48c/0/cache/@babel-plugin-proposal-json-strings-npm-7.10.4-5f32c74b60-3403971661.zip/node_modules/@babel/plugin-proposal-json-strings/", - "packageDependencies": [ - ["@babel/plugin-proposal-json-strings", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-json-strings", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-nullish-coalescing-operator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.10.4-dd7a5fdb9c-5a20d8bcbf.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.8.3-05e97adf4e-99b6683ae8.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-463f98e5ea/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.8.3-05e97adf4e-99b6683ae8.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-dc1680fd23/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.10.4-dd7a5fdb9c-5a20d8bcbf.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-numeric-separator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.10.4-189a95ec65-344eff491f.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.8.3-b387b9f57a-8ab823d0d2.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-9db32571dd/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.8.3-b387b9f57a-8ab823d0d2.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-numeric-separator", "virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-d927fb7f92/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.10.4-189a95ec65-344eff491f.zip/node_modules/@babel/plugin-proposal-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-proposal-numeric-separator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-numeric-separator", "virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-object-rest-spread", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-63e3d3a7ed-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:7.9.6", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.9.6-0681350295-7e5b19c487.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "npm:7.9.6"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-f211864864/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-63e3d3a7ed-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3"], - ["@babel/plugin-transform-parameters", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-66bf226e28/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.9.6-0681350295-7e5b19c487.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3"], - ["@babel/plugin-transform-parameters", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-af88de6e6f/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-63e3d3a7ed-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-proposal-object-rest-spread", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3"], - ["@babel/plugin-transform-parameters", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-optional-catch-binding", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.10.4-d1e446a91c-56a3a62131.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-catch-binding", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-f9c66a5760/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.10.4-d1e446a91c-56a3a62131.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-catch-binding", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-optional-chaining", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.10.4-9193130861-b086076509.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:7.9.0", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.9.0-476c4e3f29-88c2000597.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "npm:7.9.0"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-b940925a19/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.9.0-476c4e3f29-88c2000597.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-optional-chaining", "virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-0e07cd8f89/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.10.4-9193130861-b086076509.zip/node_modules/@babel/plugin-proposal-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-proposal-optional-chaining", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-optional-chaining", "virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-proposal-unicode-property-regex", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-901dc02c10-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/", - "packageDependencies": [ - ["@babel/plugin-proposal-unicode-property-regex", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-bc23502dda/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-901dc02c10-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/", - "packageDependencies": [ - ["@babel/plugin-proposal-unicode-property-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-create-regexp-features-plugin", "virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-async-generators", [ - ["npm:7.8.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/", - "packageDependencies": [ - ["@babel/plugin-syntax-async-generators", "npm:7.8.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-85fb66da86/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/", - "packageDependencies": [ - ["@babel/plugin-syntax-async-generators", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-0753ecd339/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/", - "packageDependencies": [ - ["@babel/plugin-syntax-async-generators", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-bigint", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-8c9b610377.zip/node_modules/@babel/plugin-syntax-bigint/", - "packageDependencies": [ - ["@babel/plugin-syntax-bigint", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-bigint-virtual-79c9354118/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-8c9b610377.zip/node_modules/@babel/plugin-syntax-bigint/", - "packageDependencies": [ - ["@babel/plugin-syntax-bigint", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-bigint-virtual-f07557aafe/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-8c9b610377.zip/node_modules/@babel/plugin-syntax-bigint/", - "packageDependencies": [ - ["@babel/plugin-syntax-bigint", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-class-properties", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-cb3da4e874-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-properties", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-4b811ef255/0/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-cb3da4e874-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-21f9e89d7c/0/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-cb3da4e874-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/", - "packageDependencies": [ - ["@babel/plugin-syntax-class-properties", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-dynamic-import", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/", - "packageDependencies": [ - ["@babel/plugin-syntax-dynamic-import", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-e69932ef01/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/", - "packageDependencies": [ - ["@babel/plugin-syntax-dynamic-import", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-flow", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-flow-npm-7.10.4-2649765dd3-96d32d0411.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-flow-virtual-633f258b7d/0/cache/@babel-plugin-syntax-flow-npm-7.10.4-2649765dd3-96d32d0411.zip/node_modules/@babel/plugin-syntax-flow/", - "packageDependencies": [ - ["@babel/plugin-syntax-flow", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-import-meta", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-685ee8f0b5.zip/node_modules/@babel/plugin-syntax-import-meta/", - "packageDependencies": [ - ["@babel/plugin-syntax-import-meta", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-import-meta-virtual-0fd4a25f2e/0/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-685ee8f0b5.zip/node_modules/@babel/plugin-syntax-import-meta/", - "packageDependencies": [ - ["@babel/plugin-syntax-import-meta", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-json-strings", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/", - "packageDependencies": [ - ["@babel/plugin-syntax-json-strings", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-5e99d738e2/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/", - "packageDependencies": [ - ["@babel/plugin-syntax-json-strings", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-9841c618fc/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/", - "packageDependencies": [ - ["@babel/plugin-syntax-json-strings", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-jsx", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-jsx-npm-7.10.4-87f1f900f7-7c9a5c56e5.zip/node_modules/@babel/plugin-syntax-jsx/", - "packageDependencies": [ - ["@babel/plugin-syntax-jsx", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-20675feb5f/0/cache/@babel-plugin-syntax-jsx-npm-7.10.4-87f1f900f7-7c9a5c56e5.zip/node_modules/@babel/plugin-syntax-jsx/", - "packageDependencies": [ - ["@babel/plugin-syntax-jsx", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-f2b53c6cb7/0/cache/@babel-plugin-syntax-jsx-npm-7.10.4-87f1f900f7-7c9a5c56e5.zip/node_modules/@babel/plugin-syntax-jsx/", - "packageDependencies": [ - ["@babel/plugin-syntax-jsx", "virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-logical-assignment-operators", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-5b82f71770.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/", - "packageDependencies": [ - ["@babel/plugin-syntax-logical-assignment-operators", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-fe0344a796/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-5b82f71770.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/", - "packageDependencies": [ - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-nullish-coalescing-operator", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-syntax-nullish-coalescing-operator", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-b85b963cc7/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-1e9447b71a/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/", - "packageDependencies": [ - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-numeric-separator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-syntax-numeric-separator", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-b2468d3707/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-syntax-numeric-separator", "virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-937d25bb23/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/", - "packageDependencies": [ - ["@babel/plugin-syntax-numeric-separator", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-object-rest-spread", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-syntax-object-rest-spread", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-9cbb57ccd8/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-syntax-object-rest-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-2d161add4b/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-syntax-object-rest-spread", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-b2cc8fbabb/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/", - "packageDependencies": [ - ["@babel/plugin-syntax-object-rest-spread", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-optional-catch-binding", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-syntax-optional-catch-binding", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-c00c280444/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-d4d1501de9/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/", - "packageDependencies": [ - ["@babel/plugin-syntax-optional-catch-binding", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-optional-chaining", [ - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-syntax-optional-chaining", "npm:7.8.3"] - ], - "linkType": "SOFT", - }], - ["virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-2a48d6ba36/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-syntax-optional-chaining", "virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-737f7a956d/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/", - "packageDependencies": [ - ["@babel/plugin-syntax-optional-chaining", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-top-level-await", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e23708493c-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/", - "packageDependencies": [ - ["@babel/plugin-syntax-top-level-await", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-8a2a2495ff/0/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e23708493c-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/", - "packageDependencies": [ - ["@babel/plugin-syntax-top-level-await", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-a2a0c1ecb0/0/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e23708493c-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/", - "packageDependencies": [ - ["@babel/plugin-syntax-top-level-await", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-syntax-typescript", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-syntax-typescript-npm-7.10.4-538671574b-9511691ac0.zip/node_modules/@babel/plugin-syntax-typescript/", - "packageDependencies": [ - ["@babel/plugin-syntax-typescript", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:623224215376bbf26ad6591e20351796bbc4ae8bf2649c6f5552485372412400178794299ab8c7a196c37dd726954696da257a1265decf2479d60c1823749e47#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-syntax-typescript-virtual-99737664e2/0/cache/@babel-plugin-syntax-typescript-npm-7.10.4-538671574b-9511691ac0.zip/node_modules/@babel/plugin-syntax-typescript/", - "packageDependencies": [ - ["@babel/plugin-syntax-typescript", "virtual:623224215376bbf26ad6591e20351796bbc4ae8bf2649c6f5552485372412400178794299ab8c7a196c37dd726954696da257a1265decf2479d60c1823749e47#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-arrow-functions", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-f9a02d405f-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-arrow-functions", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-2c3c3af01f/0/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-f9a02d405f-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-arrow-functions", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-cb85819537/0/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-f9a02d405f-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-arrow-functions", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-async-to-generator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.10.4-a65c63df25-c4cddae691.zip/node_modules/@babel/plugin-transform-async-to-generator/", - "packageDependencies": [ - ["@babel/plugin-transform-async-to-generator", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-471e9ce4be/0/cache/@babel-plugin-transform-async-to-generator-npm-7.10.4-a65c63df25-c4cddae691.zip/node_modules/@babel/plugin-transform-async-to-generator/", - "packageDependencies": [ - ["@babel/plugin-transform-async-to-generator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-remap-async-to-generator", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-block-scoped-functions", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-59719e889e-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoped-functions", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-629bbdadd6/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-59719e889e-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoped-functions", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-f463f3bb4f/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-59719e889e-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoped-functions", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-block-scoping", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-57eb6c9e38-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoping", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-9e66397e67/0/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-57eb6c9e38-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoping", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-c4ae521496/0/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-57eb6c9e38-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/", - "packageDependencies": [ - ["@babel/plugin-transform-block-scoping", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-classes", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-classes-npm-7.10.4-d75651ff9a-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/", - "packageDependencies": [ - ["@babel/plugin-transform-classes", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-049914f2e4/0/cache/@babel-plugin-transform-classes-npm-7.10.4-d75651ff9a-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/", - "packageDependencies": [ - ["@babel/plugin-transform-classes", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-define-map", "npm:7.10.5"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-optimise-call-expression", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@types/babel__core", null], - ["globals", "npm:11.12.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-classes-virtual-07571b7dac/0/cache/@babel-plugin-transform-classes-npm-7.10.4-d75651ff9a-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/", - "packageDependencies": [ - ["@babel/plugin-transform-classes", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-define-map", "npm:7.10.5"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-optimise-call-expression", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@types/babel__core", null], - ["globals", "npm:11.12.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-computed-properties", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-54cce6ebca-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-computed-properties", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-a5d157b5b7/0/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-54cce6ebca-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-computed-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-67b25ca48b/0/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-54cce6ebca-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-computed-properties", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-destructuring", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-destructuring-npm-7.10.4-271caa461b-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-a446cca56a/0/cache/@babel-plugin-transform-destructuring-npm-7.10.4-271caa461b-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-d173f164b1/0/cache/@babel-plugin-transform-destructuring-npm-7.10.4-271caa461b-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/", - "packageDependencies": [ - ["@babel/plugin-transform-destructuring", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-dotall-regex", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-ee83ecae9b-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-dotall-regex", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-f8e8e751ac/0/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-ee83ecae9b-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-dotall-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-create-regexp-features-plugin", "virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-duplicate-keys", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.10.4-af32ee9099-60897c7c2f.zip/node_modules/@babel/plugin-transform-duplicate-keys/", - "packageDependencies": [ - ["@babel/plugin-transform-duplicate-keys", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-da0d8db33f/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.10.4-af32ee9099-60897c7c2f.zip/node_modules/@babel/plugin-transform-duplicate-keys/", - "packageDependencies": [ - ["@babel/plugin-transform-duplicate-keys", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-exponentiation-operator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.10.4-8c454e155f-fb086b4482.zip/node_modules/@babel/plugin-transform-exponentiation-operator/", - "packageDependencies": [ - ["@babel/plugin-transform-exponentiation-operator", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-3bb181860f/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.10.4-8c454e155f-fb086b4482.zip/node_modules/@babel/plugin-transform-exponentiation-operator/", - "packageDependencies": [ - ["@babel/plugin-transform-exponentiation-operator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-builder-binary-assignment-operator-visitor", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-flow-strip-types", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.10.4-2766f1172d-704d4c8a80.zip/node_modules/@babel/plugin-transform-flow-strip-types/", - "packageDependencies": [ - ["@babel/plugin-transform-flow-strip-types", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-flow-strip-types-virtual-ed5ad3ab26/0/cache/@babel-plugin-transform-flow-strip-types-npm-7.10.4-2766f1172d-704d4c8a80.zip/node_modules/@babel/plugin-transform-flow-strip-types/", - "packageDependencies": [ - ["@babel/plugin-transform-flow-strip-types", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-flow", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-for-of", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-for-of-npm-7.10.4-bab0cb22ae-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/", - "packageDependencies": [ - ["@babel/plugin-transform-for-of", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-3cd3d2203f/0/cache/@babel-plugin-transform-for-of-npm-7.10.4-bab0cb22ae-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/", - "packageDependencies": [ - ["@babel/plugin-transform-for-of", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-60dda02b52/0/cache/@babel-plugin-transform-for-of-npm-7.10.4-bab0cb22ae-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/", - "packageDependencies": [ - ["@babel/plugin-transform-for-of", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-function-name", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-function-name-npm-7.10.4-ae534cd3c4-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/", - "packageDependencies": [ - ["@babel/plugin-transform-function-name", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-e633a1b8c0/0/cache/@babel-plugin-transform-function-name-npm-7.10.4-ae534cd3c4-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/", - "packageDependencies": [ - ["@babel/plugin-transform-function-name", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-19cbf96d8b/0/cache/@babel-plugin-transform-function-name-npm-7.10.4-ae534cd3c4-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/", - "packageDependencies": [ - ["@babel/plugin-transform-function-name", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-literals", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-literals-npm-7.10.4-06720c861e-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-literals", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-482ad5e3d6/0/cache/@babel-plugin-transform-literals-npm-7.10.4-06720c861e-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-literals-virtual-b7016fa8a0/0/cache/@babel-plugin-transform-literals-npm-7.10.4-06720c861e-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-member-expression-literals", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-dd7b9e700e-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-member-expression-literals", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-3eeb5bad25/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-dd7b9e700e-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-member-expression-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-ae0b54a81c/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-dd7b9e700e-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-member-expression-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-modules-amd", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.10.5-ee609b26aa-6d2b80f3ca.zip/node_modules/@babel/plugin-transform-modules-amd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-amd", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-c94c364e9a/0/cache/@babel-plugin-transform-modules-amd-npm-7.10.5-ee609b26aa-6d2b80f3ca.zip/node_modules/@babel/plugin-transform-modules-amd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-amd", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null], - ["babel-plugin-dynamic-import-node", "npm:2.3.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-modules-commonjs", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-8ee8f30025-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:7.9.6", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.9.6-7344f9e9a3-54da42be56.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "npm:7.9.6"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-0f69a60767/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-8ee8f30025-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-simple-access", "npm:7.10.4"], - ["@types/babel__core", null], - ["babel-plugin-dynamic-import-node", "npm:2.3.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-6e93f2d130/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.9.6-7344f9e9a3-54da42be56.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-simple-access", "npm:7.10.4"], - ["@types/babel__core", null], - ["babel-plugin-dynamic-import-node", "npm:2.3.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-ace5a04381/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-8ee8f30025-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-commonjs", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-simple-access", "npm:7.10.4"], - ["@types/babel__core", null], - ["babel-plugin-dynamic-import-node", "npm:2.3.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-modules-systemjs", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.10.5-3e84a514bf-eb08d7c7e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-systemjs", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-cf8e4aba14/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.10.5-3e84a514bf-eb08d7c7e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-systemjs", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-hoist-variables", "npm:7.10.4"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null], - ["babel-plugin-dynamic-import-node", "npm:2.3.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-modules-umd", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.10.4-642c66c043-b0c3f47b9e.zip/node_modules/@babel/plugin-transform-modules-umd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-umd", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-1fa48ff0e6/0/cache/@babel-plugin-transform-modules-umd-npm-7.10.4-642c66c043-b0c3f47b9e.zip/node_modules/@babel/plugin-transform-modules-umd/", - "packageDependencies": [ - ["@babel/plugin-transform-modules-umd", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-module-transforms", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-named-capturing-groups-regex", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.10.4-b34a270ea0-6b868806fd.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-named-capturing-groups-regex", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-0b2ce64608/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.10.4-b34a270ea0-6b868806fd.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-create-regexp-features-plugin", "virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-new-target", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-new-target-npm-7.10.4-cf31f63f69-a4742428d2.zip/node_modules/@babel/plugin-transform-new-target/", - "packageDependencies": [ - ["@babel/plugin-transform-new-target", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-2360ddb123/0/cache/@babel-plugin-transform-new-target-npm-7.10.4-cf31f63f69-a4742428d2.zip/node_modules/@babel/plugin-transform-new-target/", - "packageDependencies": [ - ["@babel/plugin-transform-new-target", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-object-super", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-object-super-npm-7.10.4-58b77a18e2-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/", - "packageDependencies": [ - ["@babel/plugin-transform-object-super", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-8d59aaf057/0/cache/@babel-plugin-transform-object-super-npm-7.10.4-58b77a18e2-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/", - "packageDependencies": [ - ["@babel/plugin-transform-object-super", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-92c9d5b9f3/0/cache/@babel-plugin-transform-object-super-npm-7.10.4-58b77a18e2-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/", - "packageDependencies": [ - ["@babel/plugin-transform-object-super", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-replace-supers", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-parameters", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-parameters-npm-7.10.5-6bb4f9a7bc-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-a01c537737/0/cache/@babel-plugin-transform-parameters-npm-7.10.5-6bb4f9a7bc-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-get-function-arity", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-1f6dccd824/0/cache/@babel-plugin-transform-parameters-npm-7.10.5-6bb4f9a7bc-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/", - "packageDependencies": [ - ["@babel/plugin-transform-parameters", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-get-function-arity", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-property-literals", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-property-literals-npm-7.10.4-2e0a4d5fb9-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-property-literals", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-db3fc61c6d/0/cache/@babel-plugin-transform-property-literals-npm-7.10.4-2e0a4d5fb9-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-property-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-9b4d0b1b17/0/cache/@babel-plugin-transform-property-literals-npm-7.10.4-2e0a4d5fb9-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-property-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-display-name", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.10.4-57638c56b7-7a224e1163.zip/node_modules/@babel/plugin-transform-react-display-name/", - "packageDependencies": [ - ["@babel/plugin-transform-react-display-name", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-7661d57007/0/cache/@babel-plugin-transform-react-display-name-npm-7.10.4-57638c56b7-7a224e1163.zip/node_modules/@babel/plugin-transform-react-display-name/", - "packageDependencies": [ - ["@babel/plugin-transform-react-display-name", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-697c513230/0/cache/@babel-plugin-transform-react-display-name-npm-7.10.4-57638c56b7-7a224e1163.zip/node_modules/@babel/plugin-transform-react-display-name/", - "packageDependencies": [ - ["@babel/plugin-transform-react-display-name", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.10.4-1a0658d38c-0fb7d136c8.zip/node_modules/@babel/plugin-transform-react-jsx/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-2fa8a545a8/0/cache/@babel-plugin-transform-react-jsx-npm-7.10.4-1a0658d38c-0fb7d136c8.zip/node_modules/@babel/plugin-transform-react-jsx/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-builder-react-jsx", "npm:7.10.4"], - ["@babel/helper-builder-react-jsx-experimental", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-jsx", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-ec4ee2cbf5/0/cache/@babel-plugin-transform-react-jsx-npm-7.10.4-1a0658d38c-0fb7d136c8.zip/node_modules/@babel/plugin-transform-react-jsx/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-builder-react-jsx", "npm:7.10.4"], - ["@babel/helper-builder-react-jsx-experimental", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-jsx", "virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx-development", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.10.4-0633aaad1d-ca014ab370.zip/node_modules/@babel/plugin-transform-react-jsx-development/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-development", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-development-virtual-5aac06bbe3/0/cache/@babel-plugin-transform-react-jsx-development-npm-7.10.4-0633aaad1d-ca014ab370.zip/node_modules/@babel/plugin-transform-react-jsx-development/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-development", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-builder-react-jsx-experimental", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-jsx", "virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx-self", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.10.4-3215726374-5447767b73.zip/node_modules/@babel/plugin-transform-react-jsx-self/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-self", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-self-virtual-c0078c75ef/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.10.4-3215726374-5447767b73.zip/node_modules/@babel/plugin-transform-react-jsx-self/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-self", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-jsx", "virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-react-jsx-source", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.10.5-bde95cec6b-9dc5d9bad0.zip/node_modules/@babel/plugin-transform-react-jsx-source/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-source", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-react-jsx-source-virtual-b6f550a18a/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.10.5-bde95cec6b-9dc5d9bad0.zip/node_modules/@babel/plugin-transform-react-jsx-source/", - "packageDependencies": [ - ["@babel/plugin-transform-react-jsx-source", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-jsx", "virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-regenerator", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-regenerator-npm-7.10.4-7f18fbe1a1-932b35c5ed.zip/node_modules/@babel/plugin-transform-regenerator/", - "packageDependencies": [ - ["@babel/plugin-transform-regenerator", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-e6bb38bb7a/0/cache/@babel-plugin-transform-regenerator-npm-7.10.4-7f18fbe1a1-932b35c5ed.zip/node_modules/@babel/plugin-transform-regenerator/", - "packageDependencies": [ - ["@babel/plugin-transform-regenerator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@types/babel__core", null], - ["regenerator-transform", "npm:0.14.5"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-reserved-words", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.10.4-e14d8e8460-457433e66e.zip/node_modules/@babel/plugin-transform-reserved-words/", - "packageDependencies": [ - ["@babel/plugin-transform-reserved-words", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-350458acd3/0/cache/@babel-plugin-transform-reserved-words-npm-7.10.4-e14d8e8460-457433e66e.zip/node_modules/@babel/plugin-transform-reserved-words/", - "packageDependencies": [ - ["@babel/plugin-transform-reserved-words", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-runtime", [ - ["npm:7.9.6", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-runtime-npm-7.9.6-1c0318cd8d-3657c437c8.zip/node_modules/@babel/plugin-transform-runtime/", - "packageDependencies": [ - ["@babel/plugin-transform-runtime", "npm:7.9.6"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-runtime-virtual-78d7e8409e/0/cache/@babel-plugin-transform-runtime-npm-7.9.6-1c0318cd8d-3657c437c8.zip/node_modules/@babel/plugin-transform-runtime/", - "packageDependencies": [ - ["@babel/plugin-transform-runtime", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"], - ["semver", "npm:5.7.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-shorthand-properties", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-2e051c68b9-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-shorthand-properties", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-81af0f40fc/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-2e051c68b9-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-shorthand-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-b3aab0dba5/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-2e051c68b9-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/", - "packageDependencies": [ - ["@babel/plugin-transform-shorthand-properties", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-spread", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-spread-npm-7.10.4-d8b2e3f660-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/", - "packageDependencies": [ - ["@babel/plugin-transform-spread", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-bb4bceca09/0/cache/@babel-plugin-transform-spread-npm-7.10.4-d8b2e3f660-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/", - "packageDependencies": [ - ["@babel/plugin-transform-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-spread-virtual-f404a18df5/0/cache/@babel-plugin-transform-spread-npm-7.10.4-d8b2e3f660-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/", - "packageDependencies": [ - ["@babel/plugin-transform-spread", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-sticky-regex", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.10.4-7690d92b96-56eed04e48.zip/node_modules/@babel/plugin-transform-sticky-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-sticky-regex", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-2b013b6ceb/0/cache/@babel-plugin-transform-sticky-regex-npm-7.10.4-7690d92b96-56eed04e48.zip/node_modules/@babel/plugin-transform-sticky-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-sticky-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/helper-regex", "npm:7.10.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-template-literals", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-template-literals-npm-7.10.5-b943e4cd9e-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-template-literals", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-65d364b7f0/0/cache/@babel-plugin-transform-template-literals-npm-7.10.5-b943e4cd9e-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-template-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@babel/core", "npm:7.10.5"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-c04eb8dc57/0/cache/@babel-plugin-transform-template-literals-npm-7.10.5-b943e4cd9e-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/", - "packageDependencies": [ - ["@babel/plugin-transform-template-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-typeof-symbol", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.10.4-bb7b796978-13f3e75372.zip/node_modules/@babel/plugin-transform-typeof-symbol/", - "packageDependencies": [ - ["@babel/plugin-transform-typeof-symbol", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-ceaa7827f1/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.10.4-bb7b796978-13f3e75372.zip/node_modules/@babel/plugin-transform-typeof-symbol/", - "packageDependencies": [ - ["@babel/plugin-transform-typeof-symbol", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-typescript", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-typescript-npm-7.10.5-10568da73a-fed2784756.zip/node_modules/@babel/plugin-transform-typescript/", - "packageDependencies": [ - ["@babel/plugin-transform-typescript", "npm:7.10.5"] - ], - "linkType": "SOFT", - }], - ["virtual:6f043737060e7a600eea2de37c5838fee59824564eb3b688ab0a46664bbd618516d00daccfdd2c3f3920168b9c176d204d9d1a1fdc69d8fb59052208a09f0cfc#npm:7.10.5", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-typescript-virtual-6232242153/0/cache/@babel-plugin-transform-typescript-npm-7.10.5-10568da73a-fed2784756.zip/node_modules/@babel/plugin-transform-typescript/", - "packageDependencies": [ - ["@babel/plugin-transform-typescript", "virtual:6f043737060e7a600eea2de37c5838fee59824564eb3b688ab0a46664bbd618516d00daccfdd2c3f3920168b9c176d204d9d1a1fdc69d8fb59052208a09f0cfc#npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-create-class-features-plugin", "virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-syntax-typescript", "virtual:623224215376bbf26ad6591e20351796bbc4ae8bf2649c6f5552485372412400178794299ab8c7a196c37dd726954696da257a1265decf2479d60c1823749e47#npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/plugin-transform-unicode-regex", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.10.4-ef2e9c1e21-2e0762e7fa.zip/node_modules/@babel/plugin-transform-unicode-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-regex", "npm:7.10.4"] - ], - "linkType": "SOFT", - }], - ["virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4", { - "packageLocation": "./.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-ed19817c5c/0/cache/@babel-plugin-transform-unicode-regex-npm-7.10.4-ef2e9c1e21-2e0762e7fa.zip/node_modules/@babel/plugin-transform-unicode-regex/", - "packageDependencies": [ - ["@babel/plugin-transform-unicode-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-create-regexp-features-plugin", "virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/polyfill", [ - ["npm:7.12.1", { - "packageLocation": "./.yarn/cache/@babel-polyfill-npm-7.12.1-a393b8d870-299db4d426.zip/node_modules/@babel/polyfill/", - "packageDependencies": [ - ["@babel/polyfill", "npm:7.12.1"], - ["core-js", "npm:2.6.11"], - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-env", [ - ["npm:7.9.6", { - "packageLocation": "./.yarn/cache/@babel-preset-env-npm-7.9.6-60acaa71e1-7a2e219878.zip/node_modules/@babel/preset-env/", - "packageDependencies": [ - ["@babel/preset-env", "npm:7.9.6"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-env-virtual-59abe550ee/0/cache/@babel-preset-env-npm-7.9.6-60acaa71e1-7a2e219878.zip/node_modules/@babel/preset-env/", - "packageDependencies": [ - ["@babel/preset-env", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/compat-data", "npm:7.10.5"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-compilation-targets", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-proposal-async-generator-functions", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/plugin-proposal-dynamic-import", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-json-strings", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-numeric-separator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-optional-catch-binding", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-optional-chaining", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-proposal-unicode-property-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-syntax-async-generators", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4"], - ["@babel/plugin-syntax-dynamic-import", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-syntax-json-strings", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3"], - ["@babel/plugin-syntax-numeric-separator", "virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3"], - ["@babel/plugin-syntax-top-level-await", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-arrow-functions", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-async-to-generator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-block-scoped-functions", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-block-scoping", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/plugin-transform-classes", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-computed-properties", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-destructuring", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-dotall-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-duplicate-keys", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-exponentiation-operator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-for-of", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-function-name", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-member-expression-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-modules-amd", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/plugin-transform-modules-commonjs", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-modules-systemjs", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/plugin-transform-modules-umd", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-named-capturing-groups-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-new-target", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-object-super", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-parameters", "virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5"], - ["@babel/plugin-transform-property-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-regenerator", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-reserved-words", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-shorthand-properties", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-spread", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-sticky-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-template-literals", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5"], - ["@babel/plugin-transform-typeof-symbol", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-unicode-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/preset-modules", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3"], - ["@babel/types", "npm:7.10.5"], - ["@types/babel__core", null], - ["browserslist", "npm:4.13.0"], - ["core-js-compat", "npm:3.6.5"], - ["invariant", "npm:2.2.4"], - ["levenary", "npm:1.1.1"], - ["semver", "npm:5.7.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-modules", [ - ["npm:0.1.3", { - "packageLocation": "./.yarn/cache/@babel-preset-modules-npm-0.1.3-d63a86113f-341c13de18.zip/node_modules/@babel/preset-modules/", - "packageDependencies": [ - ["@babel/preset-modules", "npm:0.1.3"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-modules-virtual-f7052f90a6/0/cache/@babel-preset-modules-npm-0.1.3-d63a86113f-341c13de18.zip/node_modules/@babel/preset-modules/", - "packageDependencies": [ - ["@babel/preset-modules", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-proposal-unicode-property-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/plugin-transform-dotall-regex", "virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4"], - ["@babel/types", "npm:7.10.5"], - ["@types/babel__core", null], - ["esutils", "npm:2.0.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-react", [ - ["npm:7.9.4", { - "packageLocation": "./.yarn/cache/@babel-preset-react-npm-7.9.4-ca865f2a55-1c5bc15363.zip/node_modules/@babel/preset-react/", - "packageDependencies": [ - ["@babel/preset-react", "npm:7.9.4"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-react-virtual-527926d043/0/cache/@babel-preset-react-npm-7.9.4-ca865f2a55-1c5bc15363.zip/node_modules/@babel/preset-react/", - "packageDependencies": [ - ["@babel/preset-react", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-transform-react-display-name", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/plugin-transform-react-jsx", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/plugin-transform-react-jsx-development", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/plugin-transform-react-jsx-self", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4"], - ["@babel/plugin-transform-react-jsx-source", "virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/preset-typescript", [ - ["npm:7.9.0", { - "packageLocation": "./.yarn/cache/@babel-preset-typescript-npm-7.9.0-5fa2781fcb-d83ac83919.zip/node_modules/@babel/preset-typescript/", - "packageDependencies": [ - ["@babel/preset-typescript", "npm:7.9.0"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0", { - "packageLocation": "./.yarn/$$virtual/@babel-preset-typescript-virtual-6f04373706/0/cache/@babel-preset-typescript-npm-7.9.0-5fa2781fcb-d83ac83919.zip/node_modules/@babel/preset-typescript/", - "packageDependencies": [ - ["@babel/preset-typescript", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0"], - ["@babel/core", "npm:7.7.7"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@babel/plugin-transform-typescript", "virtual:6f043737060e7a600eea2de37c5838fee59824564eb3b688ab0a46664bbd618516d00daccfdd2c3f3920168b9c176d204d9d1a1fdc69d8fb59052208a09f0cfc#npm:7.10.5"], - ["@types/babel__core", null] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["@babel/runtime", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.10.5-d60a3721cd-222bc7c75b.zip/node_modules/@babel/runtime/", - "packageDependencies": [ - ["@babel/runtime", "npm:7.10.5"], - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }], - ["npm:7.11.2", { - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.11.2-f2cfabd212-2f127ad60a.zip/node_modules/@babel/runtime/", - "packageDependencies": [ - ["@babel/runtime", "npm:7.11.2"], - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }], - ["npm:7.12.5", { - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.12.5-b3edb8ee8e-423fb00793.zip/node_modules/@babel/runtime/", - "packageDependencies": [ - ["@babel/runtime", "npm:7.12.5"], - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }], - ["npm:7.9.6", { - "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.9.6-93b1a0d418-ff94d6861d.zip/node_modules/@babel/runtime/", - "packageDependencies": [ - ["@babel/runtime", "npm:7.9.6"], - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/runtime-corejs2", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-runtime-corejs2-npm-7.10.5-3cdfa78ec5-b9f06973c7.zip/node_modules/@babel/runtime-corejs2/", - "packageDependencies": [ - ["@babel/runtime-corejs2", "npm:7.10.5"], - ["core-js", "npm:2.6.11"], - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/template", [ - ["npm:7.10.4", { - "packageLocation": "./.yarn/cache/@babel-template-npm-7.10.4-521586243b-23a5c4f7ab.zip/node_modules/@babel/template/", - "packageDependencies": [ - ["@babel/template", "npm:7.10.4"], - ["@babel/code-frame", "npm:7.10.4"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/traverse", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.10.5-057ce0190c-4292255a99.zip/node_modules/@babel/traverse/", - "packageDependencies": [ - ["@babel/traverse", "npm:7.10.5"], - ["@babel/code-frame", "npm:7.10.4"], - ["@babel/generator", "npm:7.10.5"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.10.4"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["globals", "npm:11.12.0"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }], - ["npm:7.11.5", { - "packageLocation": "./.yarn/cache/@babel-traverse-npm-7.11.5-2395052be8-206010caee.zip/node_modules/@babel/traverse/", - "packageDependencies": [ - ["@babel/traverse", "npm:7.11.5"], - ["@babel/code-frame", "npm:7.10.4"], - ["@babel/generator", "npm:7.11.6"], - ["@babel/helper-function-name", "npm:7.10.4"], - ["@babel/helper-split-export-declaration", "npm:7.11.0"], - ["@babel/parser", "npm:7.11.5"], - ["@babel/types", "npm:7.11.5"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["globals", "npm:11.12.0"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }] - ]], - ["@babel/types", [ - ["npm:7.10.5", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.10.5-41ba4293dd-00bdeb6f46.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.10.5"], - ["@babel/helper-validator-identifier", "npm:7.10.4"], - ["lodash", "npm:4.17.19"], - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.11.5", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.11.5-d0fc2e4f15-a1515b3ed1.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.11.5"], - ["@babel/helper-validator-identifier", "npm:7.10.4"], - ["lodash", "npm:4.17.19"], - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.13.0", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.13.0-737e1b9971-a47357647a.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.13.0"], - ["@babel/helper-validator-identifier", "npm:7.12.11"], - ["lodash", "npm:4.17.19"], - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.8.3", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.8.3-00702cfcbf-d3a4f0b6bc.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.8.3"], - ["esutils", "npm:2.0.3"], - ["lodash", "npm:4.17.19"], - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.9.6", { - "packageLocation": "./.yarn/cache/@babel-types-npm-7.9.6-c2ad0830d8-e67bd07450.zip/node_modules/@babel/types/", - "packageDependencies": [ - ["@babel/types", "npm:7.9.6"], - ["@babel/helper-validator-identifier", "npm:7.10.4"], - ["lodash", "npm:4.17.19"], - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@bcoe/v8-coverage", [ - ["npm:0.2.3", { - "packageLocation": "./.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-4fc6fb784b.zip/node_modules/@bcoe/v8-coverage/", - "packageDependencies": [ - ["@bcoe/v8-coverage", "npm:0.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["@cnakazawa/watch", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/@cnakazawa-watch-npm-1.0.4-ee43493884-7909f89bbe.zip/node_modules/@cnakazawa/watch/", - "packageDependencies": [ - ["@cnakazawa/watch", "npm:1.0.4"], - ["exec-sh", "npm:0.3.4"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["@emotion/is-prop-valid", [ - ["npm:0.8.8", { - "packageLocation": "./.yarn/cache/@emotion-is-prop-valid-npm-0.8.8-261a0f2426-4a6993c4e6.zip/node_modules/@emotion/is-prop-valid/", - "packageDependencies": [ - ["@emotion/is-prop-valid", "npm:0.8.8"], - ["@emotion/memoize", "npm:0.7.4"] - ], - "linkType": "HARD", - }] - ]], - ["@emotion/memoize", [ - ["npm:0.7.4", { - "packageLocation": "./.yarn/cache/@emotion-memoize-npm-0.7.4-5648cf11b8-874123a94c.zip/node_modules/@emotion/memoize/", - "packageDependencies": [ - ["@emotion/memoize", "npm:0.7.4"] - ], - "linkType": "HARD", - }] - ]], - ["@emotion/stylis", [ - ["npm:0.8.5", { - "packageLocation": "./.yarn/cache/@emotion-stylis-npm-0.8.5-3e9db8959f-bb43a77f78.zip/node_modules/@emotion/stylis/", - "packageDependencies": [ - ["@emotion/stylis", "npm:0.8.5"] - ], - "linkType": "HARD", - }] - ]], - ["@emotion/unitless", [ - ["npm:0.7.5", { - "packageLocation": "./.yarn/cache/@emotion-unitless-npm-0.7.5-14e1171640-0be366ef09.zip/node_modules/@emotion/unitless/", - "packageDependencies": [ - ["@emotion/unitless", "npm:0.7.5"] - ], - "linkType": "HARD", - }] - ]], - ["@fullhuman/postcss-purgecss", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/@fullhuman-postcss-purgecss-npm-2.3.0-c864899fae-18c6b2896a.zip/node_modules/@fullhuman/postcss-purgecss/", - "packageDependencies": [ - ["@fullhuman/postcss-purgecss", "npm:2.3.0"], - ["postcss", "npm:7.0.32"], - ["purgecss", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@graphql-codegen/core", [ - ["npm:1.17.6", { - "packageLocation": "./.yarn/cache/@graphql-codegen-core-npm-1.17.6-ab96e1cc8a-f5dff42d12.zip/node_modules/@graphql-codegen/core/", - "packageDependencies": [ - ["@graphql-codegen/core", "npm:1.17.6"] - ], - "linkType": "SOFT", - }], - ["virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6", { - "packageLocation": "./.yarn/$$virtual/@graphql-codegen-core-virtual-3367fcdf1a/0/cache/@graphql-codegen-core-npm-1.17.6-ab96e1cc8a-f5dff42d12.zip/node_modules/@graphql-codegen/core/", - "packageDependencies": [ - ["@graphql-codegen/core", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/plugin-helpers", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6"], - ["@graphql-tools/merge", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@graphql-tools/utils", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-codegen/plugin-helpers", [ - ["npm:1.17.6", { - "packageLocation": "./.yarn/cache/@graphql-codegen-plugin-helpers-npm-1.17.6-b149e539aa-6793149a95.zip/node_modules/@graphql-codegen/plugin-helpers/", - "packageDependencies": [ - ["@graphql-codegen/plugin-helpers", "npm:1.17.6"] - ], - "linkType": "SOFT", - }], - ["virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6", { - "packageLocation": "./.yarn/$$virtual/@graphql-codegen-plugin-helpers-virtual-70ebea4abd/0/cache/@graphql-codegen-plugin-helpers-npm-1.17.6-b149e539aa-6793149a95.zip/node_modules/@graphql-codegen/plugin-helpers/", - "packageDependencies": [ - ["@graphql-codegen/plugin-helpers", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6"], - ["@graphql-tools/utils", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@types/graphql", null], - ["camel-case", "npm:4.1.1"], - ["common-tags", "npm:1.8.0"], - ["constant-case", "npm:3.0.3"], - ["graphql", "npm:15.3.0"], - ["import-from", "npm:3.0.0"], - ["lodash", "npm:4.17.19"], - ["lower-case", "npm:2.0.1"], - ["param-case", "npm:3.0.3"], - ["pascal-case", "npm:3.1.1"], - ["tslib", "npm:2.0.0"], - ["upper-case", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-codegen/typescript", [ - ["npm:1.17.6", { - "packageLocation": "./.yarn/cache/@graphql-codegen-typescript-npm-1.17.6-0ccefb6ee7-6ea0907cf3.zip/node_modules/@graphql-codegen/typescript/", - "packageDependencies": [ - ["@graphql-codegen/typescript", "npm:1.17.6"] - ], - "linkType": "SOFT", - }], - ["virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6", { - "packageLocation": "./.yarn/$$virtual/@graphql-codegen-typescript-virtual-6a1d1cfdce/0/cache/@graphql-codegen-typescript-npm-1.17.6-0ccefb6ee7-6ea0907cf3.zip/node_modules/@graphql-codegen/typescript/", - "packageDependencies": [ - ["@graphql-codegen/typescript", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/plugin-helpers", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6"], - ["@graphql-codegen/visitor-plugin-common", "virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6"], - ["@types/graphql", null], - ["auto-bind", "npm:4.0.0"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-codegen/typescript-operations", [ - ["npm:1.17.6", { - "packageLocation": "./.yarn/cache/@graphql-codegen-typescript-operations-npm-1.17.6-2b533a2a6c-7021153678.zip/node_modules/@graphql-codegen/typescript-operations/", - "packageDependencies": [ - ["@graphql-codegen/typescript-operations", "npm:1.17.6"] - ], - "linkType": "SOFT", - }], - ["virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6", { - "packageLocation": "./.yarn/$$virtual/@graphql-codegen-typescript-operations-virtual-024f2ecff0/0/cache/@graphql-codegen-typescript-operations-npm-1.17.6-2b533a2a6c-7021153678.zip/node_modules/@graphql-codegen/typescript-operations/", - "packageDependencies": [ - ["@graphql-codegen/typescript-operations", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/plugin-helpers", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6"], - ["@graphql-codegen/typescript", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/visitor-plugin-common", "virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6"], - ["@types/graphql", null], - ["auto-bind", "npm:4.0.0"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-codegen/visitor-plugin-common", [ - ["npm:1.17.6", { - "packageLocation": "./.yarn/cache/@graphql-codegen-visitor-plugin-common-npm-1.17.6-5812c8bc85-68c3ecbcbd.zip/node_modules/@graphql-codegen/visitor-plugin-common/", - "packageDependencies": [ - ["@graphql-codegen/visitor-plugin-common", "npm:1.17.6"] - ], - "linkType": "SOFT", - }], - ["virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6", { - "packageLocation": "./.yarn/$$virtual/@graphql-codegen-visitor-plugin-common-virtual-5d3d34b432/0/cache/@graphql-codegen-visitor-plugin-common-npm-1.17.6-5812c8bc85-68c3ecbcbd.zip/node_modules/@graphql-codegen/visitor-plugin-common/", - "packageDependencies": [ - ["@graphql-codegen/visitor-plugin-common", "virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6"], - ["@graphql-codegen/plugin-helpers", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6"], - ["@graphql-tools/relay-operation-optimizer", "virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:6.0.15"], - ["@types/graphql", null], - ["array.prototype.flatmap", "npm:1.2.3"], - ["auto-bind", "npm:4.0.0"], - ["dependency-graph", "npm:0.9.0"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:2.10.4"], - ["parse-filepath", "npm:1.0.2"], - ["pascal-case", "npm:3.1.1"], - ["tslib", "npm:2.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/batch-delegate", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-batch-delegate-npm-6.2.1-0ff9a7fda7-fd24db9586.zip/node_modules/@graphql-tools/batch-delegate/", - "packageDependencies": [ - ["@graphql-tools/batch-delegate", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-batch-delegate-virtual-231c97edb1/0/cache/@graphql-tools-batch-delegate-npm-6.2.1-0ff9a7fda7-fd24db9586.zip/node_modules/@graphql-tools/batch-delegate/", - "packageDependencies": [ - ["@graphql-tools/batch-delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@types/graphql", null], - ["dataloader", "npm:2.0.0"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/code-file-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-code-file-loader-npm-6.2.1-0a94a2cf19-428da4ea0e.zip/node_modules/@graphql-tools/code-file-loader/", - "packageDependencies": [ - ["@graphql-tools/code-file-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-code-file-loader-virtual-f3016cfb76/0/cache/@graphql-tools-code-file-loader-npm-6.2.1-0a94a2cf19-428da4ea0e.zip/node_modules/@graphql-tools/code-file-loader/", - "packageDependencies": [ - ["@graphql-tools/code-file-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/graphql-tag-pluck", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["fs-extra", "npm:9.0.1"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/delegate", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-delegate-npm-6.2.1-3b6c6f2859-8077f1ec36.zip/node_modules/@graphql-tools/delegate/", - "packageDependencies": [ - ["@graphql-tools/delegate", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-delegate-virtual-0be9dce121/0/cache/@graphql-tools-delegate-npm-6.2.1-3b6c6f2859-8077f1ec36.zip/node_modules/@graphql-tools/delegate/", - "packageDependencies": [ - ["@graphql-tools/delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@ardatan/aggregate-error", "npm:0.0.6"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["dataloader", "npm:2.0.0"], - ["graphql", "npm:15.3.0"], - ["is-promise", "npm:4.0.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/git-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-git-loader-npm-6.2.1-cef3810aa0-4b8ce65404.zip/node_modules/@graphql-tools/git-loader/", - "packageDependencies": [ - ["@graphql-tools/git-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-git-loader-virtual-a621c485cd/0/cache/@graphql-tools-git-loader-npm-6.2.1-cef3810aa0-4b8ce65404.zip/node_modules/@graphql-tools/git-loader/", - "packageDependencies": [ - ["@graphql-tools/git-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/graphql-tag-pluck", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/github-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-github-loader-npm-6.2.1-21d1bf09e5-a66bd8215a.zip/node_modules/@graphql-tools/github-loader/", - "packageDependencies": [ - ["@graphql-tools/github-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-github-loader-virtual-0c35dc29bd/0/cache/@graphql-tools-github-loader-npm-6.2.1-21d1bf09e5-a66bd8215a.zip/node_modules/@graphql-tools/github-loader/", - "packageDependencies": [ - ["@graphql-tools/github-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/graphql-tag-pluck", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["cross-fetch", "npm:3.0.5"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/graphql-file-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-graphql-file-loader-npm-6.2.1-5ac4611456-b71b1e632c.zip/node_modules/@graphql-tools/graphql-file-loader/", - "packageDependencies": [ - ["@graphql-tools/graphql-file-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-graphql-file-loader-virtual-d31bac0e1e/0/cache/@graphql-tools-graphql-file-loader-npm-6.2.1-5ac4611456-b71b1e632c.zip/node_modules/@graphql-tools/graphql-file-loader/", - "packageDependencies": [ - ["@graphql-tools/graphql-file-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/import", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["fs-extra", "npm:9.0.1"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/graphql-tag-pluck", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-graphql-tag-pluck-npm-6.2.1-6fc8c90c0d-ff4bb0459b.zip/node_modules/@graphql-tools/graphql-tag-pluck/", - "packageDependencies": [ - ["@graphql-tools/graphql-tag-pluck", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-graphql-tag-pluck-virtual-0bbda4ffaa/0/cache/@graphql-tools-graphql-tag-pluck-npm-6.2.1-6fc8c90c0d-ff4bb0459b.zip/node_modules/@graphql-tools/graphql-tag-pluck/", - "packageDependencies": [ - ["@graphql-tools/graphql-tag-pluck", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@babel/parser", "npm:7.11.5"], - ["@babel/traverse", "npm:7.11.5"], - ["@babel/types", "npm:7.11.5"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"], - ["vue-template-compiler", "npm:2.6.12"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/import", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-import-npm-6.2.1-177c18c3f7-0ca28228d6.zip/node_modules/@graphql-tools/import/", - "packageDependencies": [ - ["@graphql-tools/import", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-import-virtual-402c9b6527/0/cache/@graphql-tools-import-npm-6.2.1-177c18c3f7-0ca28228d6.zip/node_modules/@graphql-tools/import/", - "packageDependencies": [ - ["@graphql-tools/import", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@types/graphql", null], - ["fs-extra", "npm:9.0.1"], - ["graphql", "npm:15.3.0"], - ["resolve-from", "npm:5.0.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/json-file-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-json-file-loader-npm-6.2.1-6e2976fb94-56681dad6a.zip/node_modules/@graphql-tools/json-file-loader/", - "packageDependencies": [ - ["@graphql-tools/json-file-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-json-file-loader-virtual-7339d0df40/0/cache/@graphql-tools-json-file-loader-npm-6.2.1-6e2976fb94-56681dad6a.zip/node_modules/@graphql-tools/json-file-loader/", - "packageDependencies": [ - ["@graphql-tools/json-file-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["fs-extra", "npm:9.0.1"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/links", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-links-npm-6.2.1-554f2fbcf7-53299b8ef3.zip/node_modules/@graphql-tools/links/", - "packageDependencies": [ - ["@graphql-tools/links", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-links-virtual-36c8256c19/0/cache/@graphql-tools-links-npm-6.2.1-554f2fbcf7-53299b8ef3.zip/node_modules/@graphql-tools/links/", - "packageDependencies": [ - ["@graphql-tools/links", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["apollo-link", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:1.2.14"], - ["apollo-upload-client", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:14.1.1"], - ["cross-fetch", "npm:3.0.5"], - ["form-data", "npm:3.0.0"], - ["graphql", "npm:15.3.0"], - ["is-promise", "npm:4.0.0"], - ["subscriptions-transport-ws", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/load", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-load-npm-6.2.1-162672a40c-0e9d96974a.zip/node_modules/@graphql-tools/load/", - "packageDependencies": [ - ["@graphql-tools/load", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-load-virtual-44ea70c4be/0/cache/@graphql-tools-load-npm-6.2.1-162672a40c-0e9d96974a.zip/node_modules/@graphql-tools/load/", - "packageDependencies": [ - ["@graphql-tools/load", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/merge", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["globby", "npm:11.0.1"], - ["graphql", "npm:15.3.0"], - ["import-from", "npm:3.0.0"], - ["is-glob", "npm:4.0.1"], - ["p-limit", "npm:3.0.2"], - ["tslib", "npm:2.0.1"], - ["unixify", "npm:1.0.0"], - ["valid-url", "npm:1.0.9"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/load-files", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-load-files-npm-6.2.1-4214d64c42-243f321295.zip/node_modules/@graphql-tools/load-files/", - "packageDependencies": [ - ["@graphql-tools/load-files", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-load-files-virtual-b787612d28/0/cache/@graphql-tools-load-files-npm-6.2.1-4214d64c42-243f321295.zip/node_modules/@graphql-tools/load-files/", - "packageDependencies": [ - ["@graphql-tools/load-files", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@types/graphql", null], - ["fs-extra", "npm:9.0.1"], - ["globby", "npm:11.0.1"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"], - ["unixify", "npm:1.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/merge", [ - ["npm:6.0.15", { - "packageLocation": "./.yarn/cache/@graphql-tools-merge-npm-6.0.15-ef74044dfb-63050b1571.zip/node_modules/@graphql-tools/merge/", - "packageDependencies": [ - ["@graphql-tools/merge", "npm:6.0.15"] - ], - "linkType": "SOFT", - }], - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-merge-npm-6.2.1-9e61b15563-10ba3c3757.zip/node_modules/@graphql-tools/merge/", - "packageDependencies": [ - ["@graphql-tools/merge", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-merge-virtual-2c43e74cc7/0/cache/@graphql-tools-merge-npm-6.0.15-ef74044dfb-63050b1571.zip/node_modules/@graphql-tools/merge/", - "packageDependencies": [ - ["@graphql-tools/merge", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@graphql-tools/schema", "virtual:2c43e74cc74e2da15f73776b7478d075eea3e828cc6b976807f7f57f101e533c7eff4220a19cb7122d04152b85e90f21b0b181a30a1b07f221db5cb39e5a524a#npm:6.0.15"], - ["@graphql-tools/utils", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-merge-virtual-b886ff7db2/0/cache/@graphql-tools-merge-npm-6.2.1-9e61b15563-10ba3c3757.zip/node_modules/@graphql-tools/merge/", - "packageDependencies": [ - ["@graphql-tools/merge", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/mock", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-mock-npm-6.2.1-2516e5d198-b9d9c6a4f7.zip/node_modules/@graphql-tools/mock/", - "packageDependencies": [ - ["@graphql-tools/mock", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-mock-virtual-19438ce14b/0/cache/@graphql-tools-mock-npm-6.2.1-2516e5d198-b9d9c6a4f7.zip/node_modules/@graphql-tools/mock/", - "packageDependencies": [ - ["@graphql-tools/mock", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/module-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-module-loader-npm-6.2.1-6d99b782d5-b6c32497fa.zip/node_modules/@graphql-tools/module-loader/", - "packageDependencies": [ - ["@graphql-tools/module-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-module-loader-virtual-f4370eaa04/0/cache/@graphql-tools-module-loader-npm-6.2.1-6d99b782d5-b6c32497fa.zip/node_modules/@graphql-tools/module-loader/", - "packageDependencies": [ - ["@graphql-tools/module-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/relay-operation-optimizer", [ - ["npm:6.0.15", { - "packageLocation": "./.yarn/cache/@graphql-tools-relay-operation-optimizer-npm-6.0.15-7bf2e36441-2e8526e2bd.zip/node_modules/@graphql-tools/relay-operation-optimizer/", - "packageDependencies": [ - ["@graphql-tools/relay-operation-optimizer", "npm:6.0.15"] - ], - "linkType": "SOFT", - }], - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-relay-operation-optimizer-npm-6.2.1-fed1f20f9b-aa0ef7d3af.zip/node_modules/@graphql-tools/relay-operation-optimizer/", - "packageDependencies": [ - ["@graphql-tools/relay-operation-optimizer", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:6.0.15", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-relay-operation-optimizer-virtual-8fbc380fbf/0/cache/@graphql-tools-relay-operation-optimizer-npm-6.0.15-7bf2e36441-2e8526e2bd.zip/node_modules/@graphql-tools/relay-operation-optimizer/", - "packageDependencies": [ - ["@graphql-tools/relay-operation-optimizer", "virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:6.0.15"], - ["@graphql-tools/utils", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["relay-compiler", "virtual:8fbc380fbfb83c446fbdff9c5e4a5a07a118a4ec957bed39a2469c831dc686ce78446613f276fcd08ce9f58738f2ee08b7fd1d21a072eac3274c73f305301c47#npm:10.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-relay-operation-optimizer-virtual-0d29aff9ae/0/cache/@graphql-tools-relay-operation-optimizer-npm-6.2.1-fed1f20f9b-aa0ef7d3af.zip/node_modules/@graphql-tools/relay-operation-optimizer/", - "packageDependencies": [ - ["@graphql-tools/relay-operation-optimizer", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["relay-compiler", "virtual:0d29aff9ae5afdd8990e2be771603920ab2d59b5164cd84e0f85b11a3f75d71ccd9baea28e8b2d3b8333f6ddd85a9edc4c9ba67f3127625e4af946bf37dd49d9#npm:10.0.1"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/resolvers-composition", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-resolvers-composition-npm-6.2.1-45c30d9629-0500d9a034.zip/node_modules/@graphql-tools/resolvers-composition/", - "packageDependencies": [ - ["@graphql-tools/resolvers-composition", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-resolvers-composition-virtual-ef322d011b/0/cache/@graphql-tools-resolvers-composition-npm-6.2.1-45c30d9629-0500d9a034.zip/node_modules/@graphql-tools/resolvers-composition/", - "packageDependencies": [ - ["@graphql-tools/resolvers-composition", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["lodash", "npm:4.17.20"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/schema", [ - ["npm:6.0.15", { - "packageLocation": "./.yarn/cache/@graphql-tools-schema-npm-6.0.15-607fefe8aa-0112bfb36a.zip/node_modules/@graphql-tools/schema/", - "packageDependencies": [ - ["@graphql-tools/schema", "npm:6.0.15"] - ], - "linkType": "SOFT", - }], - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-schema-npm-6.2.1-ecea5211c5-91d2dbc1ce.zip/node_modules/@graphql-tools/schema/", - "packageDependencies": [ - ["@graphql-tools/schema", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:2c43e74cc74e2da15f73776b7478d075eea3e828cc6b976807f7f57f101e533c7eff4220a19cb7122d04152b85e90f21b0b181a30a1b07f221db5cb39e5a524a#npm:6.0.15", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-schema-virtual-473592b131/0/cache/@graphql-tools-schema-npm-6.0.15-607fefe8aa-0112bfb36a.zip/node_modules/@graphql-tools/schema/", - "packageDependencies": [ - ["@graphql-tools/schema", "virtual:2c43e74cc74e2da15f73776b7478d075eea3e828cc6b976807f7f57f101e533c7eff4220a19cb7122d04152b85e90f21b0b181a30a1b07f221db5cb39e5a524a#npm:6.0.15"], - ["@graphql-tools/utils", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-schema-virtual-a08a0a2e77/0/cache/@graphql-tools-schema-npm-6.2.1-ecea5211c5-91d2dbc1ce.zip/node_modules/@graphql-tools/schema/", - "packageDependencies": [ - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/stitch", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-stitch-npm-6.2.1-91be47999c-efffb132ef.zip/node_modules/@graphql-tools/stitch/", - "packageDependencies": [ - ["@graphql-tools/stitch", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-stitch-virtual-c1a56fd2d5/0/cache/@graphql-tools-stitch-npm-6.2.1-91be47999c-efffb132ef.zip/node_modules/@graphql-tools/stitch/", - "packageDependencies": [ - ["@graphql-tools/stitch", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/batch-delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/merge", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@graphql-tools/wrap", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["is-promise", "npm:4.0.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/url-loader", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-url-loader-npm-6.2.1-3e49ee66a5-9d855b9970.zip/node_modules/@graphql-tools/url-loader/", - "packageDependencies": [ - ["@graphql-tools/url-loader", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-url-loader-virtual-574da51a38/0/cache/@graphql-tools-url-loader-npm-6.2.1-3e49ee66a5-9d855b9970.zip/node_modules/@graphql-tools/url-loader/", - "packageDependencies": [ - ["@graphql-tools/url-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@graphql-tools/wrap", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@types/graphql", null], - ["@types/websocket", "npm:1.0.1"], - ["cross-fetch", "npm:3.0.5"], - ["graphql", "npm:15.3.0"], - ["subscriptions-transport-ws", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18"], - ["tslib", "npm:2.0.1"], - ["valid-url", "npm:1.0.9"], - ["websocket", "npm:1.0.32"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/utils", [ - ["npm:6.0.15", { - "packageLocation": "./.yarn/cache/@graphql-tools-utils-npm-6.0.15-041d8cd8eb-d68a753b32.zip/node_modules/@graphql-tools/utils/", - "packageDependencies": [ - ["@graphql-tools/utils", "npm:6.0.15"] - ], - "linkType": "SOFT", - }], - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-utils-npm-6.2.1-867a9ee267-ebfdf1fccf.zip/node_modules/@graphql-tools/utils/", - "packageDependencies": [ - ["@graphql-tools/utils", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-utils-virtual-5a678ab629/0/cache/@graphql-tools-utils-npm-6.0.15-041d8cd8eb-d68a753b32.zip/node_modules/@graphql-tools/utils/", - "packageDependencies": [ - ["@graphql-tools/utils", "virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15"], - ["@ardatan/aggregate-error", "npm:0.0.1"], - ["@types/graphql", null], - ["camel-case", "npm:4.1.1"], - ["graphql", "npm:15.3.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-utils-virtual-7110f1bcf9/0/cache/@graphql-tools-utils-npm-6.2.1-867a9ee267-ebfdf1fccf.zip/node_modules/@graphql-tools/utils/", - "packageDependencies": [ - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@ardatan/aggregate-error", "npm:0.0.6"], - ["@types/graphql", null], - ["camel-case", "npm:4.1.1"], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@graphql-tools/wrap", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/@graphql-tools-wrap-npm-6.2.1-bf597dc71c-4bf50c5bc4.zip/node_modules/@graphql-tools/wrap/", - "packageDependencies": [ - ["@graphql-tools/wrap", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/@graphql-tools-wrap-virtual-dd77e91574/0/cache/@graphql-tools-wrap-npm-6.2.1-bf597dc71c-4bf50c5bc4.zip/node_modules/@graphql-tools/wrap/", - "packageDependencies": [ - ["@graphql-tools/wrap", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["is-promise", "npm:4.0.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@hapi/accept", [ - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/@hapi-accept-npm-5.0.1-3f6811ac1f-29e3281bd8.zip/node_modules/@hapi/accept/", - "packageDependencies": [ - ["@hapi/accept", "npm:5.0.1"], - ["@hapi/boom", "npm:9.1.2"], - ["@hapi/hoek", "npm:9.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@hapi/boom", [ - ["npm:9.1.2", { - "packageLocation": "./.yarn/cache/@hapi-boom-npm-9.1.2-de293ac5a5-abf911cc05.zip/node_modules/@hapi/boom/", - "packageDependencies": [ - ["@hapi/boom", "npm:9.1.2"], - ["@hapi/hoek", "npm:9.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@hapi/hoek", [ - ["npm:9.2.0", { - "packageLocation": "./.yarn/cache/@hapi-hoek-npm-9.2.0-efd2a3831f-c68d43f3fa.zip/node_modules/@hapi/hoek/", - "packageDependencies": [ - ["@hapi/hoek", "npm:9.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@icons/material", [ - ["npm:0.2.4", { - "packageLocation": "./.yarn/cache/@icons-material-npm-0.2.4-7c2363ec33-10b1841bfb.zip/node_modules/@icons/material/", - "packageDependencies": [ - ["@icons/material", "npm:0.2.4"] - ], - "linkType": "SOFT", - }], - ["virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:0.2.4", { - "packageLocation": "./.yarn/$$virtual/@icons-material-virtual-a6f54c4477/0/cache/@icons-material-npm-0.2.4-7c2363ec33-10b1841bfb.zip/node_modules/@icons/material/", - "packageDependencies": [ - ["@icons/material", "virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:0.2.4"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@istanbuljs/load-nyc-config", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-f7f3b1c922.zip/node_modules/@istanbuljs/load-nyc-config/", - "packageDependencies": [ - ["@istanbuljs/load-nyc-config", "npm:1.1.0"], - ["camelcase", "npm:5.3.1"], - ["find-up", "npm:4.1.0"], - ["get-package-type", "npm:0.1.0"], - ["js-yaml", "npm:3.14.0"], - ["resolve-from", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@istanbuljs/schema", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/@istanbuljs-schema-npm-0.1.2-cec4e49c8d-ebc6bd5f14.zip/node_modules/@istanbuljs/schema/", - "packageDependencies": [ - ["@istanbuljs/schema", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/console", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-console-npm-26.1.0-4b9dc97b8e-b43be58c31.zip/node_modules/@jest/console/", - "packageDependencies": [ - ["@jest/console", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-console-npm-26.6.2-bfe95527e4-72920a893e.zip/node_modules/@jest/console/", - "packageDependencies": [ - ["@jest/console", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["chalk", "npm:4.1.0"], - ["jest-message-util", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/core", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-core-npm-26.1.0-846995c194-0ceb5a15d0.zip/node_modules/@jest/core/", - "packageDependencies": [ - ["@jest/core", "npm:26.1.0"], - ["@jest/console", "npm:26.1.0"], - ["@jest/reporters", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/transform", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["ansi-escapes", "npm:4.3.1"], - ["chalk", "npm:4.1.0"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.4"], - ["jest-changed-files", "npm:26.1.0"], - ["jest-config", "npm:26.1.0"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-resolve", "npm:26.1.0"], - ["jest-resolve-dependencies", "npm:26.1.0"], - ["jest-runner", "npm:26.1.0"], - ["jest-runtime", "npm:26.1.0"], - ["jest-snapshot", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-validate", "npm:26.1.0"], - ["jest-watcher", "npm:26.1.0"], - ["micromatch", "npm:4.0.2"], - ["p-each-series", "npm:2.1.0"], - ["rimraf", "npm:3.0.2"], - ["slash", "npm:3.0.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/@jest-core-npm-26.6.3-9bb6c92d6b-e0d35e40fc.zip/node_modules/@jest/core/", - "packageDependencies": [ - ["@jest/core", "npm:26.6.3"], - ["@jest/console", "npm:26.6.2"], - ["@jest/reporters", "npm:26.6.2"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/transform", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["ansi-escapes", "npm:4.3.1"], - ["chalk", "npm:4.1.0"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.4"], - ["jest-changed-files", "npm:26.6.2"], - ["jest-config", "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-message-util", "npm:26.6.2"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-resolve", "npm:26.6.2"], - ["jest-resolve-dependencies", "npm:26.6.3"], - ["jest-runner", "npm:26.6.3"], - ["jest-runtime", "npm:26.6.3"], - ["jest-snapshot", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jest-validate", "npm:26.6.2"], - ["jest-watcher", "npm:26.6.2"], - ["micromatch", "npm:4.0.2"], - ["p-each-series", "npm:2.1.0"], - ["rimraf", "npm:3.0.2"], - ["slash", "npm:3.0.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/environment", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-environment-npm-26.1.0-2c8bd3aa6d-944ef58527.zip/node_modules/@jest/environment/", - "packageDependencies": [ - ["@jest/environment", "npm:26.1.0"], - ["@jest/fake-timers", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["jest-mock", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-environment-npm-26.6.2-bc869bb23e-a4f4265468.zip/node_modules/@jest/environment/", - "packageDependencies": [ - ["@jest/environment", "npm:26.6.2"], - ["@jest/fake-timers", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["jest-mock", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/fake-timers", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-fake-timers-npm-26.1.0-cc72efb0d4-dcfd8199f2.zip/node_modules/@jest/fake-timers/", - "packageDependencies": [ - ["@jest/fake-timers", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["@sinonjs/fake-timers", "npm:6.0.1"], - ["jest-message-util", "npm:26.1.0"], - ["jest-mock", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-fake-timers-npm-26.6.2-511850bedc-a82aa6d2f3.zip/node_modules/@jest/fake-timers/", - "packageDependencies": [ - ["@jest/fake-timers", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@sinonjs/fake-timers", "npm:6.0.1"], - ["@types/node", "npm:14.0.27"], - ["jest-message-util", "npm:26.6.2"], - ["jest-mock", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/globals", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-globals-npm-26.1.0-72303ab9f8-51e4298dd2.zip/node_modules/@jest/globals/", - "packageDependencies": [ - ["@jest/globals", "npm:26.1.0"], - ["@jest/environment", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["expect", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-globals-npm-26.6.2-8ad9bc1dd5-d8f68a24ad.zip/node_modules/@jest/globals/", - "packageDependencies": [ - ["@jest/globals", "npm:26.6.2"], - ["@jest/environment", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["expect", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/reporters", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-reporters-npm-26.1.0-7f0071f612-ddbaa926a5.zip/node_modules/@jest/reporters/", - "packageDependencies": [ - ["@jest/reporters", "npm:26.1.0"], - ["@bcoe/v8-coverage", "npm:0.2.3"], - ["@jest/console", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/transform", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["collect-v8-coverage", "npm:1.0.1"], - ["exit", "npm:0.1.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["istanbul-lib-coverage", "npm:3.0.0"], - ["istanbul-lib-instrument", "npm:4.0.3"], - ["istanbul-lib-report", "npm:3.0.0"], - ["istanbul-lib-source-maps", "npm:4.0.0"], - ["istanbul-reports", "npm:3.0.2"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-resolve", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-worker", "npm:26.1.0"], - ["node-notifier", "npm:7.0.2"], - ["slash", "npm:3.0.0"], - ["source-map", "npm:0.6.1"], - ["string-length", "npm:4.0.1"], - ["terminal-link", "npm:2.1.1"], - ["v8-to-istanbul", "npm:4.1.4"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-reporters-npm-26.6.2-d75b358f51-86ed8563dd.zip/node_modules/@jest/reporters/", - "packageDependencies": [ - ["@jest/reporters", "npm:26.6.2"], - ["@bcoe/v8-coverage", "npm:0.2.3"], - ["@jest/console", "npm:26.6.2"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/transform", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["collect-v8-coverage", "npm:1.0.1"], - ["exit", "npm:0.1.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["istanbul-lib-coverage", "npm:3.0.0"], - ["istanbul-lib-instrument", "npm:4.0.3"], - ["istanbul-lib-report", "npm:3.0.0"], - ["istanbul-lib-source-maps", "npm:4.0.0"], - ["istanbul-reports", "npm:3.0.2"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-resolve", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jest-worker", "npm:26.6.2"], - ["node-notifier", "npm:8.0.2"], - ["slash", "npm:3.0.0"], - ["source-map", "npm:0.6.1"], - ["string-length", "npm:4.0.1"], - ["terminal-link", "npm:2.1.1"], - ["v8-to-istanbul", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/source-map", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-source-map-npm-26.1.0-7c05504c9d-f2d1d8cee4.zip/node_modules/@jest/source-map/", - "packageDependencies": [ - ["@jest/source-map", "npm:26.1.0"], - ["callsites", "npm:3.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-source-map-npm-26.6.2-a3b9d7d3b0-9a6d3e6506.zip/node_modules/@jest/source-map/", - "packageDependencies": [ - ["@jest/source-map", "npm:26.6.2"], - ["callsites", "npm:3.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/test-result", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-test-result-npm-26.1.0-50b04bf6f7-e399e0d76b.zip/node_modules/@jest/test-result/", - "packageDependencies": [ - ["@jest/test-result", "npm:26.1.0"], - ["@jest/console", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["collect-v8-coverage", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-test-result-npm-26.6.2-7ffd75a97e-0ecd35212b.zip/node_modules/@jest/test-result/", - "packageDependencies": [ - ["@jest/test-result", "npm:26.6.2"], - ["@jest/console", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["collect-v8-coverage", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/test-sequencer", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-test-sequencer-npm-26.1.0-be37c287d8-3e22753891.zip/node_modules/@jest/test-sequencer/", - "packageDependencies": [ - ["@jest/test-sequencer", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-runner", "npm:26.1.0"], - ["jest-runtime", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/@jest-test-sequencer-npm-26.6.3-04c59ff624-c0c2c7917a.zip/node_modules/@jest/test-sequencer/", - "packageDependencies": [ - ["@jest/test-sequencer", "npm:26.6.3"], - ["@jest/test-result", "npm:26.6.2"], - ["graceful-fs", "npm:4.2.4"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-runner", "npm:26.6.3"], - ["jest-runtime", "npm:26.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/transform", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-transform-npm-26.1.0-911cc277e4-0cb99690a1.zip/node_modules/@jest/transform/", - "packageDependencies": [ - ["@jest/transform", "npm:26.1.0"], - ["@babel/core", "npm:7.10.5"], - ["@jest/types", "npm:26.1.0"], - ["babel-plugin-istanbul", "npm:6.0.0"], - ["chalk", "npm:4.1.0"], - ["convert-source-map", "npm:1.7.0"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-util", "npm:26.1.0"], - ["micromatch", "npm:4.0.2"], - ["pirates", "npm:4.0.1"], - ["slash", "npm:3.0.0"], - ["source-map", "npm:0.6.1"], - ["write-file-atomic", "npm:3.0.3"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-transform-npm-26.6.2-151c44db49-28e97c9eb8.zip/node_modules/@jest/transform/", - "packageDependencies": [ - ["@jest/transform", "npm:26.6.2"], - ["@babel/core", "npm:7.10.5"], - ["@jest/types", "npm:26.6.2"], - ["babel-plugin-istanbul", "npm:6.0.0"], - ["chalk", "npm:4.1.0"], - ["convert-source-map", "npm:1.7.0"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-util", "npm:26.6.2"], - ["micromatch", "npm:4.0.2"], - ["pirates", "npm:4.0.1"], - ["slash", "npm:3.0.0"], - ["source-map", "npm:0.6.1"], - ["write-file-atomic", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@jest/types", [ - ["npm:25.5.0", { - "packageLocation": "./.yarn/cache/@jest-types-npm-25.5.0-45f0640591-33ad68320e.zip/node_modules/@jest/types/", - "packageDependencies": [ - ["@jest/types", "npm:25.5.0"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["@types/istanbul-reports", "npm:1.1.2"], - ["@types/yargs", "npm:15.0.5"], - ["chalk", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/@jest-types-npm-26.1.0-07270e1c75-8676c8bb0e.zip/node_modules/@jest/types/", - "packageDependencies": [ - ["@jest/types", "npm:26.1.0"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["@types/istanbul-reports", "npm:1.1.2"], - ["@types/yargs", "npm:15.0.5"], - ["chalk", "npm:4.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.3.0", { - "packageLocation": "./.yarn/cache/@jest-types-npm-26.3.0-e431bc9d13-151547a8fd.zip/node_modules/@jest/types/", - "packageDependencies": [ - ["@jest/types", "npm:26.3.0"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["@types/istanbul-reports", "npm:3.0.0"], - ["@types/node", "npm:14.0.27"], - ["@types/yargs", "npm:15.0.5"], - ["chalk", "npm:4.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/@jest-types-npm-26.6.2-fca9877d98-5c511d7807.zip/node_modules/@jest/types/", - "packageDependencies": [ - ["@jest/types", "npm:26.6.2"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["@types/istanbul-reports", "npm:3.0.0"], - ["@types/node", "npm:14.0.27"], - ["@types/yargs", "npm:15.0.5"], - ["chalk", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@mrmlnc/readdir-enhanced", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/@mrmlnc-readdir-enhanced-npm-2.2.1-5286808663-e01193b783.zip/node_modules/@mrmlnc/readdir-enhanced/", - "packageDependencies": [ - ["@mrmlnc/readdir-enhanced", "npm:2.2.1"], - ["call-me-maybe", "npm:1.0.1"], - ["glob-to-regexp", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["@next/env", [ - ["npm:10.0.5", { - "packageLocation": "./.yarn/cache/@next-env-npm-10.0.5-e82ce9de45-11479ceb24.zip/node_modules/@next/env/", - "packageDependencies": [ - ["@next/env", "npm:10.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["@next/polyfill-module", [ - ["npm:10.0.5", { - "packageLocation": "./.yarn/cache/@next-polyfill-module-npm-10.0.5-6dbf040c0f-8147e6319a.zip/node_modules/@next/polyfill-module/", - "packageDependencies": [ - ["@next/polyfill-module", "npm:10.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["@next/react-dev-overlay", [ - ["npm:10.0.5", { - "packageLocation": "./.yarn/cache/@next-react-dev-overlay-npm-10.0.5-ca540f1b0f-6872e5bc89.zip/node_modules/@next/react-dev-overlay/", - "packageDependencies": [ - ["@next/react-dev-overlay", "npm:10.0.5"] - ], - "linkType": "SOFT", - }], - ["npm:9.4.2", { - "packageLocation": "./.yarn/cache/@next-react-dev-overlay-npm-9.4.2-f682087cb5-72db3ab958.zip/node_modules/@next/react-dev-overlay/", - "packageDependencies": [ - ["@next/react-dev-overlay", "npm:9.4.2"] - ], - "linkType": "SOFT", - }], - ["npm:9.5.1", { - "packageLocation": "./.yarn/cache/@next-react-dev-overlay-npm-9.5.1-10410bae0e-524c91fe62.zip/node_modules/@next/react-dev-overlay/", - "packageDependencies": [ - ["@next/react-dev-overlay", "npm:9.5.1"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5", { - "packageLocation": "./.yarn/$$virtual/@next-react-dev-overlay-virtual-05cd8aeb53/0/cache/@next-react-dev-overlay-npm-10.0.5-ca540f1b0f-6872e5bc89.zip/node_modules/@next/react-dev-overlay/", - "packageDependencies": [ - ["@next/react-dev-overlay", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5"], - ["@babel/code-frame", "npm:7.12.11"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/webpack", null], - ["anser", "npm:1.4.9"], - ["chalk", "npm:4.0.0"], - ["classnames", "npm:2.2.6"], - ["css.escape", "npm:1.5.1"], - ["data-uri-to-buffer", "npm:3.0.1"], - ["platform", "npm:1.3.6"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["shell-quote", "npm:1.7.2"], - ["source-map", "npm:0.8.0-beta.0"], - ["stacktrace-parser", "npm:0.1.10"], - ["strip-ansi", "npm:6.0.0"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "@types/webpack", - "react-dom", - "react", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1", { - "packageLocation": "./.yarn/$$virtual/@next-react-dev-overlay-virtual-6b47a90cd5/0/cache/@next-react-dev-overlay-npm-9.5.1-10410bae0e-524c91fe62.zip/node_modules/@next/react-dev-overlay/", - "packageDependencies": [ - ["@next/react-dev-overlay", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1"], - ["@babel/code-frame", "npm:7.8.3"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/webpack", null], - ["ally.js", "npm:1.4.1"], - ["anser", "npm:1.4.9"], - ["chalk", "npm:4.0.0"], - ["classnames", "npm:2.2.6"], - ["data-uri-to-buffer", "npm:3.0.0"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["shell-quote", "npm:1.7.2"], - ["source-map", "npm:0.8.0-beta.0"], - ["stacktrace-parser", "npm:0.1.10"], - ["strip-ansi", "npm:6.0.0"], - ["webpack", "npm:4.44.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "@types/webpack", - "react-dom", - "react", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2", { - "packageLocation": "./.yarn/$$virtual/@next-react-dev-overlay-virtual-aada581692/0/cache/@next-react-dev-overlay-npm-9.4.2-f682087cb5-72db3ab958.zip/node_modules/@next/react-dev-overlay/", - "packageDependencies": [ - ["@next/react-dev-overlay", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2"], - ["@babel/code-frame", "npm:7.8.3"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["ally.js", "npm:1.4.1"], - ["anser", "npm:1.4.9"], - ["chalk", "npm:4.0.0"], - ["classnames", "npm:2.2.6"], - ["data-uri-to-buffer", "npm:3.0.0"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["shell-quote", "npm:1.7.2"], - ["source-map", "npm:0.8.0-beta.0"], - ["stacktrace-parser", "npm:0.1.10"], - ["strip-ansi", "npm:6.0.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "react-dom", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@next/react-refresh-utils", [ - ["npm:10.0.5", { - "packageLocation": "./.yarn/cache/@next-react-refresh-utils-npm-10.0.5-704cdafec6-6cfdfd6e52.zip/node_modules/@next/react-refresh-utils/", - "packageDependencies": [ - ["@next/react-refresh-utils", "npm:10.0.5"] - ], - "linkType": "SOFT", - }], - ["npm:9.4.2", { - "packageLocation": "./.yarn/cache/@next-react-refresh-utils-npm-9.4.2-a4fd295d9d-7bb8fa4063.zip/node_modules/@next/react-refresh-utils/", - "packageDependencies": [ - ["@next/react-refresh-utils", "npm:9.4.2"] - ], - "linkType": "SOFT", - }], - ["npm:9.5.1", { - "packageLocation": "./.yarn/cache/@next-react-refresh-utils-npm-9.5.1-61f8ca85a7-53387312a9.zip/node_modules/@next/react-refresh-utils/", - "packageDependencies": [ - ["@next/react-refresh-utils", "npm:9.5.1"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5", { - "packageLocation": "./.yarn/$$virtual/@next-react-refresh-utils-virtual-52f8f4e49f/0/cache/@next-react-refresh-utils-npm-10.0.5-704cdafec6-6cfdfd6e52.zip/node_modules/@next/react-refresh-utils/", - "packageDependencies": [ - ["@next/react-refresh-utils", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5"], - ["@types/react-refresh", null], - ["@types/webpack", null], - ["react-refresh", "npm:0.8.3"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"] - ], - "packagePeers": [ - "@types/react-refresh", - "@types/webpack", - "react-refresh", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1", { - "packageLocation": "./.yarn/$$virtual/@next-react-refresh-utils-virtual-0d900127b3/0/cache/@next-react-refresh-utils-npm-9.5.1-61f8ca85a7-53387312a9.zip/node_modules/@next/react-refresh-utils/", - "packageDependencies": [ - ["@next/react-refresh-utils", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1"], - ["@types/react-refresh", null], - ["@types/webpack", null], - ["react-refresh", "npm:0.8.3"], - ["webpack", "npm:4.44.0"] - ], - "packagePeers": [ - "@types/react-refresh", - "@types/webpack", - "react-refresh", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2", { - "packageLocation": "./.yarn/$$virtual/@next-react-refresh-utils-virtual-8ce35b29e6/0/cache/@next-react-refresh-utils-npm-9.4.2-a4fd295d9d-7bb8fa4063.zip/node_modules/@next/react-refresh-utils/", - "packageDependencies": [ - ["@next/react-refresh-utils", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2"], - ["@types/react-refresh", null], - ["@types/webpack", null], - ["react-refresh", "npm:0.8.2"], - ["webpack", "npm:4.43.0"] - ], - "packagePeers": [ - "@types/react-refresh", - "@types/webpack", - "react-refresh", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["@nodelib/fs.scandir", [ - ["npm:2.1.3", { - "packageLocation": "./.yarn/cache/@nodelib-fs.scandir-npm-2.1.3-92e0b8f0d5-1f100655dd.zip/node_modules/@nodelib/fs.scandir/", - "packageDependencies": [ - ["@nodelib/fs.scandir", "npm:2.1.3"], - ["@nodelib/fs.stat", "npm:2.0.3"], - ["run-parallel", "npm:1.1.9"] - ], - "linkType": "HARD", - }] - ]], - ["@nodelib/fs.stat", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-1.1.3-95bc1892a0-351499088e.zip/node_modules/@nodelib/fs.stat/", - "packageDependencies": [ - ["@nodelib/fs.stat", "npm:1.1.3"] - ], - "linkType": "HARD", - }], - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/@nodelib-fs.stat-npm-2.0.3-be9eaa5ef7-1bfdb2f419.zip/node_modules/@nodelib/fs.stat/", - "packageDependencies": [ - ["@nodelib/fs.stat", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@nodelib/fs.walk", [ - ["npm:1.2.4", { - "packageLocation": "./.yarn/cache/@nodelib-fs.walk-npm-1.2.4-1ae6c97d00-f4bffba16c.zip/node_modules/@nodelib/fs.walk/", - "packageDependencies": [ - ["@nodelib/fs.walk", "npm:1.2.4"], - ["@nodelib/fs.scandir", "npm:2.1.3"], - ["fastq", "npm:1.8.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/auth-app", [ - ["npm:2.10.0", { - "packageLocation": "./.yarn/cache/@octokit-auth-app-npm-2.10.0-a144f6f44b-dc1f5fcd7e.zip/node_modules/@octokit/auth-app/", - "packageDependencies": [ - ["@octokit/auth-app", "npm:2.10.0"], - ["@octokit/request", "npm:5.4.9"], - ["@octokit/request-error", "npm:2.0.2"], - ["@octokit/types", "npm:5.5.0"], - ["@types/lru-cache", "npm:5.1.0"], - ["deprecation", "npm:2.3.1"], - ["lru-cache", "npm:6.0.0"], - ["universal-github-app-jwt", "npm:1.1.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/auth-token", [ - ["npm:2.4.2", { - "packageLocation": "./.yarn/cache/@octokit-auth-token-npm-2.4.2-71ed1e5725-e3347630bb.zip/node_modules/@octokit/auth-token/", - "packageDependencies": [ - ["@octokit/auth-token", "npm:2.4.2"], - ["@octokit/types", "npm:5.5.0"] - ], - "linkType": "HARD", - }], - ["npm:2.4.5", { - "packageLocation": "./.yarn/cache/@octokit-auth-token-npm-2.4.5-91cd7149bb-4cd8ef3bc0.zip/node_modules/@octokit/auth-token/", - "packageDependencies": [ - ["@octokit/auth-token", "npm:2.4.5"], - ["@octokit/types", "npm:6.12.2"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/core", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/@octokit-core-npm-3.2.0-394bb982d4-7a6c5e4466.zip/node_modules/@octokit/core/", - "packageDependencies": [ - ["@octokit/core", "npm:3.2.0"], - ["@octokit/auth-token", "npm:2.4.2"], - ["@octokit/graphql", "npm:4.5.6"], - ["@octokit/request", "npm:5.4.9"], - ["@octokit/types", "npm:5.5.0"], - ["before-after-hook", "npm:2.1.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/@octokit-core-npm-3.3.0-b331a83789-76015d8515.zip/node_modules/@octokit/core/", - "packageDependencies": [ - ["@octokit/core", "npm:3.3.0"], - ["@octokit/auth-token", "npm:2.4.5"], - ["@octokit/graphql", "npm:4.6.1"], - ["@octokit/request", "npm:5.4.14"], - ["@octokit/request-error", "npm:2.0.5"], - ["@octokit/types", "npm:6.12.2"], - ["before-after-hook", "npm:2.2.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/endpoint", [ - ["npm:6.0.8", { - "packageLocation": "./.yarn/cache/@octokit-endpoint-npm-6.0.8-e4f13e2069-9aee14e175.zip/node_modules/@octokit/endpoint/", - "packageDependencies": [ - ["@octokit/endpoint", "npm:6.0.8"], - ["@octokit/types", "npm:5.5.0"], - ["is-plain-object", "npm:5.0.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/graphql", [ - ["npm:4.5.6", { - "packageLocation": "./.yarn/cache/@octokit-graphql-npm-4.5.6-53e3d97de0-22456d3ac8.zip/node_modules/@octokit/graphql/", - "packageDependencies": [ - ["@octokit/graphql", "npm:4.5.6"], - ["@octokit/request", "npm:5.4.9"], - ["@octokit/types", "npm:5.5.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.6.1", { - "packageLocation": "./.yarn/cache/@octokit-graphql-npm-4.6.1-b0d2b63384-bcac6e3d90.zip/node_modules/@octokit/graphql/", - "packageDependencies": [ - ["@octokit/graphql", "npm:4.6.1"], - ["@octokit/request", "npm:5.4.9"], - ["@octokit/types", "npm:6.12.2"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/openapi-types", [ - ["npm:5.3.2", { - "packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-5.3.2-f5b8c2e3e0-5c5f2f2f6e.zip/node_modules/@octokit/openapi-types/", - "packageDependencies": [ - ["@octokit/openapi-types", "npm:5.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/plugin-paginate-rest", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-1.1.2-b0b3e646dc-3a60026e4c.zip/node_modules/@octokit/plugin-paginate-rest/", - "packageDependencies": [ - ["@octokit/plugin-paginate-rest", "npm:1.1.2"], - ["@octokit/types", "npm:2.16.2"] - ], - "linkType": "HARD", - }], - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-2.4.0-ae5b5835bf-547d66b14e.zip/node_modules/@octokit/plugin-paginate-rest/", - "packageDependencies": [ - ["@octokit/plugin-paginate-rest", "npm:2.4.0"] - ], - "linkType": "SOFT", - }], - ["virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.4.0", { - "packageLocation": "./.yarn/$$virtual/@octokit-plugin-paginate-rest-virtual-27ff16ba6f/0/cache/@octokit-plugin-paginate-rest-npm-2.4.0-ae5b5835bf-547d66b14e.zip/node_modules/@octokit/plugin-paginate-rest/", - "packageDependencies": [ - ["@octokit/plugin-paginate-rest", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.4.0"], - ["@octokit/core", "npm:3.2.0"], - ["@octokit/types", "npm:5.5.0"], - ["@types/octokit__core", null] - ], - "packagePeers": [ - "@octokit/core", - "@types/octokit__core" - ], - "linkType": "HARD", - }] - ]], - ["@octokit/plugin-request-log", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/@octokit-plugin-request-log-npm-1.0.2-e4bca3d662-c587973f42.zip/node_modules/@octokit/plugin-request-log/", - "packageDependencies": [ - ["@octokit/plugin-request-log", "npm:1.0.2"] - ], - "linkType": "SOFT", - }], - ["virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.2", { - "packageLocation": "./.yarn/$$virtual/@octokit-plugin-request-log-virtual-ae17a1fece/0/cache/@octokit-plugin-request-log-npm-1.0.2-e4bca3d662-c587973f42.zip/node_modules/@octokit/plugin-request-log/", - "packageDependencies": [ - ["@octokit/plugin-request-log", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.2"], - ["@octokit/core", "npm:3.2.0"], - ["@types/octokit__core", null] - ], - "packagePeers": [ - "@octokit/core", - "@types/octokit__core" - ], - "linkType": "HARD", - }], - ["virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:1.0.2", { - "packageLocation": "./.yarn/$$virtual/@octokit-plugin-request-log-virtual-8b613a8639/0/cache/@octokit-plugin-request-log-npm-1.0.2-e4bca3d662-c587973f42.zip/node_modules/@octokit/plugin-request-log/", - "packageDependencies": [ - ["@octokit/plugin-request-log", "virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:1.0.2"], - ["@octokit/core", "npm:3.3.0"], - ["@types/octokit__core", null] - ], - "packagePeers": [ - "@octokit/core", - "@types/octokit__core" - ], - "linkType": "HARD", - }] - ]], - ["@octokit/plugin-rest-endpoint-methods", [ - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-2.4.0-c786d75f5b-5b4673449f.zip/node_modules/@octokit/plugin-rest-endpoint-methods/", - "packageDependencies": [ - ["@octokit/plugin-rest-endpoint-methods", "npm:2.4.0"], - ["@octokit/types", "npm:2.16.2"], - ["deprecation", "npm:2.3.1"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-4.2.0-72a4a17ab8-4ab0c2eb8d.zip/node_modules/@octokit/plugin-rest-endpoint-methods/", - "packageDependencies": [ - ["@octokit/plugin-rest-endpoint-methods", "npm:4.2.0"], - ["@octokit/types", "npm:5.5.0"], - ["deprecation", "npm:2.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/request", [ - ["npm:5.4.14", { - "packageLocation": "./.yarn/cache/@octokit-request-npm-5.4.14-47e6e4e873-06aa040100.zip/node_modules/@octokit/request/", - "packageDependencies": [ - ["@octokit/request", "npm:5.4.14"], - ["@octokit/endpoint", "npm:6.0.8"], - ["@octokit/request-error", "npm:2.0.2"], - ["@octokit/types", "npm:6.12.2"], - ["deprecation", "npm:2.3.1"], - ["is-plain-object", "npm:5.0.0"], - ["node-fetch", "npm:2.6.1"], - ["once", "npm:1.4.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.4.9", { - "packageLocation": "./.yarn/cache/@octokit-request-npm-5.4.9-fbb56bc96e-0c62dac923.zip/node_modules/@octokit/request/", - "packageDependencies": [ - ["@octokit/request", "npm:5.4.9"], - ["@octokit/endpoint", "npm:6.0.8"], - ["@octokit/request-error", "npm:2.0.2"], - ["@octokit/types", "npm:5.5.0"], - ["deprecation", "npm:2.3.1"], - ["is-plain-object", "npm:5.0.0"], - ["node-fetch", "npm:2.6.1"], - ["once", "npm:1.4.0"], - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/request-error", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/@octokit-request-error-npm-1.2.1-0af51a468f-8612f7a037.zip/node_modules/@octokit/request-error/", - "packageDependencies": [ - ["@octokit/request-error", "npm:1.2.1"], - ["@octokit/types", "npm:2.16.2"], - ["deprecation", "npm:2.3.1"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/@octokit-request-error-npm-2.0.2-d8f7f2bfcf-3ba45b3179.zip/node_modules/@octokit/request-error/", - "packageDependencies": [ - ["@octokit/request-error", "npm:2.0.2"], - ["@octokit/types", "npm:5.5.0"], - ["deprecation", "npm:2.3.1"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.5", { - "packageLocation": "./.yarn/cache/@octokit-request-error-npm-2.0.5-cfd366d8eb-0d3a3103a5.zip/node_modules/@octokit/request-error/", - "packageDependencies": [ - ["@octokit/request-error", "npm:2.0.5"], - ["@octokit/types", "npm:6.12.2"], - ["deprecation", "npm:2.3.1"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/rest", [ - ["npm:16.43.2", { - "packageLocation": "./.yarn/cache/@octokit-rest-npm-16.43.2-dd2de884c3-d7a7a7cf5a.zip/node_modules/@octokit/rest/", - "packageDependencies": [ - ["@octokit/rest", "npm:16.43.2"], - ["@octokit/auth-token", "npm:2.4.2"], - ["@octokit/core", "npm:3.3.0"], - ["@octokit/plugin-paginate-rest", "npm:1.1.2"], - ["@octokit/plugin-request-log", "virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:1.0.2"], - ["@octokit/plugin-rest-endpoint-methods", "npm:2.4.0"], - ["@octokit/request", "npm:5.4.9"], - ["@octokit/request-error", "npm:1.2.1"], - ["atob-lite", "npm:2.0.0"], - ["before-after-hook", "npm:2.1.0"], - ["btoa-lite", "npm:1.0.0"], - ["deprecation", "npm:2.3.1"], - ["graphql", "npm:14.7.0"], - ["lodash.get", "npm:4.4.2"], - ["lodash.set", "npm:4.3.2"], - ["lodash.uniq", "npm:4.5.0"], - ["octokit-pagination-methods", "npm:1.1.0"], - ["once", "npm:1.4.0"], - ["subscriptions-transport-ws", "virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:0.9.18"], - ["universal-user-agent", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["npm:18.0.6", { - "packageLocation": "./.yarn/cache/@octokit-rest-npm-18.0.6-8101dad60c-3353b232ff.zip/node_modules/@octokit/rest/", - "packageDependencies": [ - ["@octokit/rest", "npm:18.0.6"], - ["@octokit/core", "npm:3.2.0"], - ["@octokit/plugin-paginate-rest", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.4.0"], - ["@octokit/plugin-request-log", "virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.2"], - ["@octokit/plugin-rest-endpoint-methods", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@octokit/types", [ - ["npm:2.16.2", { - "packageLocation": "./.yarn/cache/@octokit-types-npm-2.16.2-67cc6da7f2-0cdd051034.zip/node_modules/@octokit/types/", - "packageDependencies": [ - ["@octokit/types", "npm:2.16.2"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }], - ["npm:5.5.0", { - "packageLocation": "./.yarn/cache/@octokit-types-npm-5.5.0-9fc65c7f63-ef5429c90b.zip/node_modules/@octokit/types/", - "packageDependencies": [ - ["@octokit/types", "npm:5.5.0"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }], - ["npm:6.12.2", { - "packageLocation": "./.yarn/cache/@octokit-types-npm-6.12.2-93c422055a-d96bb9fae7.zip/node_modules/@octokit/types/", - "packageDependencies": [ - ["@octokit/types", "npm:6.12.2"], - ["@octokit/openapi-types", "npm:5.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["@opentelemetry/api", [ - ["npm:0.14.0", { - "packageLocation": "./.yarn/cache/@opentelemetry-api-npm-0.14.0-32418757fd-ce601aba39.zip/node_modules/@opentelemetry/api/", - "packageDependencies": [ - ["@opentelemetry/api", "npm:0.14.0"], - ["@opentelemetry/context-base", "npm:0.14.0"] - ], - "linkType": "HARD", - }] - ]], - ["@opentelemetry/context-base", [ - ["npm:0.14.0", { - "packageLocation": "./.yarn/cache/@opentelemetry-context-base-npm-0.14.0-4989dcd15f-f1e637a191.zip/node_modules/@opentelemetry/context-base/", - "packageDependencies": [ - ["@opentelemetry/context-base", "npm:0.14.0"] - ], - "linkType": "HARD", - }] - ]], - ["@rollup/plugin-node-resolve", [ - ["npm:11.2.0", { - "packageLocation": "./.yarn/cache/@rollup-plugin-node-resolve-npm-11.2.0-1858611eb0-173bb5822b.zip/node_modules/@rollup/plugin-node-resolve/", - "packageDependencies": [ - ["@rollup/plugin-node-resolve", "npm:11.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:cada2ee815a8bb9867bc6df56f6788ca4baf721877021470643cf1a10fa7eba82dd37f67ca56abb44a0f639613382e6443afc40fbe67a4ad334cfe4cb2e0fe13#npm:11.2.0", { - "packageLocation": "./.yarn/$$virtual/@rollup-plugin-node-resolve-virtual-5cf8352cc9/0/cache/@rollup-plugin-node-resolve-npm-11.2.0-1858611eb0-173bb5822b.zip/node_modules/@rollup/plugin-node-resolve/", - "packageDependencies": [ - ["@rollup/plugin-node-resolve", "virtual:cada2ee815a8bb9867bc6df56f6788ca4baf721877021470643cf1a10fa7eba82dd37f67ca56abb44a0f639613382e6443afc40fbe67a4ad334cfe4cb2e0fe13#npm:11.2.0"], - ["@rollup/pluginutils", "virtual:5cf8352cc913cf87e832dd22564fd4857eb4eef83ac9d05039b36c768bda82b22df4b8b0677ce89a2ca55f40b51571c6e4bc946d40cc45d60079eb20d93361f1#npm:3.1.0"], - ["@types/resolve", "npm:1.17.1"], - ["@types/rollup", null], - ["builtin-modules", "npm:3.2.0"], - ["deepmerge", "npm:4.2.2"], - ["is-module", "npm:1.0.0"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["rollup", "npm:2.40.0"] - ], - "packagePeers": [ - "@types/rollup", - "rollup" - ], - "linkType": "HARD", - }] - ]], - ["@rollup/pluginutils", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/@rollup-pluginutils-npm-3.1.0-b44b222e7d-45da6411e0.zip/node_modules/@rollup/pluginutils/", - "packageDependencies": [ - ["@rollup/pluginutils", "npm:3.1.0"] - ], - "linkType": "SOFT", - }], - ["virtual:5cf8352cc913cf87e832dd22564fd4857eb4eef83ac9d05039b36c768bda82b22df4b8b0677ce89a2ca55f40b51571c6e4bc946d40cc45d60079eb20d93361f1#npm:3.1.0", { - "packageLocation": "./.yarn/$$virtual/@rollup-pluginutils-virtual-d9eeb86a93/0/cache/@rollup-pluginutils-npm-3.1.0-b44b222e7d-45da6411e0.zip/node_modules/@rollup/pluginutils/", - "packageDependencies": [ - ["@rollup/pluginutils", "virtual:5cf8352cc913cf87e832dd22564fd4857eb4eef83ac9d05039b36c768bda82b22df4b8b0677ce89a2ca55f40b51571c6e4bc946d40cc45d60079eb20d93361f1#npm:3.1.0"], - ["@types/estree", "npm:0.0.39"], - ["@types/rollup", null], - ["estree-walker", "npm:1.0.1"], - ["picomatch", "npm:2.2.2"], - ["rollup", "npm:2.40.0"] - ], - "packagePeers": [ - "@types/rollup", - "rollup" - ], - "linkType": "HARD", - }] - ]], - ["@sambego/storybook-styles", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/@sambego-storybook-styles-npm-1.0.0-cd66c7139e-b3c03c8f99.zip/node_modules/@sambego/storybook-styles/", - "packageDependencies": [ - ["@sambego/storybook-styles", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@samverschueren/stream-to-observable", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/@samverschueren-stream-to-observable-npm-0.3.0-3da2ac7de0-70b3766c46.zip/node_modules/@samverschueren/stream-to-observable/", - "packageDependencies": [ - ["@samverschueren/stream-to-observable", "npm:0.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.3.0", { - "packageLocation": "./.yarn/$$virtual/@samverschueren-stream-to-observable-virtual-d72f438b4b/0/cache/@samverschueren-stream-to-observable-npm-0.3.0-3da2ac7de0-70b3766c46.zip/node_modules/@samverschueren/stream-to-observable/", - "packageDependencies": [ - ["@samverschueren/stream-to-observable", "virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.3.0"], - ["any-observable", "virtual:d72f438b4b2c02cba8c9422efe9af9e0755567b346f12e7152df53f6f348d8a2c444986b3521966cafae9d9dbb5b3e0c8ac16137f1c4251596b45bdf8129a3cf#npm:0.3.0"], - ["rxjs", "npm:6.6.0"], - ["zenObservable", null] - ], - "packagePeers": [ - "rxjs", - "zenObservable" - ], - "linkType": "HARD", - }] - ]], - ["@sindresorhus/is", [ - ["npm:0.14.0", { - "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-da26389d6e.zip/node_modules/@sindresorhus/is/", - "packageDependencies": [ - ["@sindresorhus/is", "npm:0.14.0"] - ], - "linkType": "HARD", - }], - ["npm:0.7.0", { - "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-0.7.0-306ce07075-643ca18f80.zip/node_modules/@sindresorhus/is/", - "packageDependencies": [ - ["@sindresorhus/is", "npm:0.7.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/@sindresorhus-is-npm-3.1.0-91502099ae-36aa125d24.zip/node_modules/@sindresorhus/is/", - "packageDependencies": [ - ["@sindresorhus/is", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@sinonjs/commons", [ - ["npm:1.8.1", { - "packageLocation": "./.yarn/cache/@sinonjs-commons-npm-1.8.1-5b909def60-adbf84a27b.zip/node_modules/@sinonjs/commons/", - "packageDependencies": [ - ["@sinonjs/commons", "npm:1.8.1"], - ["type-detect", "npm:4.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["@sinonjs/fake-timers", [ - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/@sinonjs-fake-timers-npm-6.0.1-cebf4d0bfb-64458b9087.zip/node_modules/@sinonjs/fake-timers/", - "packageDependencies": [ - ["@sinonjs/fake-timers", "npm:6.0.1"], - ["@sinonjs/commons", "npm:1.8.1"] - ], - "linkType": "HARD", - }] - ]], - ["@szmarczak/http-timer", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-a46ec85423.zip/node_modules/@szmarczak/http-timer/", - "packageDependencies": [ - ["@szmarczak/http-timer", "npm:1.1.2"], - ["defer-to-connect", "npm:1.1.3"] - ], - "linkType": "HARD", - }], - ["npm:4.0.5", { - "packageLocation": "./.yarn/cache/@szmarczak-http-timer-npm-4.0.5-03463d10ab-13d8f71dbd.zip/node_modules/@szmarczak/http-timer/", - "packageDependencies": [ - ["@szmarczak/http-timer", "npm:4.0.5"], - ["defer-to-connect", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@tailwindcss/custom-forms", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/@tailwindcss-custom-forms-npm-0.2.1-128e89db00-ceb3dfa2a7.zip/node_modules/@tailwindcss/custom-forms/", - "packageDependencies": [ - ["@tailwindcss/custom-forms", "npm:0.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:4435316c1e84bacbf4420f328c9a7d9ac854d02e794a8fc6e2114aefec188a15fdf4fecfdc950fcb6de7583f8a457fcb72e7b1caf1d47eede80d3b2ee30b0708#npm:0.2.1", { - "packageLocation": "./.yarn/$$virtual/@tailwindcss-custom-forms-virtual-6c1b05046c/0/cache/@tailwindcss-custom-forms-npm-0.2.1-128e89db00-ceb3dfa2a7.zip/node_modules/@tailwindcss/custom-forms/", - "packageDependencies": [ - ["@tailwindcss/custom-forms", "virtual:4435316c1e84bacbf4420f328c9a7d9ac854d02e794a8fc6e2114aefec188a15fdf4fecfdc950fcb6de7583f8a457fcb72e7b1caf1d47eede80d3b2ee30b0708#npm:0.2.1"], - ["@types/tailwindcss", null], - ["lodash", "npm:4.17.19"], - ["mini-svg-data-uri", "npm:1.2.3"], - ["tailwindcss", "npm:1.6.0"], - ["traverse", "npm:0.6.6"] - ], - "packagePeers": [ - "@types/tailwindcss", - "tailwindcss" - ], - "linkType": "HARD", - }] - ]], - ["@tailwindcss/ui", [ - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/@tailwindcss-ui-npm-0.3.1-cb39406d44-72021b052e.zip/node_modules/@tailwindcss/ui/", - "packageDependencies": [ - ["@tailwindcss/ui", "npm:0.3.1"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1", { - "packageLocation": "./.yarn/$$virtual/@tailwindcss-ui-virtual-4435316c1e/0/cache/@tailwindcss-ui-npm-0.3.1-cb39406d44-72021b052e.zip/node_modules/@tailwindcss/ui/", - "packageDependencies": [ - ["@tailwindcss/ui", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1"], - ["@tailwindcss/custom-forms", "virtual:4435316c1e84bacbf4420f328c9a7d9ac854d02e794a8fc6e2114aefec188a15fdf4fecfdc950fcb6de7583f8a457fcb72e7b1caf1d47eede80d3b2ee30b0708#npm:0.2.1"], - ["@types/tailwindcss", null], - ["hex-rgb", "npm:4.1.0"], - ["postcss-selector-parser", "npm:6.0.2"], - ["tailwindcss", "npm:1.6.0"] - ], - "packagePeers": [ - "@types/tailwindcss", - "tailwindcss" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/alerts", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-alerts-npm-0.31.0-30cccb4f38-f86ddd2494.zip/node_modules/@tinacms/alerts/", - "packageDependencies": [ - ["@tinacms/alerts", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-alerts-virtual-9746454700/0/cache/@tinacms-alerts-npm-0.31.0-30cccb4f38-f86ddd2494.zip/node_modules/@tinacms/alerts/", - "packageDependencies": [ - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@types/tinacms__core", null] - ], - "packagePeers": [ - "@tinacms/core", - "@types/tinacms__core" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/core", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-core-npm-0.31.0-df4184f33f-ecab9ab7d8.zip/node_modules/@tinacms/core/", - "packageDependencies": [ - ["@tinacms/core", "npm:0.31.0"] - ], - "linkType": "HARD", - }], - ["npm:0.32.0", { - "packageLocation": "./.yarn/cache/@tinacms-core-npm-0.32.0-398240ed83-9cf5f13854.zip/node_modules/@tinacms/core/", - "packageDependencies": [ - ["@tinacms/core", "npm:0.32.0"] - ], - "linkType": "HARD", - }], - ["npm:0.9.0", { - "packageLocation": "./.yarn/cache/@tinacms-core-npm-0.9.0-e0f12301b8-9dbae9afb4.zip/node_modules/@tinacms/core/", - "packageDependencies": [ - ["@tinacms/core", "npm:0.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/fields", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/", - "packageDependencies": [ - ["@tinacms/fields", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-fields-virtual-3b432b9464/0/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/", - "packageDependencies": [ - ["@tinacms/fields", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@sambego/storybook-styles", "npm:1.0.0"], - ["@tinacms/form-builder", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-beautiful-dnd", null], - ["@types/react-dom", null], - ["@types/react-select", "npm:2.0.19"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__styles", null], - ["color-string", "npm:1.5.3"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-color", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-dropzone", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/styles", - "@types/prop-types", - "@types/react-beautiful-dnd", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__styles", - "prop-types", - "react-beautiful-dnd", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-fields-virtual-2d671f8976/0/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/", - "packageDependencies": [ - ["@tinacms/fields", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@sambego/storybook-styles", "npm:1.0.0"], - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-beautiful-dnd", null], - ["@types/react-dom", null], - ["@types/react-select", "npm:2.0.19"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__styles", null], - ["color-string", "npm:1.5.3"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-color", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-dropzone", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/styles", - "@types/prop-types", - "@types/react-beautiful-dnd", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__styles", - "prop-types", - "react-beautiful-dnd", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-fields-virtual-f71b608304/0/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/", - "packageDependencies": [ - ["@tinacms/fields", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@sambego/storybook-styles", "npm:1.0.0"], - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-beautiful-dnd", null], - ["@types/react-dom", null], - ["@types/react-select", "npm:2.0.19"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__styles", null], - ["color-string", "npm:1.5.3"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-color", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-dropzone", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/styles", - "@types/prop-types", - "@types/react-beautiful-dnd", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__styles", - "prop-types", - "react-beautiful-dnd", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/form-builder", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/", - "packageDependencies": [ - ["@tinacms/form-builder", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.32.0", { - "packageLocation": "./.yarn/cache/@tinacms-form-builder-npm-0.32.0-2d7405477c-7c7ed3758d.zip/node_modules/@tinacms/form-builder/", - "packageDependencies": [ - ["@tinacms/form-builder", "npm:0.32.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-form-builder-virtual-b9947bb0a4/0/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/", - "packageDependencies": [ - ["@tinacms/form-builder", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-final-form", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@types/final-form", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "final-form", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-form-builder-virtual-4dcd7060a2/0/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/", - "packageDependencies": [ - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-final-form", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@types/final-form", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "final-form", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-form-builder-virtual-297f469f88/0/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/", - "packageDependencies": [ - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-final-form", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@types/final-form", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "final-form", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:0.32.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-form-builder-virtual-0da5c6aeb3/0/cache/@tinacms-form-builder-npm-0.32.0-2d7405477c-7c7ed3758d.zip/node_modules/@tinacms/form-builder/", - "packageDependencies": [ - ["@tinacms/form-builder", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:0.32.0"], - ["@tinacms/forms", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0"], - ["@tinacms/react-core", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-final-form", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@types/final-form", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "final-form", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/forms", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-forms-npm-0.31.0-dbef5ad46e-1bf6a10bdf.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.32.0", { - "packageLocation": "./.yarn/cache/@tinacms-forms-npm-0.32.0-c31fdcff59-6481028d1f.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "npm:0.32.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.38.0", { - "packageLocation": "./.yarn/cache/@tinacms-forms-npm-0.38.0-61938be951-979495c7c6.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "npm:0.38.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.5.0", { - "packageLocation": "./.yarn/cache/@tinacms-forms-npm-0.5.0-12683c7358-5115898ec6.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "npm:0.5.0"] - ], - "linkType": "SOFT", - }], - ["virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-forms-virtual-dd459a67f7/0/cache/@tinacms-forms-npm-0.32.0-c31fdcff59-6481028d1f.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0"], - ["@types/react", "npm:16.9.43"], - ["final-form", "npm:4.19.1"], - ["final-form-arrays", "virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-forms-virtual-64a1756ac6/0/cache/@tinacms-forms-npm-0.31.0-dbef5ad46e-1bf6a10bdf.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/react", "npm:16.9.43"], - ["final-form", "npm:4.20.1"], - ["final-form-arrays", "virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-forms-virtual-16f39fd00e/0/cache/@tinacms-forms-npm-0.38.0-61938be951-979495c7c6.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@types/react", "npm:16.9.43"], - ["final-form", "npm:4.19.1"], - ["final-form-arrays", "virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:eb413aa78c45515cef3eebccf217565e6b0f8e8b59b1e3be1665449eab7cb981570903f7ab7d15ca68e05f7378ec31ed8c7789b03f3f5d070f5a62ce0bb9c6e3#npm:0.5.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-forms-virtual-9fa808ddc2/0/cache/@tinacms-forms-npm-0.5.0-12683c7358-5115898ec6.zip/node_modules/@tinacms/forms/", - "packageDependencies": [ - ["@tinacms/forms", "virtual:eb413aa78c45515cef3eebccf217565e6b0f8e8b59b1e3be1665449eab7cb981570903f7ab7d15ca68e05f7378ec31ed8c7789b03f3f5d070f5a62ce0bb9c6e3#npm:0.5.0"], - ["@types/react", "npm:16.9.43"], - ["final-form", "npm:4.20.1"], - ["final-form-arrays", "virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/icons", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-icons-npm-0.31.0-0aafa0a0ea-142ea1f364.zip/node_modules/@tinacms/icons/", - "packageDependencies": [ - ["@tinacms/icons", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.7.0", { - "packageLocation": "./.yarn/cache/@tinacms-icons-npm-0.7.0-4677f6ba67-d4880a2577.zip/node_modules/@tinacms/icons/", - "packageDependencies": [ - ["@tinacms/icons", "npm:0.7.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-icons-virtual-c84a3467a2/0/cache/@tinacms-icons-npm-0.31.0-0aafa0a0ea-142ea1f364.zip/node_modules/@tinacms/icons/", - "packageDependencies": [ - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-icons-virtual-ce0de6ef73/0/cache/@tinacms-icons-npm-0.7.0-4677f6ba67-d4880a2577.zip/node_modules/@tinacms/icons/", - "packageDependencies": [ - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-alerts", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/", - "packageDependencies": [ - ["@tinacms/react-alerts", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-alerts-virtual-087bbd636b/0/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/", - "packageDependencies": [ - ["@tinacms/react-alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__alerts", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/alerts", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react", - "@types/styled-components", - "@types/tinacms__alerts", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-alerts-virtual-06fe54a86e/0/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/", - "packageDependencies": [ - ["@tinacms/react-alerts", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__alerts", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/alerts", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react", - "@types/styled-components", - "@types/tinacms__alerts", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-alerts-virtual-cb78b640ea/0/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/", - "packageDependencies": [ - ["@tinacms/react-alerts", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__alerts", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/alerts", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react", - "@types/styled-components", - "@types/tinacms__alerts", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-core", [ - ["npm:0.2.13", { - "packageLocation": "./.yarn/cache/@tinacms-react-core-npm-0.2.13-6ad15fe210-a2fa479ff3.zip/node_modules/@tinacms/react-core/", - "packageDependencies": [ - ["@tinacms/react-core", "npm:0.2.13"] - ], - "linkType": "SOFT", - }], - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-core-npm-0.31.0-662a22091d-df7d9ee9cf.zip/node_modules/@tinacms/react-core/", - "packageDependencies": [ - ["@tinacms/react-core", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.32.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-core-npm-0.32.0-959031142e-8650d12a94.zip/node_modules/@tinacms/react-core/", - "packageDependencies": [ - ["@tinacms/react-core", "npm:0.32.0"] - ], - "linkType": "SOFT", - }], - ["virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-core-virtual-5a4a85fa3e/0/cache/@tinacms-react-core-npm-0.32.0-959031142e-8650d12a94.zip/node_modules/@tinacms/react-core/", - "packageDependencies": [ - ["@tinacms/react-core", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0"], - ["@tinacms/core", "npm:0.32.0"], - ["@tinacms/forms", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-core-virtual-7faa160b86/0/cache/@tinacms-react-core-npm-0.31.0-662a22091d-df7d9ee9cf.zip/node_modules/@tinacms/react-core/", - "packageDependencies": [ - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-core-virtual-eb413aa78c/0/cache/@tinacms-react-core-npm-0.2.13-6ad15fe210-a2fa479ff3.zip/node_modules/@tinacms/react-core/", - "packageDependencies": [ - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/core", "npm:0.9.0"], - ["@tinacms/forms", "virtual:eb413aa78c45515cef3eebccf217565e6b0f8e8b59b1e3be1665449eab7cb981570903f7ab7d15ca68e05f7378ec31ed8c7789b03f3f5d070f5a62ce0bb9c6e3#npm:0.5.0"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-forms", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["npm:0.32.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-forms-npm-0.32.0-80592336f5-72d188936b.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "npm:0.32.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-forms-virtual-0e28938c6e/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/final-form", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "final-form", - "prop-types", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-forms-virtual-9c101bc2dd/0/cache/@tinacms-react-forms-npm-0.32.0-80592336f5-72d188936b.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0"], - ["@tinacms/form-builder", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:0.32.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-modals", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/final-form", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "final-form", - "prop-types", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-forms-virtual-6d41a94fd6/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/final-form", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "final-form", - "prop-types", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-forms-virtual-7c1d8771fa/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-modals", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/final-form", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "final-form", - "prop-types", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-forms-virtual-7505813313/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/final-form", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "final-form", - "prop-types", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-forms-virtual-694916a241/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/", - "packageDependencies": [ - ["@tinacms/react-forms", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-modals", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/final-form", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/final-form", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "final-form", - "prop-types", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-modals", [ - ["npm:0.1.12", { - "packageLocation": "./.yarn/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "npm:0.1.12"] - ], - "linkType": "SOFT", - }], - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-modals-virtual-1a986ac7ad/0/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-modals-virtual-02c630c7e2/0/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-modals-virtual-24bdc8ebd1/0/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-modals-virtual-262216c786/0/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-modals-virtual-018b8454e4/0/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-modals-virtual-d88073254b/0/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/", - "packageDependencies": [ - ["@tinacms/react-modals", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__styles", null], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/styles", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__styles", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-screens", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/", - "packageDependencies": [ - ["@tinacms/react-screens", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-screens-virtual-5be71eb81e/0/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/", - "packageDependencies": [ - ["@tinacms/react-screens", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@types/react", "npm:16.9.43"], - ["@types/tinacms__core", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@tinacms/core", - "@tinacms/react-core", - "@tinacms/react-modals", - "@types/react", - "@types/tinacms__core", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "react" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-screens-virtual-2937bdd5a1/0/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/", - "packageDependencies": [ - ["@tinacms/react-screens", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@types/react", "npm:16.9.43"], - ["@types/tinacms__core", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@tinacms/core", - "@tinacms/react-core", - "@tinacms/react-modals", - "@types/react", - "@types/tinacms__core", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "react" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-screens-virtual-ea0b6da4b2/0/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/", - "packageDependencies": [ - ["@tinacms/react-screens", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@types/react", "npm:16.9.43"], - ["@types/tinacms__core", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-modals", null], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@tinacms/core", - "@tinacms/react-core", - "@tinacms/react-modals", - "@types/react", - "@types/tinacms__core", - "@types/tinacms__react-core", - "@types/tinacms__react-modals", - "react" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-sidebar", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/", - "packageDependencies": [ - ["@tinacms/react-sidebar", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-sidebar-virtual-ecf8bd2461/0/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/", - "packageDependencies": [ - ["@tinacms/react-sidebar", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/form-builder", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__react-screens", null], - ["@types/tinacms__styles", null], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/react-screens", - "@tinacms/styles", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__react-screens", - "@types/tinacms__styles", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-sidebar-virtual-d1cd418cda/0/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/", - "packageDependencies": [ - ["@tinacms/react-sidebar", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__react-screens", null], - ["@types/tinacms__styles", null], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/react-screens", - "@tinacms/styles", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__react-screens", - "@types/tinacms__styles", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-sidebar-virtual-30c2f67d1d/0/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/", - "packageDependencies": [ - ["@tinacms/react-sidebar", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__react-screens", null], - ["@types/tinacms__styles", null], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/react-screens", - "@tinacms/styles", - "@types/prop-types", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__react-screens", - "@types/tinacms__styles", - "prop-types", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/react-toolbar", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/", - "packageDependencies": [ - ["@tinacms/react-toolbar", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-toolbar-virtual-5690ff861e/0/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/", - "packageDependencies": [ - ["@tinacms/react-toolbar", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/fields", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-beautiful-dnd", null], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__react-screens", null], - ["@types/tinacms__styles", null], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/react-screens", - "@tinacms/styles", - "@types/prop-types", - "@types/react-beautiful-dnd", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__react-screens", - "@types/tinacms__styles", - "prop-types", - "react-beautiful-dnd", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-toolbar-virtual-2d1a2e9907/0/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/", - "packageDependencies": [ - ["@tinacms/react-toolbar", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/fields", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-beautiful-dnd", null], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__react-screens", null], - ["@types/tinacms__styles", null], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/react-screens", - "@tinacms/styles", - "@types/prop-types", - "@types/react-beautiful-dnd", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__react-screens", - "@types/tinacms__styles", - "prop-types", - "react-beautiful-dnd", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-react-toolbar-virtual-c2f001ed4c/0/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/", - "packageDependencies": [ - ["@tinacms/react-toolbar", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/fields", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-beautiful-dnd", null], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms__form-builder", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__react-screens", null], - ["@types/tinacms__styles", null], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@tinacms/form-builder", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/react-screens", - "@tinacms/styles", - "@types/prop-types", - "@types/react-beautiful-dnd", - "@types/react-dom", - "@types/react", - "@types/styled-components", - "@types/tinacms__form-builder", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__react-screens", - "@types/tinacms__styles", - "prop-types", - "react-beautiful-dnd", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@tinacms/styles", [ - ["npm:0.29.0", { - "packageLocation": "./.yarn/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/", - "packageDependencies": [ - ["@tinacms/styles", "npm:0.29.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-styles-virtual-4ec7d8fb8c/0/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/", - "packageDependencies": [ - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["react", "npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"], - ["webfontloader", "npm:1.6.28"] - ], - "packagePeers": [ - "@types/react", - "@types/styled-components", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-styles-virtual-3d8010decb/0/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/", - "packageDependencies": [ - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["react", "npm:16.13.1"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"], - ["webfontloader", "npm:1.6.28"] - ], - "packagePeers": [ - "@types/react", - "@types/styled-components", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0", { - "packageLocation": "./.yarn/$$virtual/@tinacms-styles-virtual-fe32c468c2/0/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/", - "packageDependencies": [ - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["react", "npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"], - ["webfontloader", "npm:1.6.28"] - ], - "packagePeers": [ - "@types/react", - "@types/styled-components", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__core", [ - ["npm:7.1.9", { - "packageLocation": "./.yarn/cache/@types-babel__core-npm-7.1.9-23e959fd72-251c4d3c2a.zip/node_modules/@types/babel__core/", - "packageDependencies": [ - ["@types/babel__core", "npm:7.1.9"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["@types/babel__generator", "npm:7.6.1"], - ["@types/babel__template", "npm:7.0.2"], - ["@types/babel__traverse", "npm:7.0.13"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__generator", [ - ["npm:7.6.1", { - "packageLocation": "./.yarn/cache/@types-babel__generator-npm-7.6.1-1afd3e1fa9-d9f19e0e47.zip/node_modules/@types/babel__generator/", - "packageDependencies": [ - ["@types/babel__generator", "npm:7.6.1"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__template", [ - ["npm:7.0.2", { - "packageLocation": "./.yarn/cache/@types-babel__template-npm-7.0.2-32d369837a-dd13bcf6f0.zip/node_modules/@types/babel__template/", - "packageDependencies": [ - ["@types/babel__template", "npm:7.0.2"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@types/babel__traverse", [ - ["npm:7.0.13", { - "packageLocation": "./.yarn/cache/@types-babel__traverse-npm-7.0.13-ada6dc334d-25d3cf96fc.zip/node_modules/@types/babel__traverse/", - "packageDependencies": [ - ["@types/babel__traverse", "npm:7.0.13"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }], - ["npm:7.11.0", { - "packageLocation": "./.yarn/cache/@types-babel__traverse-npm-7.11.0-b03ec93f29-cfb83f1633.zip/node_modules/@types/babel__traverse/", - "packageDependencies": [ - ["@types/babel__traverse", "npm:7.11.0"], - ["@babel/types", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["@types/body-parser", [ - ["npm:1.19.0", { - "packageLocation": "./.yarn/cache/@types-body-parser-npm-1.19.0-3ca4d08a60-4576f3fde5.zip/node_modules/@types/body-parser/", - "packageDependencies": [ - ["@types/body-parser", "npm:1.19.0"], - ["@types/connect", "npm:3.4.33"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/cacheable-request", [ - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/@types-cacheable-request-npm-6.0.1-067bf7714d-3dae802a08.zip/node_modules/@types/cacheable-request/", - "packageDependencies": [ - ["@types/cacheable-request", "npm:6.0.1"], - ["@types/http-cache-semantics", "npm:4.0.0"], - ["@types/keyv", "npm:3.1.1"], - ["@types/node", "npm:14.0.27"], - ["@types/responselike", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/clear", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/@types-clear-npm-0.1.0-64ea71813f-7fb35c8d89.zip/node_modules/@types/clear/", - "packageDependencies": [ - ["@types/clear", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/color-name", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/@types-color-name-npm-1.1.1-00b0925070-8311db94a9.zip/node_modules/@types/color-name/", - "packageDependencies": [ - ["@types/color-name", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["@types/connect", [ - ["npm:3.4.33", { - "packageLocation": "./.yarn/cache/@types-connect-npm-3.4.33-959638d9c6-6414495b59.zip/node_modules/@types/connect/", - "packageDependencies": [ - ["@types/connect", "npm:3.4.33"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/cors", [ - ["npm:2.8.5", { - "packageLocation": "./.yarn/cache/@types-cors-npm-2.8.5-4aecf2889a-1b3485943d.zip/node_modules/@types/cors/", - "packageDependencies": [ - ["@types/cors", "npm:2.8.5"], - ["@types/express", "npm:4.17.7"] - ], - "linkType": "HARD", - }], - ["npm:2.8.7", { - "packageLocation": "./.yarn/cache/@types-cors-npm-2.8.7-0e79501842-5a2f88615b.zip/node_modules/@types/cors/", - "packageDependencies": [ - ["@types/cors", "npm:2.8.7"], - ["@types/express", "npm:4.17.7"] - ], - "linkType": "HARD", - }] - ]], - ["@types/crypto-js", [ - ["npm:3.1.47", { - "packageLocation": "./.yarn/cache/@types-crypto-js-npm-3.1.47-94e6343487-50a491aacb.zip/node_modules/@types/crypto-js/", - "packageDependencies": [ - ["@types/crypto-js", "npm:3.1.47"] - ], - "linkType": "HARD", - }] - ]], - ["@types/emscripten", [ - ["npm:1.39.4", { - "packageLocation": "./.yarn/cache/@types-emscripten-npm-1.39.4-4d03380faa-b848421e25.zip/node_modules/@types/emscripten/", - "packageDependencies": [ - ["@types/emscripten", "npm:1.39.4"] - ], - "linkType": "HARD", - }] - ]], - ["@types/estree", [ - ["npm:0.0.39", { - "packageLocation": "./.yarn/cache/@types-estree-npm-0.0.39-f898500e96-43e5361de3.zip/node_modules/@types/estree/", - "packageDependencies": [ - ["@types/estree", "npm:0.0.39"] - ], - "linkType": "HARD", - }] - ]], - ["@types/express", [ - ["npm:4.17.7", { - "packageLocation": "./.yarn/cache/@types-express-npm-4.17.7-3f74d07476-99b795c60e.zip/node_modules/@types/express/", - "packageDependencies": [ - ["@types/express", "npm:4.17.7"], - ["@types/body-parser", "npm:1.19.0"], - ["@types/express-serve-static-core", "npm:4.17.9"], - ["@types/qs", "npm:6.9.4"], - ["@types/serve-static", "npm:1.13.5"] - ], - "linkType": "HARD", - }], - ["npm:4.17.8", { - "packageLocation": "./.yarn/cache/@types-express-npm-4.17.8-c21b94ed16-9220ef3cb0.zip/node_modules/@types/express/", - "packageDependencies": [ - ["@types/express", "npm:4.17.8"], - ["@types/body-parser", "npm:1.19.0"], - ["@types/express-serve-static-core", "npm:4.17.9"], - ["@types/qs", "npm:6.9.4"], - ["@types/serve-static", "npm:1.13.5"] - ], - "linkType": "HARD", - }] - ]], - ["@types/express-graphql", [ - ["npm:0.9.0", { - "packageLocation": "./.yarn/cache/@types-express-graphql-npm-0.9.0-81ccb0b6d9-c2d9d403ad.zip/node_modules/@types/express-graphql/", - "packageDependencies": [ - ["@types/express-graphql", "npm:0.9.0"], - ["express-graphql", "virtual:81ccb0b6d9dec0de8117538ffcff243340f76bc1d9e508d68bcd2e95fad3568eca34fcb375bfffd59e37a816a80c197efedec7ace2a30b447f88f1e672f9663e#npm:0.11.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/express-jwt", [ - ["npm:0.0.42", { - "packageLocation": "./.yarn/cache/@types-express-jwt-npm-0.0.42-14edaf70c3-82477e875e.zip/node_modules/@types/express-jwt/", - "packageDependencies": [ - ["@types/express-jwt", "npm:0.0.42"], - ["@types/express", "npm:4.17.7"], - ["@types/express-unless", "npm:0.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["@types/express-serve-static-core", [ - ["npm:4.17.9", { - "packageLocation": "./.yarn/cache/@types-express-serve-static-core-npm-4.17.9-b40b44c418-20ddd0d263.zip/node_modules/@types/express-serve-static-core/", - "packageDependencies": [ - ["@types/express-serve-static-core", "npm:4.17.9"], - ["@types/node", "npm:14.0.27"], - ["@types/qs", "npm:6.9.4"], - ["@types/range-parser", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/express-unless", [ - ["npm:0.5.1", { - "packageLocation": "./.yarn/cache/@types-express-unless-npm-0.5.1-c2a605edb2-3477cf7ff5.zip/node_modules/@types/express-unless/", - "packageDependencies": [ - ["@types/express-unless", "npm:0.5.1"], - ["@types/express", "npm:4.17.7"] - ], - "linkType": "HARD", - }] - ]], - ["@types/figlet", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/@types-figlet-npm-1.2.0-803b4bb472-24a19da02d.zip/node_modules/@types/figlet/", - "packageDependencies": [ - ["@types/figlet", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/fs-extra", [ - ["npm:9.0.2", { - "packageLocation": "./.yarn/cache/@types-fs-extra-npm-9.0.2-76105aa5a6-9fb00885d8.zip/node_modules/@types/fs-extra/", - "packageDependencies": [ - ["@types/fs-extra", "npm:9.0.2"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/glob", [ - ["npm:7.1.3", { - "packageLocation": "./.yarn/cache/@types-glob-npm-7.1.3-44516e2aab-633bf1dda9.zip/node_modules/@types/glob/", - "packageDependencies": [ - ["@types/glob", "npm:7.1.3"], - ["@types/minimatch", "npm:3.0.3"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/graceful-fs", [ - ["npm:4.1.3", { - "packageLocation": "./.yarn/cache/@types-graceful-fs-npm-4.1.3-fa91c32dd0-5e2ec610a9.zip/node_modules/@types/graceful-fs/", - "packageDependencies": [ - ["@types/graceful-fs", "npm:4.1.3"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/hoist-non-react-statics", [ - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/@types-hoist-non-react-statics-npm-3.3.1-c0081332b2-16ab4c45d4.zip/node_modules/@types/hoist-non-react-statics/", - "packageDependencies": [ - ["@types/hoist-non-react-statics", "npm:3.3.1"], - ["@types/react", "npm:16.9.43"], - ["hoist-non-react-statics", "npm:3.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["@types/http-cache-semantics", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/@types-http-cache-semantics-npm-4.0.0-000c9dc8e0-e16fae56d4.zip/node_modules/@types/http-cache-semantics/", - "packageDependencies": [ - ["@types/http-cache-semantics", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/inquirer", [ - ["npm:6.5.0", { - "packageLocation": "./.yarn/cache/@types-inquirer-npm-6.5.0-384e809dad-29a6b2db1d.zip/node_modules/@types/inquirer/", - "packageDependencies": [ - ["@types/inquirer", "npm:6.5.0"], - ["@types/through", "npm:0.0.30"], - ["rxjs", "npm:6.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/istanbul-lib-coverage", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-d6f6dbf66d.zip/node_modules/@types/istanbul-lib-coverage/", - "packageDependencies": [ - ["@types/istanbul-lib-coverage", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/istanbul-lib-report", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-78aa9f859b.zip/node_modules/@types/istanbul-lib-report/", - "packageDependencies": [ - ["@types/istanbul-lib-report", "npm:3.0.0"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/istanbul-reports", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/@types-istanbul-reports-npm-1.1.2-4f435a3d0f-92bd1f76a4.zip/node_modules/@types/istanbul-reports/", - "packageDependencies": [ - ["@types/istanbul-reports", "npm:1.1.2"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["@types/istanbul-lib-report", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-8aee794ea2.zip/node_modules/@types/istanbul-reports/", - "packageDependencies": [ - ["@types/istanbul-reports", "npm:3.0.0"], - ["@types/istanbul-lib-report", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/jest", [ - ["npm:26.0.4", { - "packageLocation": "./.yarn/cache/@types-jest-npm-26.0.4-2789c10ba6-f815792ecc.zip/node_modules/@types/jest/", - "packageDependencies": [ - ["@types/jest", "npm:26.0.4"], - ["jest-diff", "npm:25.5.0"], - ["pretty-format", "npm:25.5.0"] - ], - "linkType": "HARD", - }], - ["npm:26.0.7", { - "packageLocation": "./.yarn/cache/@types-jest-npm-26.0.7-1410edc6d4-9c54f6cdce.zip/node_modules/@types/jest/", - "packageDependencies": [ - ["@types/jest", "npm:26.0.7"], - ["jest-diff", "npm:25.5.0"], - ["pretty-format", "npm:25.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/js-cookie", [ - ["npm:2.2.6", { - "packageLocation": "./.yarn/cache/@types-js-cookie-npm-2.2.6-dd551f922c-08d3a2a014.zip/node_modules/@types/js-cookie/", - "packageDependencies": [ - ["@types/js-cookie", "npm:2.2.6"] - ], - "linkType": "HARD", - }] - ]], - ["@types/js-yaml", [ - ["npm:3.12.5", { - "packageLocation": "./.yarn/cache/@types-js-yaml-npm-3.12.5-9b6b585722-82ca4b40ee.zip/node_modules/@types/js-yaml/", - "packageDependencies": [ - ["@types/js-yaml", "npm:3.12.5"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/@types-js-yaml-npm-4.0.0-a67e683a65-7a4431db30.zip/node_modules/@types/js-yaml/", - "packageDependencies": [ - ["@types/js-yaml", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/json-schema", [ - ["npm:7.0.5", { - "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.5-6c7647c88d-6290f9fe93.zip/node_modules/@types/json-schema/", - "packageDependencies": [ - ["@types/json-schema", "npm:7.0.5"] - ], - "linkType": "HARD", - }], - ["npm:7.0.7", { - "packageLocation": "./.yarn/cache/@types-json-schema-npm-7.0.7-95fb8178d7-b9d2c509fa.zip/node_modules/@types/json-schema/", - "packageDependencies": [ - ["@types/json-schema", "npm:7.0.7"] - ], - "linkType": "HARD", - }] - ]], - ["@types/jsonwebtoken", [ - ["npm:8.5.0", { - "packageLocation": "./.yarn/cache/@types-jsonwebtoken-npm-8.5.0-9d7d29ea0b-d1a6b28f82.zip/node_modules/@types/jsonwebtoken/", - "packageDependencies": [ - ["@types/jsonwebtoken", "npm:8.5.0"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/keyv", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/@types-keyv-npm-3.1.1-779a80f2c7-3aaf557d5b.zip/node_modules/@types/keyv/", - "packageDependencies": [ - ["@types/keyv", "npm:3.1.1"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/listr", [ - ["npm:0.14.2", { - "packageLocation": "./.yarn/cache/@types-listr-npm-0.14.2-b7d234532c-0143d8b25f.zip/node_modules/@types/listr/", - "packageDependencies": [ - ["@types/listr", "npm:0.14.2"], - ["@types/node", "npm:14.0.27"], - ["rxjs", "npm:6.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lodash", [ - ["npm:4.14.158", { - "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.158-ddc174121c-edee47e7db.zip/node_modules/@types/lodash/", - "packageDependencies": [ - ["@types/lodash", "npm:4.14.158"] - ], - "linkType": "HARD", - }], - ["npm:4.14.161", { - "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.161-3f926592cc-c3657517da.zip/node_modules/@types/lodash/", - "packageDependencies": [ - ["@types/lodash", "npm:4.14.161"] - ], - "linkType": "HARD", - }], - ["npm:4.14.165", { - "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.165-fad4191e95-525bfc34b0.zip/node_modules/@types/lodash/", - "packageDependencies": [ - ["@types/lodash", "npm:4.14.165"] - ], - "linkType": "HARD", - }], - ["npm:4.14.169", { - "packageLocation": "./.yarn/cache/@types-lodash-npm-4.14.169-64630f427b-a6032afed6.zip/node_modules/@types/lodash/", - "packageDependencies": [ - ["@types/lodash", "npm:4.14.169"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lodash.camelcase", [ - ["npm:4.3.6", { - "packageLocation": "./.yarn/cache/@types-lodash.camelcase-npm-4.3.6-c67f703dab-3aca4bbcb9.zip/node_modules/@types/lodash.camelcase/", - "packageDependencies": [ - ["@types/lodash.camelcase", "npm:4.3.6"], - ["@types/lodash", "npm:4.14.158"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lodash.get", [ - ["npm:4.4.6", { - "packageLocation": "./.yarn/cache/@types-lodash.get-npm-4.4.6-16fd48a468-f08237e3d4.zip/node_modules/@types/lodash.get/", - "packageDependencies": [ - ["@types/lodash.get", "npm:4.4.6"], - ["@types/lodash", "npm:4.14.158"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lodash.kebabcase", [ - ["npm:4.1.6", { - "packageLocation": "./.yarn/cache/@types-lodash.kebabcase-npm-4.1.6-e373626542-4f566c1e82.zip/node_modules/@types/lodash.kebabcase/", - "packageDependencies": [ - ["@types/lodash.kebabcase", "npm:4.1.6"], - ["@types/lodash", "npm:4.14.158"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lodash.set", [ - ["npm:4.3.6", { - "packageLocation": "./.yarn/cache/@types-lodash.set-npm-4.3.6-76bc60f272-04a52fea04.zip/node_modules/@types/lodash.set/", - "packageDependencies": [ - ["@types/lodash.set", "npm:4.3.6"], - ["@types/lodash", "npm:4.14.158"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lodash.upperfirst", [ - ["npm:4.3.6", { - "packageLocation": "./.yarn/cache/@types-lodash.upperfirst-npm-4.3.6-36a7d840dc-0f8c8120e6.zip/node_modules/@types/lodash.upperfirst/", - "packageDependencies": [ - ["@types/lodash.upperfirst", "npm:4.3.6"], - ["@types/lodash", "npm:4.14.158"] - ], - "linkType": "HARD", - }] - ]], - ["@types/lru-cache", [ - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/@types-lru-cache-npm-5.1.0-eea307985c-55bffcbc95.zip/node_modules/@types/lru-cache/", - "packageDependencies": [ - ["@types/lru-cache", "npm:5.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/mdast", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/@types-mdast-npm-3.0.3-3eaccff045-d271df999e.zip/node_modules/@types/mdast/", - "packageDependencies": [ - ["@types/mdast", "npm:3.0.3"], - ["@types/unist", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/mime", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/@types-mime-npm-2.0.3-809d6f0e0f-6df548a912.zip/node_modules/@types/mime/", - "packageDependencies": [ - ["@types/mime", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/minimatch", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/@types-minimatch-npm-3.0.3-c8b0625f84-672ccdac19.zip/node_modules/@types/minimatch/", - "packageDependencies": [ - ["@types/minimatch", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/node", [ - ["npm:13.13.15", { - "packageLocation": "./.yarn/cache/@types-node-npm-13.13.15-7b0338b527-767eefa702.zip/node_modules/@types/node/", - "packageDependencies": [ - ["@types/node", "npm:13.13.15"] - ], - "linkType": "HARD", - }], - ["npm:14.0.27", { - "packageLocation": "./.yarn/cache/@types-node-npm-14.0.27-d33df6dc81-54ecf408eb.zip/node_modules/@types/node/", - "packageDependencies": [ - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }], - ["npm:14.14.31", { - "packageLocation": "./.yarn/cache/@types-node-npm-14.14.31-4f1a9dff64-635dc8a089.zip/node_modules/@types/node/", - "packageDependencies": [ - ["@types/node", "npm:14.14.31"] - ], - "linkType": "HARD", - }] - ]], - ["@types/normalize-package-data", [ - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/@types-normalize-package-data-npm-2.4.0-ed928aaaa8-6d077e73be.zip/node_modules/@types/normalize-package-data/", - "packageDependencies": [ - ["@types/normalize-package-data", "npm:2.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/parse-json", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4a8f720afa.zip/node_modules/@types/parse-json/", - "packageDependencies": [ - ["@types/parse-json", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/prettier", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/@types-prettier-npm-2.0.2-6cb7f49b31-f661ba2c63.zip/node_modules/@types/prettier/", - "packageDependencies": [ - ["@types/prettier", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/@types-prettier-npm-2.2.1-bc35c4da60-9dc257dfc5.zip/node_modules/@types/prettier/", - "packageDependencies": [ - ["@types/prettier", "npm:2.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["@types/prop-types", [ - ["npm:15.7.3", { - "packageLocation": "./.yarn/cache/@types-prop-types-npm-15.7.3-084e0015c6-bd0eab69d5.zip/node_modules/@types/prop-types/", - "packageDependencies": [ - ["@types/prop-types", "npm:15.7.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/q", [ - ["npm:1.5.4", { - "packageLocation": "./.yarn/cache/@types-q-npm-1.5.4-af8ca8cb0d-1a19cf2c41.zip/node_modules/@types/q/", - "packageDependencies": [ - ["@types/q", "npm:1.5.4"] - ], - "linkType": "HARD", - }] - ]], - ["@types/qs", [ - ["npm:6.9.4", { - "packageLocation": "./.yarn/cache/@types-qs-npm-6.9.4-259b993015-152d2431f7.zip/node_modules/@types/qs/", - "packageDependencies": [ - ["@types/qs", "npm:6.9.4"] - ], - "linkType": "HARD", - }] - ]], - ["@types/range-parser", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/@types-range-parser-npm-1.2.3-c06253b351-092fabae0e.zip/node_modules/@types/range-parser/", - "packageDependencies": [ - ["@types/range-parser", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react", [ - ["npm:16.9.43", { - "packageLocation": "./.yarn/cache/@types-react-npm-16.9.43-ffdd276940-b9d4491463.zip/node_modules/@types/react/", - "packageDependencies": [ - ["@types/react", "npm:16.9.43"], - ["@types/prop-types", "npm:15.7.3"], - ["csstype", "npm:2.6.11"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react-dom", [ - ["npm:16.9.8", { - "packageLocation": "./.yarn/cache/@types-react-dom-npm-16.9.8-9dde59da5d-53a223c026.zip/node_modules/@types/react-dom/", - "packageDependencies": [ - ["@types/react-dom", "npm:16.9.8"], - ["@types/react", "npm:16.9.43"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react-native", [ - ["npm:0.63.8", { - "packageLocation": "./.yarn/cache/@types-react-native-npm-0.63.8-d7b1bee3d1-a4b5d5ab79.zip/node_modules/@types/react-native/", - "packageDependencies": [ - ["@types/react-native", "npm:0.63.8"], - ["@types/react", "npm:16.9.43"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react-select", [ - ["npm:2.0.19", { - "packageLocation": "./.yarn/cache/@types-react-select-npm-2.0.19-b26a60274d-1faa59a991.zip/node_modules/@types/react-select/", - "packageDependencies": [ - ["@types/react-select", "npm:2.0.19"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", "npm:16.9.8"], - ["@types/react-transition-group", "npm:4.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/react-transition-group", [ - ["npm:4.4.0", { - "packageLocation": "./.yarn/cache/@types-react-transition-group-npm-4.4.0-dc81edfd45-b761f70623.zip/node_modules/@types/react-transition-group/", - "packageDependencies": [ - ["@types/react-transition-group", "npm:4.4.0"], - ["@types/react", "npm:16.9.43"] - ], - "linkType": "HARD", - }] - ]], - ["@types/resolve", [ - ["npm:1.17.1", { - "packageLocation": "./.yarn/cache/@types-resolve-npm-1.17.1-9a8396bef2-8e72a73574.zip/node_modules/@types/resolve/", - "packageDependencies": [ - ["@types/resolve", "npm:1.17.1"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/responselike", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e6e6613c80.zip/node_modules/@types/responselike/", - "packageDependencies": [ - ["@types/responselike", "npm:1.0.0"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/serve-static", [ - ["npm:1.13.5", { - "packageLocation": "./.yarn/cache/@types-serve-static-npm-1.13.5-9e6c8c7261-1d4e222e24.zip/node_modules/@types/serve-static/", - "packageDependencies": [ - ["@types/serve-static", "npm:1.13.5"], - ["@types/express-serve-static-core", "npm:4.17.9"], - ["@types/mime", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/stack-utils", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/@types-stack-utils-npm-1.0.1-e2f2f7a882-59738e4b71.zip/node_modules/@types/stack-utils/", - "packageDependencies": [ - ["@types/stack-utils", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-662312302e.zip/node_modules/@types/stack-utils/", - "packageDependencies": [ - ["@types/stack-utils", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/styled-components", [ - ["npm:5.1.3", { - "packageLocation": "./.yarn/cache/@types-styled-components-npm-5.1.3-a937650ae0-094b368f2c.zip/node_modules/@types/styled-components/", - "packageDependencies": [ - ["@types/styled-components", "npm:5.1.3"], - ["@types/hoist-non-react-statics", "npm:3.3.1"], - ["@types/react", "npm:16.9.43"], - ["@types/react-native", "npm:0.63.8"], - ["csstype", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["@types/through", [ - ["npm:0.0.30", { - "packageLocation": "./.yarn/cache/@types-through-npm-0.0.30-59be01cca3-67bae5cefe.zip/node_modules/@types/through/", - "packageDependencies": [ - ["@types/through", "npm:0.0.30"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/unist", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/@types-unist-npm-2.0.3-4b26dedfde-42e0dc4ac7.zip/node_modules/@types/unist/", - "packageDependencies": [ - ["@types/unist", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["@types/websocket", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/@types-websocket-npm-1.0.1-3e28e1647f-93d407970a.zip/node_modules/@types/websocket/", - "packageDependencies": [ - ["@types/websocket", "npm:1.0.1"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/ws", [ - ["npm:7.2.6", { - "packageLocation": "./.yarn/cache/@types-ws-npm-7.2.6-274c888b6d-2f7c358c4b.zip/node_modules/@types/ws/", - "packageDependencies": [ - ["@types/ws", "npm:7.2.6"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["@types/yargs", [ - ["npm:15.0.5", { - "packageLocation": "./.yarn/cache/@types-yargs-npm-15.0.5-18a2128a57-2133c8cb58.zip/node_modules/@types/yargs/", - "packageDependencies": [ - ["@types/yargs", "npm:15.0.5"], - ["@types/yargs-parser", "npm:15.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/yargs-parser", [ - ["npm:15.0.0", { - "packageLocation": "./.yarn/cache/@types-yargs-parser-npm-15.0.0-db1d59832c-74bfaefde9.zip/node_modules/@types/yargs-parser/", - "packageDependencies": [ - ["@types/yargs-parser", "npm:15.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["@types/yup", [ - ["npm:0.29.10", { - "packageLocation": "./.yarn/cache/@types-yup-npm-0.29.10-687f791d10-6103d7a17e.zip/node_modules/@types/yup/", - "packageDependencies": [ - ["@types/yup", "npm:0.29.10"] - ], - "linkType": "HARD", - }], - ["npm:0.29.11", { - "packageLocation": "./.yarn/cache/@types-yup-npm-0.29.11-217570c70e-2bc0528a6a.zip/node_modules/@types/yup/", - "packageDependencies": [ - ["@types/yup", "npm:0.29.11"] - ], - "linkType": "HARD", - }], - ["npm:0.29.7", { - "packageLocation": "./.yarn/cache/@types-yup-npm-0.29.7-d69920410c-f23dda1240.zip/node_modules/@types/yup/", - "packageDependencies": [ - ["@types/yup", "npm:0.29.7"] - ], - "linkType": "HARD", - }] - ]], - ["@types/zen-observable", [ - ["npm:0.8.1", { - "packageLocation": "./.yarn/cache/@types-zen-observable-npm-0.8.1-6bd035023b-4a58609be8.zip/node_modules/@types/zen-observable/", - "packageDependencies": [ - ["@types/zen-observable", "npm:0.8.1"] - ], - "linkType": "HARD", - }] - ]], - ["@urql/core", [ - ["npm:1.12.3", { - "packageLocation": "./.yarn/cache/@urql-core-npm-1.12.3-c3b533fb6c-b4343868c6.zip/node_modules/@urql/core/", - "packageDependencies": [ - ["@urql/core", "npm:1.12.3"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3", { - "packageLocation": "./.yarn/$$virtual/@urql-core-virtual-fbadc4ecbc/0/cache/@urql-core-npm-1.12.3-c3b533fb6c-b4343868c6.zip/node_modules/@urql/core/", - "packageDependencies": [ - ["@urql/core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["wonka", "npm:4.0.14"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/ast", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-ast-npm-1.9.0-8e3ce7800f-25d93900cc.zip/node_modules/@webassemblyjs/ast/", - "packageDependencies": [ - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-module-context", "npm:1.9.0"], - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0"], - ["@webassemblyjs/wast-parser", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/floating-point-hex-parser", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.9.0-0994d081ef-af9e11a688.zip/node_modules/@webassemblyjs/floating-point-hex-parser/", - "packageDependencies": [ - ["@webassemblyjs/floating-point-hex-parser", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-api-error", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-api-error-npm-1.9.0-ddb267a22d-ae7b9703ec.zip/node_modules/@webassemblyjs/helper-api-error/", - "packageDependencies": [ - ["@webassemblyjs/helper-api-error", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-buffer", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-buffer-npm-1.9.0-6bac0f07b8-94bcf27ccf.zip/node_modules/@webassemblyjs/helper-buffer/", - "packageDependencies": [ - ["@webassemblyjs/helper-buffer", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-code-frame", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-code-frame-npm-1.9.0-81d2d67e07-008fc534f2.zip/node_modules/@webassemblyjs/helper-code-frame/", - "packageDependencies": [ - ["@webassemblyjs/helper-code-frame", "npm:1.9.0"], - ["@webassemblyjs/wast-printer", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-fsm", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-fsm-npm-1.9.0-142437751c-3181e69c16.zip/node_modules/@webassemblyjs/helper-fsm/", - "packageDependencies": [ - ["@webassemblyjs/helper-fsm", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-module-context", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-module-context-npm-1.9.0-f61a345630-9aa715a8d0.zip/node_modules/@webassemblyjs/helper-module-context/", - "packageDependencies": [ - ["@webassemblyjs/helper-module-context", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-wasm-bytecode", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.9.0-956a55196e-27ba07f495.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/", - "packageDependencies": [ - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/helper-wasm-section", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.9.0-bfcf6c79b2-0e2957efc4.zip/node_modules/@webassemblyjs/helper-wasm-section/", - "packageDependencies": [ - ["@webassemblyjs/helper-wasm-section", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-buffer", "npm:1.9.0"], - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0"], - ["@webassemblyjs/wasm-gen", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/ieee754", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-ieee754-npm-1.9.0-81eeb71bbf-1474a87d86.zip/node_modules/@webassemblyjs/ieee754/", - "packageDependencies": [ - ["@webassemblyjs/ieee754", "npm:1.9.0"], - ["@xtuc/ieee754", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/leb128", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-leb128-npm-1.9.0-4ae214ef2b-af49765d06.zip/node_modules/@webassemblyjs/leb128/", - "packageDependencies": [ - ["@webassemblyjs/leb128", "npm:1.9.0"], - ["@xtuc/long", "npm:4.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/utf8", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-utf8-npm-1.9.0-15e2572ae2-172fd362aa.zip/node_modules/@webassemblyjs/utf8/", - "packageDependencies": [ - ["@webassemblyjs/utf8", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/wasm-edit", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-edit-npm-1.9.0-d249ae2fdf-16016c9ef5.zip/node_modules/@webassemblyjs/wasm-edit/", - "packageDependencies": [ - ["@webassemblyjs/wasm-edit", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-buffer", "npm:1.9.0"], - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0"], - ["@webassemblyjs/helper-wasm-section", "npm:1.9.0"], - ["@webassemblyjs/wasm-gen", "npm:1.9.0"], - ["@webassemblyjs/wasm-opt", "npm:1.9.0"], - ["@webassemblyjs/wasm-parser", "npm:1.9.0"], - ["@webassemblyjs/wast-printer", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/wasm-gen", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-gen-npm-1.9.0-f4562ce247-1afcebfd12.zip/node_modules/@webassemblyjs/wasm-gen/", - "packageDependencies": [ - ["@webassemblyjs/wasm-gen", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0"], - ["@webassemblyjs/ieee754", "npm:1.9.0"], - ["@webassemblyjs/leb128", "npm:1.9.0"], - ["@webassemblyjs/utf8", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/wasm-opt", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-opt-npm-1.9.0-e4c3dd00c8-2ce89f206e.zip/node_modules/@webassemblyjs/wasm-opt/", - "packageDependencies": [ - ["@webassemblyjs/wasm-opt", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-buffer", "npm:1.9.0"], - ["@webassemblyjs/wasm-gen", "npm:1.9.0"], - ["@webassemblyjs/wasm-parser", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/wasm-parser", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-wasm-parser-npm-1.9.0-a1515dd8ce-b8cb346c9b.zip/node_modules/@webassemblyjs/wasm-parser/", - "packageDependencies": [ - ["@webassemblyjs/wasm-parser", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-api-error", "npm:1.9.0"], - ["@webassemblyjs/helper-wasm-bytecode", "npm:1.9.0"], - ["@webassemblyjs/ieee754", "npm:1.9.0"], - ["@webassemblyjs/leb128", "npm:1.9.0"], - ["@webassemblyjs/utf8", "npm:1.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/wast-parser", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-wast-parser-npm-1.9.0-482b548b88-eaa0140a44.zip/node_modules/@webassemblyjs/wast-parser/", - "packageDependencies": [ - ["@webassemblyjs/wast-parser", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/floating-point-hex-parser", "npm:1.9.0"], - ["@webassemblyjs/helper-api-error", "npm:1.9.0"], - ["@webassemblyjs/helper-code-frame", "npm:1.9.0"], - ["@webassemblyjs/helper-fsm", "npm:1.9.0"], - ["@xtuc/long", "npm:4.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["@webassemblyjs/wast-printer", [ - ["npm:1.9.0", { - "packageLocation": "./.yarn/cache/@webassemblyjs-wast-printer-npm-1.9.0-1fa1d3e613-9f013b27e2.zip/node_modules/@webassemblyjs/wast-printer/", - "packageDependencies": [ - ["@webassemblyjs/wast-printer", "npm:1.9.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/wast-parser", "npm:1.9.0"], - ["@xtuc/long", "npm:4.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["@wry/context", [ - ["npm:0.5.2", { - "packageLocation": "./.yarn/cache/@wry-context-npm-0.5.2-d22b37e5d8-6547fb0eb5.zip/node_modules/@wry/context/", - "packageDependencies": [ - ["@wry/context", "npm:0.5.2"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@wry/equality", [ - ["npm:0.1.11", { - "packageLocation": "./.yarn/cache/@wry-equality-npm-0.1.11-e3cf830190-3d1da57999.zip/node_modules/@wry/equality/", - "packageDependencies": [ - ["@wry/equality", "npm:0.1.11"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }], - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/@wry-equality-npm-0.2.0-db7d0ba29d-ddd217fbef.zip/node_modules/@wry/equality/", - "packageDependencies": [ - ["@wry/equality", "npm:0.2.0"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@xstate/react", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/@xstate-react-npm-1.0.1-4fe3645829-cf3312e9bd.zip/node_modules/@xstate/react/", - "packageDependencies": [ - ["@xstate/react", "npm:1.0.1"] - ], - "linkType": "SOFT", - }], - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/@xstate-react-npm-1.1.0-074408179e-3caa98ba54.zip/node_modules/@xstate/react/", - "packageDependencies": [ - ["@xstate/react", "npm:1.1.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1", { - "packageLocation": "./.yarn/$$virtual/@xstate-react-virtual-89f4f6ff06/0/cache/@xstate-react-npm-1.0.1-4fe3645829-cf3312e9bd.zip/node_modules/@xstate/react/", - "packageDependencies": [ - ["@xstate/react", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1"], - ["@types/react", "npm:16.9.43"], - ["@types/xstate", null], - ["@types/xstate__fsm", null], - ["@xstate/fsm", null], - ["react", "npm:16.13.1"], - ["use-isomorphic-layout-effect", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0"], - ["use-subscription", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1"], - ["xstate", "npm:4.13.0"] - ], - "packagePeers": [ - "@types/react", - "@types/xstate", - "@types/xstate__fsm", - "@xstate/fsm", - "react", - "xstate" - ], - "linkType": "HARD", - }], - ["virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0", { - "packageLocation": "./.yarn/$$virtual/@xstate-react-virtual-3a322cd473/0/cache/@xstate-react-npm-1.1.0-074408179e-3caa98ba54.zip/node_modules/@xstate/react/", - "packageDependencies": [ - ["@xstate/react", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0"], - ["@types/react", "npm:16.9.43"], - ["@types/xstate", null], - ["@types/xstate__fsm", null], - ["@xstate/fsm", null], - ["react", "npm:16.13.1"], - ["use-isomorphic-layout-effect", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0"], - ["use-subscription", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1"], - ["xstate", "npm:4.15.1"] - ], - "packagePeers": [ - "@types/react", - "@types/xstate", - "@types/xstate__fsm", - "@xstate/fsm", - "react", - "xstate" - ], - "linkType": "HARD", - }] - ]], - ["@xtuc/ieee754", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/@xtuc-ieee754-npm-1.2.0-ec0ce4e025-65bb9c55a0.zip/node_modules/@xtuc/ieee754/", - "packageDependencies": [ - ["@xtuc/ieee754", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["@xtuc/long", [ - ["npm:4.2.2", { - "packageLocation": "./.yarn/cache/@xtuc-long-npm-4.2.2-37236e6d72-ec09a359f9.zip/node_modules/@xtuc/long/", - "packageDependencies": [ - ["@xtuc/long", "npm:4.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/core", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/@yarnpkg-core-npm-2.1.1-6708e55dd7-d01e24bde1.zip/node_modules/@yarnpkg/core/", - "packageDependencies": [ - ["@yarnpkg/core", "npm:2.1.1"], - ["@arcanis/slice-ansi", "npm:1.0.2"], - ["@yarnpkg/fslib", "npm:2.1.0"], - ["@yarnpkg/json-proxy", "npm:2.1.0"], - ["@yarnpkg/libzip", "npm:2.1.0"], - ["@yarnpkg/parsers", "npm:2.1.0"], - ["@yarnpkg/pnp", "npm:2.1.0"], - ["@yarnpkg/shell", "npm:2.1.0"], - ["camelcase", "npm:5.3.1"], - ["chalk", "npm:3.0.0"], - ["ci-info", "npm:2.0.0"], - ["clipanion", "npm:2.4.4"], - ["cross-spawn", "npm:7.0.3"], - ["diff", "npm:4.0.2"], - ["globby", "npm:10.0.2"], - ["got", "npm:11.5.1"], - ["json-file-plus", "npm:3.3.1"], - ["logic-solver", "npm:2.0.1"], - ["micromatch", "npm:4.0.2"], - ["mkdirp", "npm:0.5.5"], - ["p-limit", "npm:2.3.0"], - ["pluralize", "npm:7.0.0"], - ["pretty-bytes", "npm:5.3.0"], - ["semver", "npm:7.3.2"], - ["stream-to-promise", "npm:2.2.0"], - ["tar", "npm:4.4.13"], - ["tslib", "npm:1.13.0"], - ["tunnel", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/fslib", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-fslib-npm-2.1.0-893912cd38-5a77427f2b.zip/node_modules/@yarnpkg/fslib/", - "packageDependencies": [ - ["@yarnpkg/fslib", "npm:2.1.0"], - ["@yarnpkg/libzip", "npm:2.1.0"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/json-proxy", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-json-proxy-npm-2.1.0-2c9f0a202a-9c3877ca03.zip/node_modules/@yarnpkg/json-proxy/", - "packageDependencies": [ - ["@yarnpkg/json-proxy", "npm:2.1.0"], - ["@yarnpkg/fslib", "npm:2.1.0"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/libzip", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-libzip-npm-2.1.0-75a28b18e6-886d4a269a.zip/node_modules/@yarnpkg/libzip/", - "packageDependencies": [ - ["@yarnpkg/libzip", "npm:2.1.0"], - ["@types/emscripten", "npm:1.39.4"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/parsers", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-parsers-npm-2.1.0-bbaba9d471-3cd4e35435.zip/node_modules/@yarnpkg/parsers/", - "packageDependencies": [ - ["@yarnpkg/parsers", "npm:2.1.0"], - ["js-yaml", "npm:3.14.0"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/pnp", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-pnp-npm-2.1.0-99304d96cb-610f875f59.zip/node_modules/@yarnpkg/pnp/", - "packageDependencies": [ - ["@yarnpkg/pnp", "npm:2.1.0"], - ["@types/node", "npm:13.13.15"], - ["@yarnpkg/fslib", "npm:2.1.0"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/pnpify", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-pnpify-npm-2.1.0-ba7c47ca3b-334ce4cc6c.zip/node_modules/@yarnpkg/pnpify/", - "packageDependencies": [ - ["@yarnpkg/pnpify", "npm:2.1.0"] - ], - "linkType": "SOFT", - }], - ["virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0", { - "packageLocation": "./.yarn/$$virtual/@yarnpkg-pnpify-virtual-5a0584e3de/0/cache/@yarnpkg-pnpify-npm-2.1.0-ba7c47ca3b-334ce4cc6c.zip/node_modules/@yarnpkg/pnpify/", - "packageDependencies": [ - ["@yarnpkg/pnpify", "virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0"], - ["@types/eslint", null], - ["@types/typescript", null], - ["@yarnpkg/core", "npm:2.1.1"], - ["@yarnpkg/fslib", "npm:2.1.0"], - ["@yarnpkg/parsers", "npm:2.1.0"], - ["chalk", "npm:3.0.0"], - ["clipanion", "npm:2.4.4"], - ["comment-json", "npm:2.4.2"], - ["eslint", "npm:6.8.0"], - ["lodash", "npm:4.17.19"], - ["tslib", "npm:1.13.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"] - ], - "packagePeers": [ - "@types/eslint", - "@types/typescript", - "eslint", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["@yarnpkg/shell", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/@yarnpkg-shell-npm-2.1.0-c8669eea76-2e0b808965.zip/node_modules/@yarnpkg/shell/", - "packageDependencies": [ - ["@yarnpkg/shell", "npm:2.1.0"], - ["@yarnpkg/fslib", "npm:2.1.0"], - ["@yarnpkg/parsers", "npm:2.1.0"], - ["clipanion", "npm:2.4.4"], - ["cross-spawn", "npm:7.0.3"], - ["fast-glob", "npm:3.2.4"], - ["stream-buffers", "npm:3.0.2"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["JSONStream", [ - ["npm:1.3.5", { - "packageLocation": "./.yarn/cache/JSONStream-npm-1.3.5-1987f2e6dd-e9849f8a52.zip/node_modules/JSONStream/", - "packageDependencies": [ - ["JSONStream", "npm:1.3.5"], - ["jsonparse", "npm:1.3.1"], - ["through", "npm:2.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["abab", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/abab-npm-2.0.3-278ae51229-07bd561e87.zip/node_modules/abab/", - "packageDependencies": [ - ["abab", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:2.0.5", { - "packageLocation": "./.yarn/cache/abab-npm-2.0.5-ae8d5b629e-a42b91bd9d.zip/node_modules/abab/", - "packageDependencies": [ - ["abab", "npm:2.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["abbrev", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/abbrev-npm-1.1.1-3659247eab-9f9236a3cc.zip/node_modules/abbrev/", - "packageDependencies": [ - ["abbrev", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["abort-controller", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-cc53ad8df9.zip/node_modules/abort-controller/", - "packageDependencies": [ - ["abort-controller", "npm:3.0.0"], - ["event-target-shim", "npm:5.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["accepts", [ - ["npm:1.3.7", { - "packageLocation": "./.yarn/cache/accepts-npm-1.3.7-0dc9de65aa-2686fa30db.zip/node_modules/accepts/", - "packageDependencies": [ - ["accepts", "npm:1.3.7"], - ["mime-types", "npm:2.1.27"], - ["negotiator", "npm:0.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["acorn", [ - ["npm:6.4.1", { - "packageLocation": "./.yarn/cache/acorn-npm-6.4.1-77905520a8-7aa4623c6d.zip/node_modules/acorn/", - "packageDependencies": [ - ["acorn", "npm:6.4.1"] - ], - "linkType": "HARD", - }], - ["npm:7.3.1", { - "packageLocation": "./.yarn/cache/acorn-npm-7.3.1-422605b2d6-3fa7039384.zip/node_modules/acorn/", - "packageDependencies": [ - ["acorn", "npm:7.3.1"] - ], - "linkType": "HARD", - }], - ["npm:8.1.0", { - "packageLocation": "./.yarn/cache/acorn-npm-8.1.0-9bbab5b1e4-99ccf30832.zip/node_modules/acorn/", - "packageDependencies": [ - ["acorn", "npm:8.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["acorn-globals", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-078ed9bc35.zip/node_modules/acorn-globals/", - "packageDependencies": [ - ["acorn-globals", "npm:6.0.0"], - ["acorn", "npm:7.3.1"], - ["acorn-walk", "npm:7.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["acorn-jsx", [ - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/acorn-jsx-npm-5.2.0-4c0af33483-1247cc4b32.zip/node_modules/acorn-jsx/", - "packageDependencies": [ - ["acorn-jsx", "npm:5.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:c3370c80228526bdc823c77589727bb12f010d7080bccc27a33a2dcce9848e6a7ca68b55a7a8ca98362554ae73296d381ef1ad94f002f07e2a08c76d959b5bbf#npm:5.2.0", { - "packageLocation": "./.yarn/$$virtual/acorn-jsx-virtual-150a37b7b0/0/cache/acorn-jsx-npm-5.2.0-4c0af33483-1247cc4b32.zip/node_modules/acorn-jsx/", - "packageDependencies": [ - ["acorn-jsx", "virtual:c3370c80228526bdc823c77589727bb12f010d7080bccc27a33a2dcce9848e6a7ca68b55a7a8ca98362554ae73296d381ef1ad94f002f07e2a08c76d959b5bbf#npm:5.2.0"], - ["@types/acorn", null], - ["acorn", "npm:7.3.1"] - ], - "packagePeers": [ - "@types/acorn", - "acorn" - ], - "linkType": "HARD", - }] - ]], - ["acorn-node", [ - ["npm:1.8.2", { - "packageLocation": "./.yarn/cache/acorn-node-npm-1.8.2-b30b72c499-a328a6ed63.zip/node_modules/acorn-node/", - "packageDependencies": [ - ["acorn-node", "npm:1.8.2"], - ["acorn", "npm:7.3.1"], - ["acorn-walk", "npm:7.2.0"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["acorn-walk", [ - ["npm:7.2.0", { - "packageLocation": "./.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-7b52d5d639.zip/node_modules/acorn-walk/", - "packageDependencies": [ - ["acorn-walk", "npm:7.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["adjust-sourcemap-loader", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/adjust-sourcemap-loader-npm-2.0.0-cf1b7c6ac2-086470bacc.zip/node_modules/adjust-sourcemap-loader/", - "packageDependencies": [ - ["adjust-sourcemap-loader", "npm:2.0.0"], - ["assert", "npm:1.4.1"], - ["camelcase", "npm:5.0.0"], - ["loader-utils", "npm:1.2.3"], - ["object-path", "npm:0.11.4"], - ["regex-parser", "npm:2.2.10"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/adjust-sourcemap-loader-npm-3.0.0-888da46170-18271da7f1.zip/node_modules/adjust-sourcemap-loader/", - "packageDependencies": [ - ["adjust-sourcemap-loader", "npm:3.0.0"], - ["loader-utils", "npm:2.0.0"], - ["regex-parser", "npm:2.2.11"] - ], - "linkType": "HARD", - }] - ]], - ["agent-base", [ - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/agent-base-npm-4.3.0-48c7e81d60-b40b7d9675.zip/node_modules/agent-base/", - "packageDependencies": [ - ["agent-base", "npm:4.3.0"], - ["es6-promisify", "npm:5.0.0"] - ], - "linkType": "HARD", - }], - ["npm:6.0.2", { - "packageLocation": "./.yarn/cache/agent-base-npm-6.0.2-428f325a93-e77eff83e1.zip/node_modules/agent-base/", - "packageDependencies": [ - ["agent-base", "npm:6.0.2"], - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["aggregate-error", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/aggregate-error-npm-3.0.1-46f220b212-aee96f00c2.zip/node_modules/aggregate-error/", - "packageDependencies": [ - ["aggregate-error", "npm:3.0.1"], - ["clean-stack", "npm:2.2.0"], - ["indent-string", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["ajv", [ - ["npm:6.12.3", { - "packageLocation": "./.yarn/cache/ajv-npm-6.12.3-aaadf00f0f-b20a171bf3.zip/node_modules/ajv/", - "packageDependencies": [ - ["ajv", "npm:6.12.3"], - ["fast-deep-equal", "npm:3.1.3"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["json-schema-traverse", "npm:0.4.1"], - ["uri-js", "npm:4.2.2"] - ], - "linkType": "HARD", - }], - ["npm:6.12.6", { - "packageLocation": "./.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-19a8f3b0a0.zip/node_modules/ajv/", - "packageDependencies": [ - ["ajv", "npm:6.12.6"], - ["fast-deep-equal", "npm:3.1.3"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["json-schema-traverse", "npm:0.4.1"], - ["uri-js", "npm:4.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["ajv-errors", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/ajv-errors-npm-1.0.1-32cd0b19f8-d8356aadcb.zip/node_modules/ajv-errors/", - "packageDependencies": [ - ["ajv-errors", "npm:1.0.1"] - ], - "linkType": "SOFT", - }], - ["virtual:2b49db17d1e4e8854e6e7543c07eb7bc19ec9da65a1b99b9cb28e764846d419e5ecd6e057ad65249f2b928862ffd70dbf8a7c79643ccdd7c1c40cab5b59aa03f#npm:1.0.1", { - "packageLocation": "./.yarn/$$virtual/ajv-errors-virtual-917b473fab/0/cache/ajv-errors-npm-1.0.1-32cd0b19f8-d8356aadcb.zip/node_modules/ajv-errors/", - "packageDependencies": [ - ["ajv-errors", "virtual:2b49db17d1e4e8854e6e7543c07eb7bc19ec9da65a1b99b9cb28e764846d419e5ecd6e057ad65249f2b928862ffd70dbf8a7c79643ccdd7c1c40cab5b59aa03f#npm:1.0.1"], - ["@types/ajv", null], - ["ajv", "npm:6.12.3"] - ], - "packagePeers": [ - "@types/ajv", - "ajv" - ], - "linkType": "HARD", - }] - ]], - ["ajv-keywords", [ - ["npm:3.5.2", { - "packageLocation": "./.yarn/cache/ajv-keywords-npm-3.5.2-0e391b70e2-01f26c2923.zip/node_modules/ajv-keywords/", - "packageDependencies": [ - ["ajv-keywords", "npm:3.5.2"] - ], - "linkType": "SOFT", - }], - ["virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2", { - "packageLocation": "./.yarn/$$virtual/ajv-keywords-virtual-3637c00b1c/0/cache/ajv-keywords-npm-3.5.2-0e391b70e2-01f26c2923.zip/node_modules/ajv-keywords/", - "packageDependencies": [ - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"], - ["@types/ajv", null], - ["ajv", "npm:6.12.3"] - ], - "packagePeers": [ - "@types/ajv", - "ajv" - ], - "linkType": "HARD", - }], - ["virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2", { - "packageLocation": "./.yarn/$$virtual/ajv-keywords-virtual-11d24a6cf1/0/cache/ajv-keywords-npm-3.5.2-0e391b70e2-01f26c2923.zip/node_modules/ajv-keywords/", - "packageDependencies": [ - ["ajv-keywords", "virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2"], - ["@types/ajv", null], - ["ajv", "npm:6.12.6"] - ], - "packagePeers": [ - "@types/ajv", - "ajv" - ], - "linkType": "HARD", - }] - ]], - ["ally.js", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/ally.js-npm-1.4.1-0629987bfc-bf1cda2f02.zip/node_modules/ally.js/", - "packageDependencies": [ - ["ally.js", "npm:1.4.1"], - ["css.escape", "npm:1.5.1"], - ["platform", "npm:1.3.3"] - ], - "linkType": "HARD", - }] - ]], - ["alphanum-sort", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/alphanum-sort-npm-1.0.2-78a592b492-28bad91719.zip/node_modules/alphanum-sort/", - "packageDependencies": [ - ["alphanum-sort", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["anser", [ - ["npm:1.4.9", { - "packageLocation": "./.yarn/cache/anser-npm-1.4.9-6b6677f7c6-39acb65797.zip/node_modules/anser/", - "packageDependencies": [ - ["anser", "npm:1.4.9"] - ], - "linkType": "HARD", - }] - ]], - ["ansi", [ - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/ansi-npm-0.3.1-ba86b03451-f06702313d.zip/node_modules/ansi/", - "packageDependencies": [ - ["ansi", "npm:0.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-align", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/ansi-align-npm-2.0.0-d2b1b30146-acd73a693a.zip/node_modules/ansi-align/", - "packageDependencies": [ - ["ansi-align", "npm:2.0.0"], - ["string-width", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/ansi-align-npm-3.0.0-2f770647c2-e6bea1d610.zip/node_modules/ansi-align/", - "packageDependencies": [ - ["ansi-align", "npm:3.0.0"], - ["string-width", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-escapes", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/ansi-escapes-npm-1.4.0-9d1312ffbf-c0e83fa29b.zip/node_modules/ansi-escapes/", - "packageDependencies": [ - ["ansi-escapes", "npm:1.4.0"] - ], - "linkType": "HARD", - }], - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/ansi-escapes-npm-3.2.0-a9d573100e-0a106c53c7.zip/node_modules/ansi-escapes/", - "packageDependencies": [ - ["ansi-escapes", "npm:3.2.0"] - ], - "linkType": "HARD", - }], - ["npm:4.3.1", { - "packageLocation": "./.yarn/cache/ansi-escapes-npm-4.3.1-f4aad61b5b-bcb39e57bd.zip/node_modules/ansi-escapes/", - "packageDependencies": [ - ["ansi-escapes", "npm:4.3.1"], - ["type-fest", "npm:0.11.0"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-regex", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-93a53c923f.zip/node_modules/ansi-regex/", - "packageDependencies": [ - ["ansi-regex", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/ansi-regex-npm-3.0.0-be0b845911-2e3c40d429.zip/node_modules/ansi-regex/", - "packageDependencies": [ - ["ansi-regex", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/ansi-regex-npm-4.1.0-4a7d8413fe-53b6fe447c.zip/node_modules/ansi-regex/", - "packageDependencies": [ - ["ansi-regex", "npm:4.1.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/ansi-regex-npm-5.0.0-9c076068d9-cbd9b5c9db.zip/node_modules/ansi-regex/", - "packageDependencies": [ - ["ansi-regex", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["ansi-styles", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/ansi-styles-npm-2.2.1-f3297e782c-108c749637.zip/node_modules/ansi-styles/", - "packageDependencies": [ - ["ansi-styles", "npm:2.2.1"] - ], - "linkType": "HARD", - }], - ["npm:3.2.1", { - "packageLocation": "./.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-456e1c23d9.zip/node_modules/ansi-styles/", - "packageDependencies": [ - ["ansi-styles", "npm:3.2.1"], - ["color-convert", "npm:1.9.3"] - ], - "linkType": "HARD", - }], - ["npm:4.2.1", { - "packageLocation": "./.yarn/cache/ansi-styles-npm-4.2.1-de50ec308d-c8c007d5da.zip/node_modules/ansi-styles/", - "packageDependencies": [ - ["ansi-styles", "npm:4.2.1"], - ["@types/color-name", "npm:1.1.1"], - ["color-convert", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["any-observable", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/any-observable-npm-0.3.0-4832f4f3ed-8051aaf7b9.zip/node_modules/any-observable/", - "packageDependencies": [ - ["any-observable", "npm:0.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:d72f438b4b2c02cba8c9422efe9af9e0755567b346f12e7152df53f6f348d8a2c444986b3521966cafae9d9dbb5b3e0c8ac16137f1c4251596b45bdf8129a3cf#npm:0.3.0", { - "packageLocation": "./.yarn/$$virtual/any-observable-virtual-d1521fbe82/0/cache/any-observable-npm-0.3.0-4832f4f3ed-8051aaf7b9.zip/node_modules/any-observable/", - "packageDependencies": [ - ["any-observable", "virtual:d72f438b4b2c02cba8c9422efe9af9e0755567b346f12e7152df53f6f348d8a2c444986b3521966cafae9d9dbb5b3e0c8ac16137f1c4251596b45bdf8129a3cf#npm:0.3.0"], - ["rxjs", "npm:6.6.0"], - ["zenObservable", null] - ], - "packagePeers": [ - "rxjs", - "zenObservable" - ], - "linkType": "HARD", - }] - ]], - ["any-promise", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/any-promise-npm-1.3.0-f34eeaa7e7-e829425e4a.zip/node_modules/any-promise/", - "packageDependencies": [ - ["any-promise", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["anymatch", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/anymatch-npm-2.0.0-f2fcb92f28-9e495910cc.zip/node_modules/anymatch/", - "packageDependencies": [ - ["anymatch", "npm:2.0.0"], - ["micromatch", "npm:3.1.10"], - ["normalize-path", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/anymatch-npm-3.1.1-7dcfa6178a-cf61bbaf7f.zip/node_modules/anymatch/", - "packageDependencies": [ - ["anymatch", "npm:3.1.1"], - ["normalize-path", "npm:3.0.0"], - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["apollo-link", [ - ["npm:1.2.14", { - "packageLocation": "./.yarn/cache/apollo-link-npm-1.2.14-74f0ba01f9-5cc96cd6df.zip/node_modules/apollo-link/", - "packageDependencies": [ - ["apollo-link", "npm:1.2.14"] - ], - "linkType": "SOFT", - }], - ["virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:1.2.14", { - "packageLocation": "./.yarn/$$virtual/apollo-link-virtual-7061219c31/0/cache/apollo-link-npm-1.2.14-74f0ba01f9-5cc96cd6df.zip/node_modules/apollo-link/", - "packageDependencies": [ - ["apollo-link", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:1.2.14"], - ["@types/graphql", null], - ["apollo-utilities", "virtual:7061219c319bef59bce9b091ecd412f2b806f9949302f75d78ecdd2605eb6ee74208dde38595a702b510b7be1c809b9976547a1c28f0497c19f08cb710d68d9d#npm:1.3.4"], - ["graphql", "npm:15.3.0"], - ["ts-invariant", "npm:0.4.4"], - ["tslib", "npm:1.13.0"], - ["zen-observable-ts", "npm:0.8.21"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["apollo-upload-client", [ - ["npm:14.1.1", { - "packageLocation": "./.yarn/cache/apollo-upload-client-npm-14.1.1-b984563e20-d1e38a7c81.zip/node_modules/apollo-upload-client/", - "packageDependencies": [ - ["apollo-upload-client", "npm:14.1.1"] - ], - "linkType": "SOFT", - }], - ["virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:14.1.1", { - "packageLocation": "./.yarn/$$virtual/apollo-upload-client-virtual-b9b0e1dd83/0/cache/apollo-upload-client-npm-14.1.1-b984563e20-d1e38a7c81.zip/node_modules/apollo-upload-client/", - "packageDependencies": [ - ["apollo-upload-client", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:14.1.1"], - ["@apollo/client", "virtual:b9b0e1dd832f3eefdbdae1b04f9c91400316688efbe29541e6d687eb030bcce67b26083f769282e2f54c6b6ad7b02a34d34e6a5ae386ad9d99aef1f7f903bc24#npm:3.1.4"], - ["@babel/runtime", "npm:7.10.5"], - ["@types/graphql", null], - ["@types/subscriptions-transport-ws", null], - ["extract-files", "npm:9.0.0"], - ["graphql", "npm:15.3.0"], - ["subscriptions-transport-ws", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18"] - ], - "packagePeers": [ - "@types/graphql", - "@types/subscriptions-transport-ws", - "graphql", - "subscriptions-transport-ws" - ], - "linkType": "HARD", - }] - ]], - ["apollo-utilities", [ - ["npm:1.3.4", { - "packageLocation": "./.yarn/cache/apollo-utilities-npm-1.3.4-2bafd621ff-5a046f8792.zip/node_modules/apollo-utilities/", - "packageDependencies": [ - ["apollo-utilities", "npm:1.3.4"] - ], - "linkType": "SOFT", - }], - ["virtual:7061219c319bef59bce9b091ecd412f2b806f9949302f75d78ecdd2605eb6ee74208dde38595a702b510b7be1c809b9976547a1c28f0497c19f08cb710d68d9d#npm:1.3.4", { - "packageLocation": "./.yarn/$$virtual/apollo-utilities-virtual-726f6a6431/0/cache/apollo-utilities-npm-1.3.4-2bafd621ff-5a046f8792.zip/node_modules/apollo-utilities/", - "packageDependencies": [ - ["apollo-utilities", "virtual:7061219c319bef59bce9b091ecd412f2b806f9949302f75d78ecdd2605eb6ee74208dde38595a702b510b7be1c809b9976547a1c28f0497c19f08cb710d68d9d#npm:1.3.4"], - ["@types/graphql", null], - ["@wry/equality", "npm:0.1.11"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["graphql", "npm:15.3.0"], - ["ts-invariant", "npm:0.4.4"], - ["tslib", "npm:1.13.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["aproba", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/aproba-npm-1.2.0-34129f0778-d4bac3e640.zip/node_modules/aproba/", - "packageDependencies": [ - ["aproba", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["are-we-there-yet", [ - ["npm:1.1.5", { - "packageLocation": "./.yarn/cache/are-we-there-yet-npm-1.1.5-b8418908b0-2d6fdb0ddd.zip/node_modules/are-we-there-yet/", - "packageDependencies": [ - ["are-we-there-yet", "npm:1.1.5"], - ["delegates", "npm:1.0.0"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["argparse", [ - ["npm:1.0.10", { - "packageLocation": "./.yarn/cache/argparse-npm-1.0.10-528934e59d-435adaef5f.zip/node_modules/argparse/", - "packageDependencies": [ - ["argparse", "npm:1.0.10"], - ["sprintf-js", "npm:1.0.3"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/argparse-npm-2.0.1-faff7999e6-160b7a25d2.zip/node_modules/argparse/", - "packageDependencies": [ - ["argparse", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["arity-n", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/arity-n-npm-1.0.4-5d0edda7a8-60e48e72da.zip/node_modules/arity-n/", - "packageDependencies": [ - ["arity-n", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["arr-diff", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/arr-diff-npm-4.0.0-cec86ae312-cbdff67cf5.zip/node_modules/arr-diff/", - "packageDependencies": [ - ["arr-diff", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["arr-flatten", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/arr-flatten-npm-1.1.0-0c12b693e4-564dc9c32c.zip/node_modules/arr-flatten/", - "packageDependencies": [ - ["arr-flatten", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["arr-union", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/arr-union-npm-3.1.0-853ada9729-78f0f75c47.zip/node_modules/arr-union/", - "packageDependencies": [ - ["arr-union", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["array-differ", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/array-differ-npm-3.0.0-ddc0d89007-6d87a752b5.zip/node_modules/array-differ/", - "packageDependencies": [ - ["array-differ", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["array-find-index", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/array-find-index-npm-1.0.2-a7d5fbff35-5320b3bd46.zip/node_modules/array-find-index/", - "packageDependencies": [ - ["array-find-index", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["array-flatten", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-de7a056451.zip/node_modules/array-flatten/", - "packageDependencies": [ - ["array-flatten", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/array-flatten-npm-3.0.0-bd1cc8ecc1-babaee814e.zip/node_modules/array-flatten/", - "packageDependencies": [ - ["array-flatten", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["array-union", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/array-union-npm-1.0.2-cc61ee268f-5be2568acc.zip/node_modules/array-union/", - "packageDependencies": [ - ["array-union", "npm:1.0.2"], - ["array-uniq", "npm:1.0.3"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/array-union-npm-2.1.0-4e4852b221-93af542eb8.zip/node_modules/array-union/", - "packageDependencies": [ - ["array-union", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["array-uniq", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/array-uniq-npm-1.0.3-e7f5d6f3a1-ae11b7fc1e.zip/node_modules/array-uniq/", - "packageDependencies": [ - ["array-uniq", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["array-unique", [ - ["npm:0.3.2", { - "packageLocation": "./.yarn/cache/array-unique-npm-0.3.2-9f62c6ac93-7139dbbcaf.zip/node_modules/array-unique/", - "packageDependencies": [ - ["array-unique", "npm:0.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["array.prototype.flatmap", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/array.prototype.flatmap-npm-1.2.3-5a87b1ccec-adbf30f271.zip/node_modules/array.prototype.flatmap/", - "packageDependencies": [ - ["array.prototype.flatmap", "npm:1.2.3"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.17.6"], - ["function-bind", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["arrify", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/arrify-npm-1.0.1-affafba9fe-f1d3bae819.zip/node_modules/arrify/", - "packageDependencies": [ - ["arrify", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/arrify-npm-2.0.1-38c408f77c-2a19726815.zip/node_modules/arrify/", - "packageDependencies": [ - ["arrify", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["asap", [ - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/asap-npm-2.0.6-36714d439d-3d314f8c59.zip/node_modules/asap/", - "packageDependencies": [ - ["asap", "npm:2.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["asn1", [ - ["npm:0.2.4", { - "packageLocation": "./.yarn/cache/asn1-npm-0.2.4-219dd49411-5743ace942.zip/node_modules/asn1/", - "packageDependencies": [ - ["asn1", "npm:0.2.4"], - ["safer-buffer", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["asn1.js", [ - ["npm:4.10.1", { - "packageLocation": "./.yarn/cache/asn1.js-npm-4.10.1-e813eef12f-9c57bcc4ca.zip/node_modules/asn1.js/", - "packageDependencies": [ - ["asn1.js", "npm:4.10.1"], - ["bn.js", "npm:4.11.9"], - ["inherits", "npm:2.0.4"], - ["minimalistic-assert", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["assert", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/assert-npm-1.4.1-023bb57287-0e5dd8f92e.zip/node_modules/assert/", - "packageDependencies": [ - ["assert", "npm:1.4.1"], - ["util", "npm:0.10.3"] - ], - "linkType": "HARD", - }], - ["npm:1.5.0", { - "packageLocation": "./.yarn/cache/assert-npm-1.5.0-3303b97e04-9bd01a7a57.zip/node_modules/assert/", - "packageDependencies": [ - ["assert", "npm:1.5.0"], - ["object-assign", "npm:4.1.1"], - ["util", "npm:0.10.3"] - ], - "linkType": "HARD", - }] - ]], - ["assert-plus", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-1bda24f673.zip/node_modules/assert-plus/", - "packageDependencies": [ - ["assert-plus", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["assign-symbols", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/assign-symbols-npm-1.0.0-fd803ccdf1-893e9389a5.zip/node_modules/assign-symbols/", - "packageDependencies": [ - ["assign-symbols", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["ast-types", [ - ["npm:0.13.2", { - "packageLocation": "./.yarn/cache/ast-types-npm-0.13.2-bd7ee71c05-0c49bfbed3.zip/node_modules/ast-types/", - "packageDependencies": [ - ["ast-types", "npm:0.13.2"] - ], - "linkType": "HARD", - }] - ]], - ["astral-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/astral-regex-npm-1.0.0-2df7c41332-08e37f5996.zip/node_modules/astral-regex/", - "packageDependencies": [ - ["astral-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["async", [ - ["npm:0.9.2", { - "packageLocation": "./.yarn/cache/async-npm-0.9.2-d8cafe6cc3-78c0aad8ad.zip/node_modules/async/", - "packageDependencies": [ - ["async", "npm:0.9.2"] - ], - "linkType": "HARD", - }], - ["npm:2.6.3", { - "packageLocation": "./.yarn/cache/async-npm-2.6.3-2de4150248-5c30ec6f3d.zip/node_modules/async/", - "packageDependencies": [ - ["async", "npm:2.6.3"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }] - ]], - ["async-each", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/async-each-npm-1.0.3-464af5d2f3-0cf01982ae.zip/node_modules/async-each/", - "packageDependencies": [ - ["async-each", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["async-limiter", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/async-limiter-npm-1.0.1-7e6819bcdb-d123312ace.zip/node_modules/async-limiter/", - "packageDependencies": [ - ["async-limiter", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["async-retry", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/async-retry-npm-1.2.3-eaddd454e1-a770aad562.zip/node_modules/async-retry/", - "packageDependencies": [ - ["async-retry", "npm:1.2.3"], - ["retry", "npm:0.12.0"] - ], - "linkType": "HARD", - }] - ]], - ["asynckit", [ - ["npm:0.4.0", { - "packageLocation": "./.yarn/cache/asynckit-npm-0.4.0-c718858525-a024000b9d.zip/node_modules/asynckit/", - "packageDependencies": [ - ["asynckit", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["at-least-node", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-8f33efc162.zip/node_modules/at-least-node/", - "packageDependencies": [ - ["at-least-node", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["atob", [ - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/atob-npm-2.1.2-bcb583261e-597c0d1a74.zip/node_modules/atob/", - "packageDependencies": [ - ["atob", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["atob-lite", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/atob-lite-npm-2.0.0-62802899eb-bb739d5e65.zip/node_modules/atob-lite/", - "packageDependencies": [ - ["atob-lite", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["attr-accept", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/attr-accept-npm-1.1.3-a846f77cd3-aec637f2ee.zip/node_modules/attr-accept/", - "packageDependencies": [ - ["attr-accept", "npm:1.1.3"], - ["core-js", "npm:2.6.11"] - ], - "linkType": "HARD", - }], - ["npm:2.2.2", { - "packageLocation": "./.yarn/cache/attr-accept-npm-2.2.2-b9cd0d8eac-e9c5d3580f.zip/node_modules/attr-accept/", - "packageDependencies": [ - ["attr-accept", "npm:2.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["auto-bind", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/auto-bind-npm-4.0.0-1cda90694b-8054fe5776.zip/node_modules/auto-bind/", - "packageDependencies": [ - ["auto-bind", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["autoprefixer", [ - ["npm:9.8.5", { - "packageLocation": "./.yarn/cache/autoprefixer-npm-9.8.5-ee0c14c5da-90c2b6b328.zip/node_modules/autoprefixer/", - "packageDependencies": [ - ["autoprefixer", "npm:9.8.5"], - ["browserslist", "npm:4.13.0"], - ["caniuse-lite", "npm:1.0.30001107"], - ["colorette", "npm:1.2.1"], - ["normalize-range", "npm:0.1.2"], - ["num2fraction", "npm:1.2.2"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["aws-sign2", [ - ["npm:0.7.0", { - "packageLocation": "./.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-7162b9b8fb.zip/node_modules/aws-sign2/", - "packageDependencies": [ - ["aws-sign2", "npm:0.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["aws4", [ - ["npm:1.10.0", { - "packageLocation": "./.yarn/cache/aws4-npm-1.10.0-74d09999c1-f8c20a0031.zip/node_modules/aws4/", - "packageDependencies": [ - ["aws4", "npm:1.10.0"] - ], - "linkType": "HARD", - }] - ]], - ["axios", [ - ["npm:0.18.1", { - "packageLocation": "./.yarn/cache/axios-npm-0.18.1-a90f17c1fb-6188a1b815.zip/node_modules/axios/", - "packageDependencies": [ - ["axios", "npm:0.18.1"], - ["follow-redirects", "npm:1.5.10"], - ["is-buffer", "npm:2.0.4"] - ], - "linkType": "HARD", - }], - ["npm:0.19.0", { - "packageLocation": "./.yarn/cache/axios-npm-0.19.0-3dc3d92067-be5f8504a1.zip/node_modules/axios/", - "packageDependencies": [ - ["axios", "npm:0.19.0"], - ["follow-redirects", "npm:1.5.10"], - ["is-buffer", "npm:2.0.4"] - ], - "linkType": "HARD", - }], - ["npm:0.19.2", { - "packageLocation": "./.yarn/cache/axios-npm-0.19.2-e4e8599895-bad346deea.zip/node_modules/axios/", - "packageDependencies": [ - ["axios", "npm:0.19.2"], - ["follow-redirects", "npm:1.5.10"] - ], - "linkType": "HARD", - }] - ]], - ["babel-code-frame", [ - ["npm:6.26.0", { - "packageLocation": "./.yarn/cache/babel-code-frame-npm-6.26.0-9f86717636-cc2a799ccc.zip/node_modules/babel-code-frame/", - "packageDependencies": [ - ["babel-code-frame", "npm:6.26.0"], - ["chalk", "npm:1.1.3"], - ["esutils", "npm:2.0.3"], - ["js-tokens", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["babel-jest", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/babel-jest-npm-26.1.0-5d4c3b400b-8be941e189.zip/node_modules/babel-jest/", - "packageDependencies": [ - ["babel-jest", "npm:26.1.0"] - ], - "linkType": "SOFT", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/babel-jest-npm-26.6.3-5630fee2b8-89231d00e6.zip/node_modules/babel-jest/", - "packageDependencies": [ - ["babel-jest", "npm:26.6.3"] - ], - "linkType": "SOFT", - }], - ["virtual:9abf384bc41cada52db19b9b690df683e74e43291fe7be017740370df8c21131394ddb5930427e3bd01a491f851022382666efb31eac63220e76176492722e2c#npm:26.1.0", { - "packageLocation": "./.yarn/$$virtual/babel-jest-virtual-873d8489d2/0/cache/babel-jest-npm-26.1.0-5d4c3b400b-8be941e189.zip/node_modules/babel-jest/", - "packageDependencies": [ - ["babel-jest", "virtual:9abf384bc41cada52db19b9b690df683e74e43291fe7be017740370df8c21131394ddb5930427e3bd01a491f851022382666efb31eac63220e76176492722e2c#npm:26.1.0"], - ["@babel/core", "npm:7.10.5"], - ["@jest/transform", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["@types/babel__core", "npm:7.1.9"], - ["babel-plugin-istanbul", "npm:6.0.0"], - ["babel-preset-jest", "virtual:873d8489d2e75df658b211f88b0fa728bc6eda4bb57c86db78c06d2d018267d560ad60ab611ee4329c5ffc7eb8fb47a705b351c85b5b775c41b6cfeaf71dd6b9#npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["slash", "npm:3.0.0"] - ], - "packagePeers": [ - "@babel/core" - ], - "linkType": "HARD", - }], - ["virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3", { - "packageLocation": "./.yarn/$$virtual/babel-jest-virtual-9f33f3a3f1/0/cache/babel-jest-npm-26.6.3-5630fee2b8-89231d00e6.zip/node_modules/babel-jest/", - "packageDependencies": [ - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"], - ["@babel/core", "npm:7.10.5"], - ["@jest/transform", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/babel__core", "npm:7.1.9"], - ["babel-plugin-istanbul", "npm:6.0.0"], - ["babel-preset-jest", "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["slash", "npm:3.0.0"] - ], - "packagePeers": [ - "@babel/core" - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-dynamic-import-node", [ - ["npm:2.3.3", { - "packageLocation": "./.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-be081936a9-6745b8edca.zip/node_modules/babel-plugin-dynamic-import-node/", - "packageDependencies": [ - ["babel-plugin-dynamic-import-node", "npm:2.3.3"], - ["object.assign", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-istanbul", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-0a185405d8.zip/node_modules/babel-plugin-istanbul/", - "packageDependencies": [ - ["babel-plugin-istanbul", "npm:6.0.0"], - ["@babel/helper-plugin-utils", "npm:7.10.4"], - ["@istanbuljs/load-nyc-config", "npm:1.1.0"], - ["@istanbuljs/schema", "npm:0.1.2"], - ["istanbul-lib-instrument", "npm:4.0.3"], - ["test-exclude", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-jest-hoist", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/babel-plugin-jest-hoist-npm-26.1.0-f4eb433603-af2f7e28ad.zip/node_modules/babel-plugin-jest-hoist/", - "packageDependencies": [ - ["babel-plugin-jest-hoist", "npm:26.1.0"], - ["@babel/template", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"], - ["@types/babel__core", "npm:7.1.9"], - ["@types/babel__traverse", "npm:7.0.13"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/babel-plugin-jest-hoist-npm-26.6.2-1a51633e87-e9c1de0fce.zip/node_modules/babel-plugin-jest-hoist/", - "packageDependencies": [ - ["babel-plugin-jest-hoist", "npm:26.6.2"], - ["@babel/template", "npm:7.10.4"], - ["@babel/types", "npm:7.10.5"], - ["@types/babel__core", "npm:7.1.9"], - ["@types/babel__traverse", "npm:7.0.13"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-styled-components", [ - ["npm:1.11.0", { - "packageLocation": "./.yarn/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/", - "packageDependencies": [ - ["babel-plugin-styled-components", "npm:1.11.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3942ea4996deb8db0313d3ac8ad29b916eb4017388a1e1ce205ec6835fca92ab6e1e8c99e38e386e3682ca5cbbc16b77c92fdc72fc0c4ded5385ac2bc1153767#npm:1.11.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-styled-components-virtual-442a42dbbe/0/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/", - "packageDependencies": [ - ["babel-plugin-styled-components", "virtual:3942ea4996deb8db0313d3ac8ad29b916eb4017388a1e1ce205ec6835fca92ab6e1e8c99e38e386e3682ca5cbbc16b77c92fdc72fc0c4ded5385ac2bc1153767#npm:1.11.0"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@types/styled-components", null], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["lodash", "npm:4.17.19"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@types/styled-components", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:8b2b81fd6bd437cd8e3b3c589e5c2987a79b464981c840d3e52a42d0b8e252b1c7d69fc41ab44ab3b9bb12010e877616bb05a14e2efd582d7c21861dfeadff9c#npm:1.11.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-styled-components-virtual-c15a9fef79/0/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/", - "packageDependencies": [ - ["babel-plugin-styled-components", "virtual:8b2b81fd6bd437cd8e3b3c589e5c2987a79b464981c840d3e52a42d0b8e252b1c7d69fc41ab44ab3b9bb12010e877616bb05a14e2efd582d7c21861dfeadff9c#npm:1.11.0"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@types/styled-components", null], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["lodash", "npm:4.17.19"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@types/styled-components", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:c6c5dc42529e5e1b6399934e28230d17650bddc1d9df2ef1ed7f32d9c4a1472e309409cdfee0daaba8d0d9d2ff1627dce630fd7dc8351b2b0a246189ccafdb23#npm:1.11.0", { - "packageLocation": "./.yarn/$$virtual/babel-plugin-styled-components-virtual-ee8c19a6d9/0/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/", - "packageDependencies": [ - ["babel-plugin-styled-components", "virtual:c6c5dc42529e5e1b6399934e28230d17650bddc1d9df2ef1ed7f32d9c4a1472e309409cdfee0daaba8d0d9d2ff1627dce630fd7dc8351b2b0a246189ccafdb23#npm:1.11.0"], - ["@babel/helper-annotate-as-pure", "npm:7.10.4"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@types/styled-components", null], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["lodash", "npm:4.17.19"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@types/styled-components", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-syntax-jsx", [ - ["npm:6.18.0", { - "packageLocation": "./.yarn/cache/babel-plugin-syntax-jsx-npm-6.18.0-fcf0a98a71-a5c8174ad6.zip/node_modules/babel-plugin-syntax-jsx/", - "packageDependencies": [ - ["babel-plugin-syntax-jsx", "npm:6.18.0"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-syntax-trailing-function-commas", [ - ["npm:7.0.0-beta.0", { - "packageLocation": "./.yarn/cache/babel-plugin-syntax-trailing-function-commas-npm-7.0.0-beta.0-bdba488627-c66215ecdc.zip/node_modules/babel-plugin-syntax-trailing-function-commas/", - "packageDependencies": [ - ["babel-plugin-syntax-trailing-function-commas", "npm:7.0.0-beta.0"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-transform-define", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/babel-plugin-transform-define-npm-2.0.0-5df0609739-8015d93508.zip/node_modules/babel-plugin-transform-define/", - "packageDependencies": [ - ["babel-plugin-transform-define", "npm:2.0.0"], - ["lodash", "npm:4.17.19"], - ["traverse", "npm:0.6.6"] - ], - "linkType": "HARD", - }] - ]], - ["babel-plugin-transform-react-remove-prop-types", [ - ["npm:0.4.24", { - "packageLocation": "./.yarn/cache/babel-plugin-transform-react-remove-prop-types-npm-0.4.24-63d7506242-4004ce6c87.zip/node_modules/babel-plugin-transform-react-remove-prop-types/", - "packageDependencies": [ - ["babel-plugin-transform-react-remove-prop-types", "npm:0.4.24"] - ], - "linkType": "HARD", - }] - ]], - ["babel-preset-current-node-syntax", [ - ["npm:0.1.3", { - "packageLocation": "./.yarn/cache/babel-preset-current-node-syntax-npm-0.1.3-173cdc742b-35ed34f14d.zip/node_modules/babel-preset-current-node-syntax/", - "packageDependencies": [ - ["babel-preset-current-node-syntax", "npm:0.1.3"] - ], - "linkType": "SOFT", - }], - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-bba41cc95a.zip/node_modules/babel-preset-current-node-syntax/", - "packageDependencies": [ - ["babel-preset-current-node-syntax", "npm:1.0.1"] - ], - "linkType": "SOFT", - }], - ["virtual:92a3886917b4efc490e0dba772e01979746235cf7800f572b940e326c0370d1bbcf7105ebdf38ae054147f689038a1380a1eb1f923a4c3368081578e9c1577d4#npm:0.1.3", { - "packageLocation": "./.yarn/$$virtual/babel-preset-current-node-syntax-virtual-c6d3e0344d/0/cache/babel-preset-current-node-syntax-npm-0.1.3-173cdc742b-35ed34f14d.zip/node_modules/babel-preset-current-node-syntax/", - "packageDependencies": [ - ["babel-preset-current-node-syntax", "virtual:92a3886917b4efc490e0dba772e01979746235cf7800f572b940e326c0370d1bbcf7105ebdf38ae054147f689038a1380a1eb1f923a4c3368081578e9c1577d4#npm:0.1.3"], - ["@babel/core", "npm:7.10.5"], - ["@babel/plugin-syntax-async-generators", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4"], - ["@babel/plugin-syntax-bigint", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-class-properties", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-import-meta", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-json-strings", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-numeric-separator", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1", { - "packageLocation": "./.yarn/$$virtual/babel-preset-current-node-syntax-virtual-8f974720c8/0/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-bba41cc95a.zip/node_modules/babel-preset-current-node-syntax/", - "packageDependencies": [ - ["babel-preset-current-node-syntax", "virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1"], - ["@babel/core", "npm:7.10.5"], - ["@babel/plugin-syntax-async-generators", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4"], - ["@babel/plugin-syntax-bigint", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-class-properties", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-import-meta", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-json-strings", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-logical-assignment-operators", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-nullish-coalescing-operator", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-numeric-separator", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-optional-catch-binding", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-optional-chaining", "virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3"], - ["@babel/plugin-syntax-top-level-await", "virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4"], - ["@types/babel__core", "npm:7.1.9"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-preset-fbjs", [ - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/babel-preset-fbjs-npm-3.3.0-69ce7fca19-b6cd74200e.zip/node_modules/babel-preset-fbjs/", - "packageDependencies": [ - ["babel-preset-fbjs", "npm:3.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0", { - "packageLocation": "./.yarn/$$virtual/babel-preset-fbjs-virtual-122b4d6595/0/cache/babel-preset-fbjs-npm-3.3.0-69ce7fca19-b6cd74200e.zip/node_modules/babel-preset-fbjs/", - "packageDependencies": [ - ["babel-preset-fbjs", "virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0"], - ["@babel/core", "npm:7.10.5"], - ["@babel/plugin-proposal-class-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-syntax-class-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-syntax-flow", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-syntax-jsx", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-syntax-object-rest-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3"], - ["@babel/plugin-transform-arrow-functions", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-block-scoped-functions", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-block-scoping", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@babel/plugin-transform-classes", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-computed-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-destructuring", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-flow-strip-types", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-for-of", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-function-name", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-member-expression-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-modules-commonjs", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-object-super", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-parameters", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@babel/plugin-transform-property-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-react-display-name", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-react-jsx", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-shorthand-properties", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-spread", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4"], - ["@babel/plugin-transform-template-literals", "virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5"], - ["@types/babel__core", null], - ["babel-plugin-syntax-trailing-function-commas", "npm:7.0.0-beta.0"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["babel-preset-jest", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/babel-preset-jest-npm-26.1.0-7579733c94-09a9051731.zip/node_modules/babel-preset-jest/", - "packageDependencies": [ - ["babel-preset-jest", "npm:26.1.0"] - ], - "linkType": "SOFT", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/babel-preset-jest-npm-26.6.2-456ec36f85-466ca17bba.zip/node_modules/babel-preset-jest/", - "packageDependencies": [ - ["babel-preset-jest", "npm:26.6.2"] - ], - "linkType": "SOFT", - }], - ["virtual:873d8489d2e75df658b211f88b0fa728bc6eda4bb57c86db78c06d2d018267d560ad60ab611ee4329c5ffc7eb8fb47a705b351c85b5b775c41b6cfeaf71dd6b9#npm:26.1.0", { - "packageLocation": "./.yarn/$$virtual/babel-preset-jest-virtual-92a3886917/0/cache/babel-preset-jest-npm-26.1.0-7579733c94-09a9051731.zip/node_modules/babel-preset-jest/", - "packageDependencies": [ - ["babel-preset-jest", "virtual:873d8489d2e75df658b211f88b0fa728bc6eda4bb57c86db78c06d2d018267d560ad60ab611ee4329c5ffc7eb8fb47a705b351c85b5b775c41b6cfeaf71dd6b9#npm:26.1.0"], - ["@babel/core", "npm:7.10.5"], - ["@types/babel__core", "npm:7.1.9"], - ["babel-plugin-jest-hoist", "npm:26.1.0"], - ["babel-preset-current-node-syntax", "virtual:92a3886917b4efc490e0dba772e01979746235cf7800f572b940e326c0370d1bbcf7105ebdf38ae054147f689038a1380a1eb1f923a4c3368081578e9c1577d4#npm:0.1.3"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }], - ["virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2", { - "packageLocation": "./.yarn/$$virtual/babel-preset-jest-virtual-953f19a93f/0/cache/babel-preset-jest-npm-26.6.2-456ec36f85-466ca17bba.zip/node_modules/babel-preset-jest/", - "packageDependencies": [ - ["babel-preset-jest", "virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2"], - ["@babel/core", "npm:7.10.5"], - ["@types/babel__core", "npm:7.1.9"], - ["babel-plugin-jest-hoist", "npm:26.6.2"], - ["babel-preset-current-node-syntax", "virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1"] - ], - "packagePeers": [ - "@babel/core", - "@types/babel__core" - ], - "linkType": "HARD", - }] - ]], - ["backo2", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/backo2-npm-1.0.2-e933aab18a-72f19a0fd2.zip/node_modules/backo2/", - "packageDependencies": [ - ["backo2", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["bail", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/bail-npm-1.0.5-2d4ac89442-25cd4263ee.zip/node_modules/bail/", - "packageDependencies": [ - ["bail", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["balanced-match", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/balanced-match-npm-1.0.0-951a2ad706-f515a605fe.zip/node_modules/balanced-match/", - "packageDependencies": [ - ["balanced-match", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["base", [ - ["npm:0.11.2", { - "packageLocation": "./.yarn/cache/base-npm-0.11.2-a9bde462d6-84e30392fd.zip/node_modules/base/", - "packageDependencies": [ - ["base", "npm:0.11.2"], - ["cache-base", "npm:1.0.1"], - ["class-utils", "npm:0.3.6"], - ["component-emitter", "npm:1.3.0"], - ["define-property", "npm:1.0.0"], - ["isobject", "npm:3.0.1"], - ["mixin-deep", "npm:1.3.2"], - ["pascalcase", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["base64-js", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/base64-js-npm-1.3.1-8625be908e-8a0cc69d7c.zip/node_modules/base64-js/", - "packageDependencies": [ - ["base64-js", "npm:1.3.1"] - ], - "linkType": "HARD", - }], - ["npm:1.5.1", { - "packageLocation": "./.yarn/cache/base64-js-npm-1.5.1-b2f7275641-c1b41a26dd.zip/node_modules/base64-js/", - "packageDependencies": [ - ["base64-js", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["bcrypt-pbkdf", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-3f57eb99bb.zip/node_modules/bcrypt-pbkdf/", - "packageDependencies": [ - ["bcrypt-pbkdf", "npm:1.0.2"], - ["tweetnacl", "npm:0.14.5"] - ], - "linkType": "HARD", - }] - ]], - ["before-after-hook", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/before-after-hook-npm-2.1.0-68b62dea36-4df7ef0992.zip/node_modules/before-after-hook/", - "packageDependencies": [ - ["before-after-hook", "npm:2.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/before-after-hook-npm-2.2.0-33eb5dba97-93e5f65327.zip/node_modules/before-after-hook/", - "packageDependencies": [ - ["before-after-hook", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["big.js", [ - ["npm:5.2.2", { - "packageLocation": "./.yarn/cache/big.js-npm-5.2.2-e147c30820-ea33d7d256.zip/node_modules/big.js/", - "packageDependencies": [ - ["big.js", "npm:5.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["bin-version", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/bin-version-npm-2.0.0-ea4f0f729a-66ec07a283.zip/node_modules/bin-version/", - "packageDependencies": [ - ["bin-version", "npm:2.0.0"], - ["execa", "npm:0.1.1"], - ["find-versions", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["bin-version-check", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/bin-version-check-npm-3.0.0-0c9a4d3e6d-9310f00fde.zip/node_modules/bin-version-check/", - "packageDependencies": [ - ["bin-version-check", "npm:3.0.0"], - ["bin-version", "npm:2.0.0"], - ["semver", "npm:5.7.1"], - ["semver-truncate", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["binary-extensions", [ - ["npm:1.13.1", { - "packageLocation": "./.yarn/cache/binary-extensions-npm-1.13.1-fb81dec2b0-7cdacc6dad.zip/node_modules/binary-extensions/", - "packageDependencies": [ - ["binary-extensions", "npm:1.13.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/binary-extensions-npm-2.1.0-0681d7e2ce-12bee28179.zip/node_modules/binary-extensions/", - "packageDependencies": [ - ["binary-extensions", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["binaryextensions", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/binaryextensions-npm-2.3.0-b7818ff03c-2634fffe52.zip/node_modules/binaryextensions/", - "packageDependencies": [ - ["binaryextensions", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["bindings", [ - ["npm:1.5.0", { - "packageLocation": "./.yarn/cache/bindings-npm-1.5.0-77ce1d213c-bd623dec58.zip/node_modules/bindings/", - "packageDependencies": [ - ["bindings", "npm:1.5.0"], - ["file-uri-to-path", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["bl", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-15d009339c.zip/node_modules/bl/", - "packageDependencies": [ - ["bl", "npm:4.1.0"], - ["buffer", "npm:5.7.1"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:3.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["bluebird", [ - ["npm:3.7.2", { - "packageLocation": "./.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-4f2288662f.zip/node_modules/bluebird/", - "packageDependencies": [ - ["bluebird", "npm:3.7.2"] - ], - "linkType": "HARD", - }] - ]], - ["bn.js", [ - ["npm:4.11.9", { - "packageLocation": "./.yarn/cache/bn.js-npm-4.11.9-c739f92b89-31630d3560.zip/node_modules/bn.js/", - "packageDependencies": [ - ["bn.js", "npm:4.11.9"] - ], - "linkType": "HARD", - }], - ["npm:5.1.2", { - "packageLocation": "./.yarn/cache/bn.js-npm-5.1.2-cb72ababd7-ed0f337a22.zip/node_modules/bn.js/", - "packageDependencies": [ - ["bn.js", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["body-parser", [ - ["npm:1.19.0", { - "packageLocation": "./.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-18c2a81df5.zip/node_modules/body-parser/", - "packageDependencies": [ - ["body-parser", "npm:1.19.0"], - ["bytes", "npm:3.1.0"], - ["content-type", "npm:1.0.4"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["depd", "npm:1.1.2"], - ["http-errors", "npm:1.7.2"], - ["iconv-lite", "npm:0.4.24"], - ["on-finished", "npm:2.3.0"], - ["qs", "npm:6.7.0"], - ["raw-body", "npm:2.4.0"], - ["type-is", "npm:1.6.18"] - ], - "linkType": "HARD", - }] - ]], - ["boolbase", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/boolbase-npm-1.0.0-965fe9af6d-e827963c41.zip/node_modules/boolbase/", - "packageDependencies": [ - ["boolbase", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["boolean", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/boolean-npm-3.0.1-65ce3fbfd4-043da0e51f.zip/node_modules/boolean/", - "packageDependencies": [ - ["boolean", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["boxen", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/boxen-npm-1.3.0-516a1c78f9-1e402785f9.zip/node_modules/boxen/", - "packageDependencies": [ - ["boxen", "npm:1.3.0"], - ["ansi-align", "npm:2.0.0"], - ["camelcase", "npm:4.1.0"], - ["chalk", "npm:2.4.2"], - ["cli-boxes", "npm:1.0.0"], - ["string-width", "npm:2.1.1"], - ["term-size", "npm:1.2.0"], - ["widest-line", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/boxen-npm-4.2.0-471e88ddba-667b291d22.zip/node_modules/boxen/", - "packageDependencies": [ - ["boxen", "npm:4.2.0"], - ["ansi-align", "npm:3.0.0"], - ["camelcase", "npm:5.3.1"], - ["chalk", "npm:3.0.0"], - ["cli-boxes", "npm:2.2.0"], - ["string-width", "npm:4.2.0"], - ["term-size", "npm:2.2.0"], - ["type-fest", "npm:0.8.1"], - ["widest-line", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["brace-expansion", [ - ["npm:1.1.11", { - "packageLocation": "./.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-4c878e25e4.zip/node_modules/brace-expansion/", - "packageDependencies": [ - ["brace-expansion", "npm:1.1.11"], - ["balanced-match", "npm:1.0.0"], - ["concat-map", "npm:0.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["braces", [ - ["npm:2.3.2", { - "packageLocation": "./.yarn/cache/braces-npm-2.3.2-19cadb3384-5f2d5ae262.zip/node_modules/braces/", - "packageDependencies": [ - ["braces", "npm:2.3.2"], - ["arr-flatten", "npm:1.1.0"], - ["array-unique", "npm:0.3.2"], - ["extend-shallow", "npm:2.0.1"], - ["fill-range", "npm:4.0.0"], - ["isobject", "npm:3.0.1"], - ["repeat-element", "npm:1.1.3"], - ["snapdragon", "npm:0.8.2"], - ["snapdragon-node", "npm:2.1.1"], - ["split-string", "npm:3.1.0"], - ["to-regex", "npm:3.0.2"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/braces-npm-3.0.2-782240b28a-f3493181c3.zip/node_modules/braces/", - "packageDependencies": [ - ["braces", "npm:3.0.2"], - ["fill-range", "npm:7.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["brorand", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/brorand-npm-1.1.0-ea86634c4b-4536dd73f0.zip/node_modules/brorand/", - "packageDependencies": [ - ["brorand", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["browser-process-hrtime", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-565847e5b0.zip/node_modules/browser-process-hrtime/", - "packageDependencies": [ - ["browser-process-hrtime", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["browserify-aes", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/browserify-aes-npm-1.2.0-2ad4aeefbe-487abe9fcf.zip/node_modules/browserify-aes/", - "packageDependencies": [ - ["browserify-aes", "npm:1.2.0"], - ["buffer-xor", "npm:1.0.3"], - ["cipher-base", "npm:1.0.4"], - ["create-hash", "npm:1.2.0"], - ["evp_bytestokey", "npm:1.0.3"], - ["inherits", "npm:2.0.4"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["browserify-cipher", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/browserify-cipher-npm-1.0.1-e00d75c093-4c5ee6d232.zip/node_modules/browserify-cipher/", - "packageDependencies": [ - ["browserify-cipher", "npm:1.0.1"], - ["browserify-aes", "npm:1.2.0"], - ["browserify-des", "npm:1.0.2"], - ["evp_bytestokey", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["browserify-des", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/browserify-des-npm-1.0.2-5d04e0cde2-d9e6ea8db0.zip/node_modules/browserify-des/", - "packageDependencies": [ - ["browserify-des", "npm:1.0.2"], - ["cipher-base", "npm:1.0.4"], - ["des.js", "npm:1.0.1"], - ["inherits", "npm:2.0.4"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["browserify-rsa", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/browserify-rsa-npm-4.0.1-faeab97656-65ad8e818f.zip/node_modules/browserify-rsa/", - "packageDependencies": [ - ["browserify-rsa", "npm:4.0.1"], - ["bn.js", "npm:4.11.9"], - ["randombytes", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["browserify-sign", [ - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/browserify-sign-npm-4.2.0-01da7f72f7-9fd2d93a3d.zip/node_modules/browserify-sign/", - "packageDependencies": [ - ["browserify-sign", "npm:4.2.0"], - ["bn.js", "npm:5.1.2"], - ["browserify-rsa", "npm:4.0.1"], - ["create-hash", "npm:1.2.0"], - ["create-hmac", "npm:1.1.7"], - ["elliptic", "npm:6.5.3"], - ["inherits", "npm:2.0.4"], - ["parse-asn1", "npm:5.1.5"], - ["readable-stream", "npm:3.6.0"], - ["safe-buffer", "npm:5.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["browserify-zlib", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/browserify-zlib-npm-0.2.0-eab4087284-877c864e68.zip/node_modules/browserify-zlib/", - "packageDependencies": [ - ["browserify-zlib", "npm:0.2.0"], - ["pako", "npm:1.0.11"] - ], - "linkType": "HARD", - }] - ]], - ["browserslist", [ - ["npm:4.12.0", { - "packageLocation": "./.yarn/cache/browserslist-npm-4.12.0-4a2e4780c6-564af87b33.zip/node_modules/browserslist/", - "packageDependencies": [ - ["browserslist", "npm:4.12.0"], - ["caniuse-lite", "npm:1.0.30001107"], - ["electron-to-chromium", "npm:1.3.512"], - ["node-releases", "npm:1.1.60"], - ["pkg-up", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.13.0", { - "packageLocation": "./.yarn/cache/browserslist-npm-4.13.0-65b150af6e-91657dcc02.zip/node_modules/browserslist/", - "packageDependencies": [ - ["browserslist", "npm:4.13.0"], - ["caniuse-lite", "npm:1.0.30001107"], - ["electron-to-chromium", "npm:1.3.512"], - ["escalade", "npm:3.0.2"], - ["node-releases", "npm:1.1.60"] - ], - "linkType": "HARD", - }], - ["npm:4.14.6", { - "packageLocation": "./.yarn/cache/browserslist-npm-4.14.6-d863c7aaf9-f870aa5822.zip/node_modules/browserslist/", - "packageDependencies": [ - ["browserslist", "npm:4.14.6"], - ["caniuse-lite", "npm:1.0.30001228"], - ["electron-to-chromium", "npm:1.3.730"], - ["escalade", "npm:3.1.1"], - ["node-releases", "npm:1.1.72"] - ], - "linkType": "HARD", - }] - ]], - ["bs-logger", [ - ["npm:0.2.6", { - "packageLocation": "./.yarn/cache/bs-logger-npm-0.2.6-7670f88b66-f5f2f1315d.zip/node_modules/bs-logger/", - "packageDependencies": [ - ["bs-logger", "npm:0.2.6"], - ["fast-json-stable-stringify", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["bser", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/bser-npm-2.1.1-cc902055ce-302af19567.zip/node_modules/bser/", - "packageDependencies": [ - ["bser", "npm:2.1.1"], - ["node-int64", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["btoa-lite", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/btoa-lite-npm-1.0.0-e85ee9286e-d41fc7dc9f.zip/node_modules/btoa-lite/", - "packageDependencies": [ - ["btoa-lite", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["buffer", [ - ["npm:4.9.2", { - "packageLocation": "./.yarn/cache/buffer-npm-4.9.2-9e40b5e87a-e29ecda22a.zip/node_modules/buffer/", - "packageDependencies": [ - ["buffer", "npm:4.9.2"], - ["base64-js", "npm:1.3.1"], - ["ieee754", "npm:1.1.13"], - ["isarray", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.6.0", { - "packageLocation": "./.yarn/cache/buffer-npm-5.6.0-e1494693bf-e18fdf099c.zip/node_modules/buffer/", - "packageDependencies": [ - ["buffer", "npm:5.6.0"], - ["base64-js", "npm:1.3.1"], - ["ieee754", "npm:1.1.13"] - ], - "linkType": "HARD", - }], - ["npm:5.7.1", { - "packageLocation": "./.yarn/cache/buffer-npm-5.7.1-513ef8259e-1750ac396e.zip/node_modules/buffer/", - "packageDependencies": [ - ["buffer", "npm:5.7.1"], - ["base64-js", "npm:1.5.1"], - ["ieee754", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["buffer-equal-constant-time", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/buffer-equal-constant-time-npm-1.0.1-41826f3419-a38a6fead1.zip/node_modules/buffer-equal-constant-time/", - "packageDependencies": [ - ["buffer-equal-constant-time", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["buffer-from", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-540ceb79c4.zip/node_modules/buffer-from/", - "packageDependencies": [ - ["buffer-from", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["buffer-xor", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/buffer-xor-npm-1.0.3-56bb81b0dd-58ce260802.zip/node_modules/buffer-xor/", - "packageDependencies": [ - ["buffer-xor", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["bufferutil", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/unplugged/bufferutil-npm-4.0.1-6c767f1648/node_modules/bufferutil/", - "packageDependencies": [ - ["bufferutil", "npm:4.0.1"], - ["node-gyp", "npm:7.0.0"], - ["node-gyp-build", "npm:3.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["builtin-modules", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/builtin-modules-npm-3.2.0-ef7266e931-f0e7240f70.zip/node_modules/builtin-modules/", - "packageDependencies": [ - ["builtin-modules", "npm:3.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["builtin-status-codes", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/builtin-status-codes-npm-3.0.0-e376b0580b-8e2872a69a.zip/node_modules/builtin-status-codes/", - "packageDependencies": [ - ["builtin-status-codes", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["bytes", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/bytes-npm-3.1.0-19c5b15405-c3f64645ef.zip/node_modules/bytes/", - "packageDependencies": [ - ["bytes", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["cac", [ - ["npm:6.6.1", { - "packageLocation": "./.yarn/cache/cac-npm-6.6.1-73563e34d3-130be63807.zip/node_modules/cac/", - "packageDependencies": [ - ["cac", "npm:6.6.1"] - ], - "linkType": "HARD", - }], - ["npm:6.7.2", { - "packageLocation": "./.yarn/cache/cac-npm-6.7.2-b037608c8c-e8f060b7e9.zip/node_modules/cac/", - "packageDependencies": [ - ["cac", "npm:6.7.2"] - ], - "linkType": "HARD", - }] - ]], - ["cacache", [ - ["npm:12.0.4", { - "packageLocation": "./.yarn/cache/cacache-npm-12.0.4-0a601d06b9-fd70ecfddb.zip/node_modules/cacache/", - "packageDependencies": [ - ["cacache", "npm:12.0.4"], - ["bluebird", "npm:3.7.2"], - ["chownr", "npm:1.1.4"], - ["figgy-pudding", "npm:3.5.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["infer-owner", "npm:1.0.4"], - ["lru-cache", "npm:5.1.1"], - ["mississippi", "npm:3.0.0"], - ["mkdirp", "npm:0.5.5"], - ["move-concurrently", "npm:1.0.1"], - ["promise-inflight", "virtual:0a601d06b9bb877e28dc3c2bf132b715e8c8db39518cb037053d3e960e698b842f18c4ad29c4dbd116bd79f31c565cbbc9741fa4573e2713fab36fd780658f57#npm:1.0.1"], - ["rimraf", "npm:2.7.1"], - ["ssri", "npm:6.0.1"], - ["unique-filename", "npm:1.1.1"], - ["y18n", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:13.0.1", { - "packageLocation": "./.yarn/cache/cacache-npm-13.0.1-6b13da0303-f1aa76a2f8.zip/node_modules/cacache/", - "packageDependencies": [ - ["cacache", "npm:13.0.1"], - ["chownr", "npm:1.1.4"], - ["figgy-pudding", "npm:3.5.2"], - ["fs-minipass", "npm:2.1.0"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["infer-owner", "npm:1.0.4"], - ["lru-cache", "npm:5.1.1"], - ["minipass", "npm:3.1.3"], - ["minipass-collect", "npm:1.0.2"], - ["minipass-flush", "npm:1.0.5"], - ["minipass-pipeline", "npm:1.2.4"], - ["mkdirp", "npm:0.5.5"], - ["move-concurrently", "npm:1.0.1"], - ["p-map", "npm:3.0.0"], - ["promise-inflight", "virtual:6b13da0303336244e14777818f99c8dfaed4f4c27cb3f6393c3d5e11d3bb4a4a56fbe8ab1298b00979cc78a3a238458a7a0fab5133ad4c736a2296e23ba86eaa#npm:1.0.1"], - ["rimraf", "npm:2.7.1"], - ["ssri", "npm:7.1.0"], - ["unique-filename", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["cache-base", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/cache-base-npm-1.0.1-1538417cb9-3f362ba824.zip/node_modules/cache-base/", - "packageDependencies": [ - ["cache-base", "npm:1.0.1"], - ["collection-visit", "npm:1.0.0"], - ["component-emitter", "npm:1.3.0"], - ["get-value", "npm:2.0.6"], - ["has-value", "npm:1.0.0"], - ["isobject", "npm:3.0.1"], - ["set-value", "npm:2.0.1"], - ["to-object-path", "npm:0.3.0"], - ["union-value", "npm:1.0.1"], - ["unset-value", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cacheable-lookup", [ - ["npm:5.0.3", { - "packageLocation": "./.yarn/cache/cacheable-lookup-npm-5.0.3-8cec59984a-a51e3ddb82.zip/node_modules/cacheable-lookup/", - "packageDependencies": [ - ["cacheable-lookup", "npm:5.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["cacheable-request", [ - ["npm:2.1.4", { - "packageLocation": "./.yarn/cache/cacheable-request-npm-2.1.4-d6f47ac974-225a09edb6.zip/node_modules/cacheable-request/", - "packageDependencies": [ - ["cacheable-request", "npm:2.1.4"], - ["clone-response", "npm:1.0.2"], - ["get-stream", "npm:3.0.0"], - ["http-cache-semantics", "npm:3.8.1"], - ["keyv", "npm:3.0.0"], - ["lowercase-keys", "npm:1.0.0"], - ["normalize-url", "npm:2.0.1"], - ["responselike", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/cacheable-request-npm-6.1.0-684b834873-8b43f66137.zip/node_modules/cacheable-request/", - "packageDependencies": [ - ["cacheable-request", "npm:6.1.0"], - ["clone-response", "npm:1.0.2"], - ["get-stream", "npm:5.1.0"], - ["http-cache-semantics", "npm:4.1.0"], - ["keyv", "npm:3.0.0"], - ["lowercase-keys", "npm:2.0.0"], - ["normalize-url", "npm:4.5.0"], - ["responselike", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:7.0.1", { - "packageLocation": "./.yarn/cache/cacheable-request-npm-7.0.1-d870be2496-fe0b6f3b8a.zip/node_modules/cacheable-request/", - "packageDependencies": [ - ["cacheable-request", "npm:7.0.1"], - ["clone-response", "npm:1.0.2"], - ["get-stream", "npm:5.1.0"], - ["http-cache-semantics", "npm:4.1.0"], - ["keyv", "npm:4.0.1"], - ["lowercase-keys", "npm:2.0.0"], - ["normalize-url", "npm:4.5.0"], - ["responselike", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["call-me-maybe", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/call-me-maybe-npm-1.0.1-d07e74bc9c-07e1afb493.zip/node_modules/call-me-maybe/", - "packageDependencies": [ - ["call-me-maybe", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["caller-callsite", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/caller-callsite-npm-2.0.0-9cf308d7bb-4f62ec12d0.zip/node_modules/caller-callsite/", - "packageDependencies": [ - ["caller-callsite", "npm:2.0.0"], - ["callsites", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["caller-path", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/caller-path-npm-2.0.0-7ff6a26cb9-c4b19e43d4.zip/node_modules/caller-path/", - "packageDependencies": [ - ["caller-path", "npm:2.0.0"], - ["caller-callsite", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["callsites", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/callsites-npm-2.0.0-cc39942b7f-0ccd42292b.zip/node_modules/callsites/", - "packageDependencies": [ - ["callsites", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/callsites-npm-3.1.0-268f989910-f726bf10d7.zip/node_modules/callsites/", - "packageDependencies": [ - ["callsites", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["camel-case", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/camel-case-npm-4.1.1-6ae5ac15ac-c202f62a74.zip/node_modules/camel-case/", - "packageDependencies": [ - ["camel-case", "npm:4.1.1"], - ["pascal-case", "npm:3.1.1"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["camelcase", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/camelcase-npm-2.1.1-2ed296a336-311182686b.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/camelcase-npm-4.1.0-6903b265cd-6ca41b5114.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:4.1.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/camelcase-npm-5.0.0-c808398846-73567fa11f.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:5.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.3.1", { - "packageLocation": "./.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-6a3350c4ea.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:5.3.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/camelcase-npm-6.0.0-9f3e9c28c5-d92305180b.zip/node_modules/camelcase/", - "packageDependencies": [ - ["camelcase", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["camelcase-css", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/camelcase-css-npm-2.0.1-90d1b6df08-3d557da914.zip/node_modules/camelcase-css/", - "packageDependencies": [ - ["camelcase-css", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["camelcase-keys", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/camelcase-keys-npm-2.1.0-3231ee9188-74eff079c8.zip/node_modules/camelcase-keys/", - "packageDependencies": [ - ["camelcase-keys", "npm:2.1.0"], - ["camelcase", "npm:2.1.1"], - ["map-obj", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["camelize", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/camelize-npm-1.0.0-5eda108776-6891ec64c7.zip/node_modules/camelize/", - "packageDependencies": [ - ["camelize", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["caniuse-api", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/caniuse-api-npm-3.0.0-1272c2981e-6822fb3d42.zip/node_modules/caniuse-api/", - "packageDependencies": [ - ["caniuse-api", "npm:3.0.0"], - ["browserslist", "npm:4.13.0"], - ["caniuse-lite", "npm:1.0.30001107"], - ["lodash.memoize", "npm:4.1.2"], - ["lodash.uniq", "npm:4.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["caniuse-lite", [ - ["npm:1.0.30001107", { - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001107-e05d3cc747-08990ad38c.zip/node_modules/caniuse-lite/", - "packageDependencies": [ - ["caniuse-lite", "npm:1.0.30001107"] - ], - "linkType": "HARD", - }], - ["npm:1.0.30001228", { - "packageLocation": "./.yarn/cache/caniuse-lite-npm-1.0.30001228-80662cadf9-a4eb04288e.zip/node_modules/caniuse-lite/", - "packageDependencies": [ - ["caniuse-lite", "npm:1.0.30001228"] - ], - "linkType": "HARD", - }] - ]], - ["capture-exit", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/capture-exit-npm-2.0.0-564874b447-9dd81108a0.zip/node_modules/capture-exit/", - "packageDependencies": [ - ["capture-exit", "npm:2.0.0"], - ["rsvp", "npm:4.8.5"] - ], - "linkType": "HARD", - }] - ]], - ["capture-stack-trace", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/capture-stack-trace-npm-1.0.1-0ffa4b6380-c857f977ca.zip/node_modules/capture-stack-trace/", - "packageDependencies": [ - ["capture-stack-trace", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["caseless", [ - ["npm:0.12.0", { - "packageLocation": "./.yarn/cache/caseless-npm-0.12.0-e83bc5df83-147f48bff9.zip/node_modules/caseless/", - "packageDependencies": [ - ["caseless", "npm:0.12.0"] - ], - "linkType": "HARD", - }] - ]], - ["ccount", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/ccount-npm-1.0.5-acb4b70625-7580ada7a3.zip/node_modules/ccount/", - "packageDependencies": [ - ["ccount", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["cd", [ - ["npm:0.3.3", { - "packageLocation": "./.yarn/cache/cd-npm-0.3.3-9159292adf-100e86199b.zip/node_modules/cd/", - "packageDependencies": [ - ["cd", "npm:0.3.3"] - ], - "linkType": "HARD", - }] - ]], - ["chalk", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/chalk-npm-1.1.3-59144c3a87-bc2df54f6d.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:1.1.3"], - ["ansi-styles", "npm:2.2.1"], - ["escape-string-regexp", "npm:1.0.5"], - ["has-ansi", "npm:2.0.0"], - ["strip-ansi", "npm:3.0.1"], - ["supports-color", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.4.2", { - "packageLocation": "./.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-22c7b7b5bc.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:2.4.2"], - ["ansi-styles", "npm:3.2.1"], - ["escape-string-regexp", "npm:1.0.5"], - ["supports-color", "npm:5.5.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/chalk-npm-3.0.0-e813208025-4018b0c812.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:3.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/chalk-npm-4.0.0-50e5418ea0-12b01a228b.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:4.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/chalk-npm-4.1.0-c746e252ba-f860285b41.zip/node_modules/chalk/", - "packageDependencies": [ - ["chalk", "npm:4.1.0"], - ["ansi-styles", "npm:4.2.1"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["char-regex", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-7db46ed45d.zip/node_modules/char-regex/", - "packageDependencies": [ - ["char-regex", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["character-entities", [ - ["npm:1.2.4", { - "packageLocation": "./.yarn/cache/character-entities-npm-1.2.4-a5c359383c-6ca8a790a2.zip/node_modules/character-entities/", - "packageDependencies": [ - ["character-entities", "npm:1.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["character-entities-html4", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/character-entities-html4-npm-1.1.4-a40dc3af2a-1022eecdd5.zip/node_modules/character-entities-html4/", - "packageDependencies": [ - ["character-entities-html4", "npm:1.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["character-entities-legacy", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/character-entities-legacy-npm-1.1.4-e3e7c8ee55-bb1e426146.zip/node_modules/character-entities-legacy/", - "packageDependencies": [ - ["character-entities-legacy", "npm:1.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["character-reference-invalid", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/character-reference-invalid-npm-1.1.4-e5e17a1a38-82d8ce7828.zip/node_modules/character-reference-invalid/", - "packageDependencies": [ - ["character-reference-invalid", "npm:1.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["chardet", [ - ["npm:0.7.0", { - "packageLocation": "./.yarn/cache/chardet-npm-0.7.0-27933dd6c7-b71a4ee464.zip/node_modules/chardet/", - "packageDependencies": [ - ["chardet", "npm:0.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["chokidar", [ - ["npm:2.1.8", { - "packageLocation": "./.yarn/cache/chokidar-npm-2.1.8-32fdcd020e-0758dcc7c6.zip/node_modules/chokidar/", - "packageDependencies": [ - ["chokidar", "npm:2.1.8"], - ["anymatch", "npm:2.0.0"], - ["async-each", "npm:1.0.3"], - ["braces", "npm:2.3.2"], - ["fsevents", "patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=11e9ea"], - ["glob-parent", "npm:3.1.0"], - ["inherits", "npm:2.0.4"], - ["is-binary-path", "npm:1.0.1"], - ["is-glob", "npm:4.0.1"], - ["normalize-path", "npm:3.0.0"], - ["path-is-absolute", "npm:1.0.1"], - ["readdirp", "npm:2.2.1"], - ["upath", "npm:1.2.0"] - ], - "linkType": "HARD", - }], - ["npm:3.4.1", { - "packageLocation": "./.yarn/cache/chokidar-npm-3.4.1-5148db7619-fdbeae89bd.zip/node_modules/chokidar/", - "packageDependencies": [ - ["chokidar", "npm:3.4.1"], - ["anymatch", "npm:3.1.1"], - ["braces", "npm:3.0.2"], - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"], - ["glob-parent", "npm:5.1.1"], - ["is-binary-path", "npm:2.1.0"], - ["is-glob", "npm:4.0.1"], - ["normalize-path", "npm:3.0.0"], - ["readdirp", "npm:3.4.0"] - ], - "linkType": "HARD", - }], - ["npm:3.4.2", { - "packageLocation": "./.yarn/cache/chokidar-npm-3.4.2-4e5f7d3b1f-a394c13d28.zip/node_modules/chokidar/", - "packageDependencies": [ - ["chokidar", "npm:3.4.2"], - ["anymatch", "npm:3.1.1"], - ["braces", "npm:3.0.2"], - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"], - ["glob-parent", "npm:5.1.1"], - ["is-binary-path", "npm:2.1.0"], - ["is-glob", "npm:4.0.1"], - ["normalize-path", "npm:3.0.0"], - ["readdirp", "npm:3.4.0"] - ], - "linkType": "HARD", - }], - ["npm:3.4.3", { - "packageLocation": "./.yarn/cache/chokidar-npm-3.4.3-58f7548978-b5a566b312.zip/node_modules/chokidar/", - "packageDependencies": [ - ["chokidar", "npm:3.4.3"], - ["anymatch", "npm:3.1.1"], - ["braces", "npm:3.0.2"], - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"], - ["glob-parent", "npm:5.1.1"], - ["is-binary-path", "npm:2.1.0"], - ["is-glob", "npm:4.0.1"], - ["normalize-path", "npm:3.0.0"], - ["readdirp", "npm:3.5.0"] - ], - "linkType": "HARD", - }], - ["npm:3.5.1", { - "packageLocation": "./.yarn/cache/chokidar-npm-3.5.1-205217279e-61b3f710f9.zip/node_modules/chokidar/", - "packageDependencies": [ - ["chokidar", "npm:3.5.1"], - ["anymatch", "npm:3.1.1"], - ["braces", "npm:3.0.2"], - ["fsevents", "patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea"], - ["glob-parent", "npm:5.1.1"], - ["is-binary-path", "npm:2.1.0"], - ["is-glob", "npm:4.0.1"], - ["normalize-path", "npm:3.0.0"], - ["readdirp", "npm:3.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["chownr", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/chownr-npm-1.1.4-5bd400ab08-4a7f1a0b26.zip/node_modules/chownr/", - "packageDependencies": [ - ["chownr", "npm:1.1.4"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/chownr-npm-2.0.0-638f1c9c61-b06ba0bf42.zip/node_modules/chownr/", - "packageDependencies": [ - ["chownr", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["chrome-trace-event", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/chrome-trace-event-npm-1.0.2-c73a69cbd7-926fe23bc9.zip/node_modules/chrome-trace-event/", - "packageDependencies": [ - ["chrome-trace-event", "npm:1.0.2"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["ci-info", [ - ["npm:1.6.0", { - "packageLocation": "./.yarn/cache/ci-info-npm-1.6.0-2d91706840-c53d8ead84.zip/node_modules/ci-info/", - "packageDependencies": [ - ["ci-info", "npm:1.6.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/ci-info-npm-2.0.0-78012236a1-553fe83c08.zip/node_modules/ci-info/", - "packageDependencies": [ - ["ci-info", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cipher-base", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/cipher-base-npm-1.0.4-2e98b97140-ec80001ec9.zip/node_modules/cipher-base/", - "packageDependencies": [ - ["cipher-base", "npm:1.0.4"], - ["inherits", "npm:2.0.4"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["cjs-module-lexer", [ - ["npm:0.6.0", { - "packageLocation": "./.yarn/cache/cjs-module-lexer-npm-0.6.0-e80f3766d3-333671db7f.zip/node_modules/cjs-module-lexer/", - "packageDependencies": [ - ["cjs-module-lexer", "npm:0.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["class-utils", [ - ["npm:0.3.6", { - "packageLocation": "./.yarn/cache/class-utils-npm-0.3.6-2c691ad006-6411679ad4.zip/node_modules/class-utils/", - "packageDependencies": [ - ["class-utils", "npm:0.3.6"], - ["arr-union", "npm:3.1.0"], - ["define-property", "npm:0.2.5"], - ["isobject", "npm:3.0.1"], - ["static-extend", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["classnames", [ - ["npm:2.2.6", { - "packageLocation": "./.yarn/cache/classnames-npm-2.2.6-98e9901cf4-490eaeca59.zip/node_modules/classnames/", - "packageDependencies": [ - ["classnames", "npm:2.2.6"] - ], - "linkType": "HARD", - }] - ]], - ["clean-stack", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-e291ce2b8c.zip/node_modules/clean-stack/", - "packageDependencies": [ - ["clean-stack", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["clear", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/clear-npm-0.1.0-a3e2e6f4fa-5bb327928a.zip/node_modules/clear/", - "packageDependencies": [ - ["clear", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["cli-boxes", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/cli-boxes-npm-1.0.0-fdd89bc01b-1227f15d82.zip/node_modules/cli-boxes/", - "packageDependencies": [ - ["cli-boxes", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/cli-boxes-npm-2.2.0-d10e4d5632-db0db07e69.zip/node_modules/cli-boxes/", - "packageDependencies": [ - ["cli-boxes", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["cli-cursor", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/cli-cursor-npm-1.0.2-180e5fc529-72cd145755.zip/node_modules/cli-cursor/", - "packageDependencies": [ - ["cli-cursor", "npm:1.0.2"], - ["restore-cursor", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/cli-cursor-npm-2.1.0-3920629c9c-df33c11b3c.zip/node_modules/cli-cursor/", - "packageDependencies": [ - ["cli-cursor", "npm:2.1.0"], - ["restore-cursor", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/cli-cursor-npm-3.1.0-fee1e46b5e-15dbfc222f.zip/node_modules/cli-cursor/", - "packageDependencies": [ - ["cli-cursor", "npm:3.1.0"], - ["restore-cursor", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["cli-list", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/cli-list-npm-0.2.0-1952bfae83-7ec454773f.zip/node_modules/cli-list/", - "packageDependencies": [ - ["cli-list", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["cli-spinners", [ - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/cli-spinners-npm-2.4.0-dcdee2d7be-c32291dbcc.zip/node_modules/cli-spinners/", - "packageDependencies": [ - ["cli-spinners", "npm:2.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["cli-table", [ - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/cli-table-npm-0.3.1-3a7d522e25-887b0cf31b.zip/node_modules/cli-table/", - "packageDependencies": [ - ["cli-table", "npm:0.3.1"], - ["colors", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["cli-truncate", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/cli-truncate-npm-0.2.1-f053d59b0b-f860298aa3.zip/node_modules/cli-truncate/", - "packageDependencies": [ - ["cli-truncate", "npm:0.2.1"], - ["slice-ansi", "npm:0.0.4"], - ["string-width", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["cli-width", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/cli-width-npm-2.2.1-4bdb77393c-f7c830bddc.zip/node_modules/cli-width/", - "packageDependencies": [ - ["cli-width", "npm:2.2.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/cli-width-npm-3.0.0-387b3f68f9-6e5bc71774.zip/node_modules/cli-width/", - "packageDependencies": [ - ["cli-width", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["clipanion", [ - ["npm:2.4.4", { - "packageLocation": "./.yarn/cache/clipanion-npm-2.4.4-58c51b89cd-e31970cfc2.zip/node_modules/clipanion/", - "packageDependencies": [ - ["clipanion", "npm:2.4.4"] - ], - "linkType": "HARD", - }] - ]], - ["cliui", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/cliui-npm-6.0.0-488b2414c6-e59d064294.zip/node_modules/cliui/", - "packageDependencies": [ - ["cliui", "npm:6.0.0"], - ["string-width", "npm:4.2.0"], - ["strip-ansi", "npm:6.0.0"], - ["wrap-ansi", "npm:6.2.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.4", { - "packageLocation": "./.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-c49ac1d13f.zip/node_modules/cliui/", - "packageDependencies": [ - ["cliui", "npm:7.0.4"], - ["string-width", "npm:4.2.0"], - ["strip-ansi", "npm:6.0.0"], - ["wrap-ansi", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["clone", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/clone-npm-1.0.4-a610fcbcf9-aaaa58f990.zip/node_modules/clone/", - "packageDependencies": [ - ["clone", "npm:1.0.4"] - ], - "linkType": "HARD", - }], - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/clone-npm-2.1.2-1d491c6629-85232d6601.zip/node_modules/clone/", - "packageDependencies": [ - ["clone", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["clone-buffer", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/clone-buffer-npm-1.0.0-7a16490ce4-70d92e1482.zip/node_modules/clone-buffer/", - "packageDependencies": [ - ["clone-buffer", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["clone-deep", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-b0146d66ca.zip/node_modules/clone-deep/", - "packageDependencies": [ - ["clone-deep", "npm:4.0.1"], - ["is-plain-object", "npm:2.0.4"], - ["kind-of", "npm:6.0.3"], - ["shallow-clone", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["clone-regexp", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/clone-regexp-npm-1.0.1-4195b246c6-771ca64cd0.zip/node_modules/clone-regexp/", - "packageDependencies": [ - ["clone-regexp", "npm:1.0.1"], - ["is-regexp", "npm:1.0.0"], - ["is-supported-regexp-flag", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["clone-response", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/clone-response-npm-1.0.2-135ae8239d-71832f9219.zip/node_modules/clone-response/", - "packageDependencies": [ - ["clone-response", "npm:1.0.2"], - ["mimic-response", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["clone-stats", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/clone-stats-npm-1.0.0-cca25a0a42-fc70411afb.zip/node_modules/clone-stats/", - "packageDependencies": [ - ["clone-stats", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cloneable-readable", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/cloneable-readable-npm-1.1.3-a5888ff6e9-b7dda8125e.zip/node_modules/cloneable-readable/", - "packageDependencies": [ - ["cloneable-readable", "npm:1.1.3"], - ["inherits", "npm:2.0.4"], - ["process-nextick-args", "npm:2.0.1"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["co", [ - ["npm:4.6.0", { - "packageLocation": "./.yarn/cache/co-npm-4.6.0-03f2d1feb6-3f22dbbe0f.zip/node_modules/co/", - "packageDependencies": [ - ["co", "npm:4.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["coa", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/coa-npm-2.0.2-f6033e2e60-8724977fd0.zip/node_modules/coa/", - "packageDependencies": [ - ["coa", "npm:2.0.2"], - ["@types/q", "npm:1.5.4"], - ["chalk", "npm:2.4.2"], - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["code-point-at", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/code-point-at-npm-1.1.0-37de5fe566-7d9837296e.zip/node_modules/code-point-at/", - "packageDependencies": [ - ["code-point-at", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["codemirror", [ - ["npm:5.56.0", { - "packageLocation": "./.yarn/cache/codemirror-npm-5.56.0-428befa8b1-b55f27cae2.zip/node_modules/codemirror/", - "packageDependencies": [ - ["codemirror", "npm:5.56.0"] - ], - "linkType": "HARD", - }], - ["npm:5.59.1", { - "packageLocation": "./.yarn/cache/codemirror-npm-5.59.1-5a89ec25a9-42392aeac2.zip/node_modules/codemirror/", - "packageDependencies": [ - ["codemirror", "npm:5.59.1"] - ], - "linkType": "HARD", - }] - ]], - ["codemirror-graphql", [ - ["npm:0.14.0", { - "packageLocation": "./.yarn/cache/codemirror-graphql-npm-0.14.0-22e1365a1b-ef2f95523e.zip/node_modules/codemirror-graphql/", - "packageDependencies": [ - ["codemirror-graphql", "npm:0.14.0"] - ], - "linkType": "SOFT", - }], - ["virtual:03cd25c4d9e3c4537fdae1f1d2b87684da41cf9a7df2bdfc043735a2d0dd8a7c14ab6f5cc81216f47340443866e0560e1edfa5d2ff3f7f5e733e1e01f152b4d7#npm:0.14.0", { - "packageLocation": "./.yarn/$$virtual/codemirror-graphql-virtual-62f5b60d82/0/cache/codemirror-graphql-npm-0.14.0-22e1365a1b-ef2f95523e.zip/node_modules/codemirror-graphql/", - "packageDependencies": [ - ["codemirror-graphql", "virtual:03cd25c4d9e3c4537fdae1f1d2b87684da41cf9a7df2bdfc043735a2d0dd8a7c14ab6f5cc81216f47340443866e0560e1edfa5d2ff3f7f5e733e1e01f152b4d7#npm:0.14.0"], - ["@types/codemirror", null], - ["@types/graphql", null], - ["codemirror", "npm:5.56.0"], - ["graphql", "npm:15.3.0"], - ["graphql-language-service-interface", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.7.0"], - ["graphql-language-service-parser", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0"], - ["graphql-language-service-utils", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4"] - ], - "packagePeers": [ - "@types/codemirror", - "@types/graphql", - "codemirror", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["collapse-white-space", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/collapse-white-space-npm-1.0.6-6fdbf5906f-beca17619b.zip/node_modules/collapse-white-space/", - "packageDependencies": [ - ["collapse-white-space", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["collect-v8-coverage", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-2fc4c79300.zip/node_modules/collect-v8-coverage/", - "packageDependencies": [ - ["collect-v8-coverage", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["collection-visit", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/collection-visit-npm-1.0.0-aba2d5defc-c73cb1316c.zip/node_modules/collection-visit/", - "packageDependencies": [ - ["collection-visit", "npm:1.0.0"], - ["map-visit", "npm:1.0.0"], - ["object-visit", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["color", [ - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/color-npm-3.1.2-f03bbddbdd-3fd5d29d43.zip/node_modules/color/", - "packageDependencies": [ - ["color", "npm:3.1.2"], - ["color-convert", "npm:1.9.3"], - ["color-string", "npm:1.5.3"] - ], - "linkType": "HARD", - }], - ["npm:3.1.3", { - "packageLocation": "./.yarn/cache/color-npm-3.1.3-f860a464c5-d0f4139e98.zip/node_modules/color/", - "packageDependencies": [ - ["color", "npm:3.1.3"], - ["color-convert", "npm:1.9.3"], - ["color-string", "npm:1.5.5"] - ], - "linkType": "HARD", - }] - ]], - ["color-convert", [ - ["npm:1.9.3", { - "packageLocation": "./.yarn/cache/color-convert-npm-1.9.3-1fe690075e-5f244daa3d.zip/node_modules/color-convert/", - "packageDependencies": [ - ["color-convert", "npm:1.9.3"], - ["color-name", "npm:1.1.3"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/color-convert-npm-2.0.1-79730e935b-3d5d8a011a.zip/node_modules/color-convert/", - "packageDependencies": [ - ["color-convert", "npm:2.0.1"], - ["color-name", "npm:1.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["color-name", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/color-name-npm-1.1.3-728b7b5d39-d8b91bb90a.zip/node_modules/color-name/", - "packageDependencies": [ - ["color-name", "npm:1.1.3"] - ], - "linkType": "HARD", - }], - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/color-name-npm-1.1.4-025792b0ea-3e1c9a4dee.zip/node_modules/color-name/", - "packageDependencies": [ - ["color-name", "npm:1.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["color-string", [ - ["npm:1.5.3", { - "packageLocation": "./.yarn/cache/color-string-npm-1.5.3-08e3e5cc80-b860fba427.zip/node_modules/color-string/", - "packageDependencies": [ - ["color-string", "npm:1.5.3"], - ["color-name", "npm:1.1.4"], - ["simple-swizzle", "npm:0.2.2"] - ], - "linkType": "HARD", - }], - ["npm:1.5.5", { - "packageLocation": "./.yarn/cache/color-string-npm-1.5.5-dada7277d1-3d7799f70d.zip/node_modules/color-string/", - "packageDependencies": [ - ["color-string", "npm:1.5.5"], - ["color-name", "npm:1.1.4"], - ["simple-swizzle", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["colorette", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/colorette-npm-1.2.1-1d4664fcf6-1cc21ad4b8.zip/node_modules/colorette/", - "packageDependencies": [ - ["colorette", "npm:1.2.1"] - ], - "linkType": "HARD", - }], - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/colorette-npm-1.2.2-da75bd0b32-e240f0c94b.zip/node_modules/colorette/", - "packageDependencies": [ - ["colorette", "npm:1.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["colors", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/colors-npm-1.0.3-6c5d583ab3-d5b1f35612.zip/node_modules/colors/", - "packageDependencies": [ - ["colors", "npm:1.0.3"] - ], - "linkType": "HARD", - }], - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/colors-npm-1.4.0-7e2cf12234-a0f266ac04.zip/node_modules/colors/", - "packageDependencies": [ - ["colors", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["combined-stream", [ - ["npm:1.0.8", { - "packageLocation": "./.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-5791ce7944.zip/node_modules/combined-stream/", - "packageDependencies": [ - ["combined-stream", "npm:1.0.8"], - ["delayed-stream", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["comma-separated-tokens", [ - ["npm:1.0.8", { - "packageLocation": "./.yarn/cache/comma-separated-tokens-npm-1.0.8-00dbbf3418-31a5a2fa6e.zip/node_modules/comma-separated-tokens/", - "packageDependencies": [ - ["comma-separated-tokens", "npm:1.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["commander", [ - ["npm:2.20.3", { - "packageLocation": "./.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-b73428e97d.zip/node_modules/commander/", - "packageDependencies": [ - ["commander", "npm:2.20.3"] - ], - "linkType": "HARD", - }], - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/commander-npm-4.1.1-22a0fe921b-448585071b.zip/node_modules/commander/", - "packageDependencies": [ - ["commander", "npm:4.1.1"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/commander-npm-5.1.0-7e939e7832-d16141ea7f.zip/node_modules/commander/", - "packageDependencies": [ - ["commander", "npm:5.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["comment-json", [ - ["npm:2.4.2", { - "packageLocation": "./.yarn/cache/comment-json-npm-2.4.2-ad40caa02b-80bc181741.zip/node_modules/comment-json/", - "packageDependencies": [ - ["comment-json", "npm:2.4.2"], - ["core-util-is", "npm:1.0.2"], - ["esprima", "npm:4.0.1"], - ["has-own-prop", "npm:2.0.0"], - ["repeat-string", "npm:1.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["common-tags", [ - ["npm:1.8.0", { - "packageLocation": "./.yarn/cache/common-tags-npm-1.8.0-7a31956e16-f37a868d86.zip/node_modules/common-tags/", - "packageDependencies": [ - ["common-tags", "npm:1.8.0"] - ], - "linkType": "HARD", - }] - ]], - ["commondir", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/commondir-npm-1.0.1-291b790340-98f18ad14f.zip/node_modules/commondir/", - "packageDependencies": [ - ["commondir", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["component-emitter", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/component-emitter-npm-1.3.0-4b848565b9-fc4edbf101.zip/node_modules/component-emitter/", - "packageDependencies": [ - ["component-emitter", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["compose-function", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/compose-function-npm-3.0.3-78fa572363-069b4e1a82.zip/node_modules/compose-function/", - "packageDependencies": [ - ["compose-function", "npm:3.0.3"], - ["arity-n", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["concat-map", [ - ["npm:0.0.1", { - "packageLocation": "./.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-554e28d9ee.zip/node_modules/concat-map/", - "packageDependencies": [ - ["concat-map", "npm:0.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["concat-stream", [ - ["npm:1.6.2", { - "packageLocation": "./.yarn/cache/concat-stream-npm-1.6.2-2bee337060-7a97b7a7d0.zip/node_modules/concat-stream/", - "packageDependencies": [ - ["concat-stream", "npm:1.6.2"], - ["buffer-from", "npm:1.1.1"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"], - ["typedarray", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["concurrently", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/concurrently-npm-6.0.0-30b74cef1f-c5ef6bb312.zip/node_modules/concurrently/", - "packageDependencies": [ - ["concurrently", "npm:6.0.0"], - ["chalk", "npm:4.1.0"], - ["date-fns", "npm:2.18.0"], - ["lodash", "npm:4.17.20"], - ["read-pkg", "npm:5.2.0"], - ["rxjs", "npm:6.6.6"], - ["spawn-command", "npm:0.0.2"], - ["supports-color", "npm:8.1.1"], - ["tree-kill", "npm:1.2.2"], - ["yargs", "npm:16.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["conf", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/conf-npm-1.4.0-da21ebea11-36c3ee7942.zip/node_modules/conf/", - "packageDependencies": [ - ["conf", "npm:1.4.0"], - ["dot-prop", "npm:4.2.0"], - ["env-paths", "npm:1.0.0"], - ["make-dir", "npm:1.3.0"], - ["pkg-up", "npm:2.0.0"], - ["write-file-atomic", "npm:2.4.3"] - ], - "linkType": "HARD", - }] - ]], - ["config-chain", [ - ["npm:1.1.12", { - "packageLocation": "./.yarn/cache/config-chain-npm-1.1.12-9791350b34-caf4b96491.zip/node_modules/config-chain/", - "packageDependencies": [ - ["config-chain", "npm:1.1.12"], - ["ini", "npm:1.3.5"], - ["proto-list", "npm:1.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["configstore", [ - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/configstore-npm-3.1.2-bd3a1d9154-3b7185bc3d.zip/node_modules/configstore/", - "packageDependencies": [ - ["configstore", "npm:3.1.2"], - ["dot-prop", "npm:4.2.0"], - ["graceful-fs", "npm:4.2.4"], - ["make-dir", "npm:1.3.0"], - ["unique-string", "npm:1.0.0"], - ["write-file-atomic", "npm:2.4.3"], - ["xdg-basedir", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/configstore-npm-5.0.1-739433cdc5-81dd877bf7.zip/node_modules/configstore/", - "packageDependencies": [ - ["configstore", "npm:5.0.1"], - ["dot-prop", "npm:5.2.0"], - ["graceful-fs", "npm:4.2.4"], - ["make-dir", "npm:3.1.0"], - ["unique-string", "npm:2.0.0"], - ["write-file-atomic", "npm:3.0.3"], - ["xdg-basedir", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["console-browserify", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/console-browserify-npm-1.2.0-5619eeb6ff-ddc0e717a4.zip/node_modules/console-browserify/", - "packageDependencies": [ - ["console-browserify", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["console-control-strings", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-58a404d951.zip/node_modules/console-control-strings/", - "packageDependencies": [ - ["console-control-strings", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["constant-case", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/constant-case-npm-3.0.3-a0e4e73276-96ef30a349.zip/node_modules/constant-case/", - "packageDependencies": [ - ["constant-case", "npm:3.0.3"], - ["no-case", "npm:3.0.3"], - ["tslib", "npm:1.13.0"], - ["upper-case", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["constants-browserify", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/constants-browserify-npm-1.0.0-b9a9bcfe4b-108cd8ebfa.zip/node_modules/constants-browserify/", - "packageDependencies": [ - ["constants-browserify", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["content-disposition", [ - ["npm:0.5.3", { - "packageLocation": "./.yarn/cache/content-disposition-npm-0.5.3-9a9a567e17-8f1f235c04.zip/node_modules/content-disposition/", - "packageDependencies": [ - ["content-disposition", "npm:0.5.3"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["content-type", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/content-type-npm-1.0.4-3b1a5ca16b-ff6e19cbf2.zip/node_modules/content-type/", - "packageDependencies": [ - ["content-type", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["convert-source-map", [ - ["npm:0.3.5", { - "packageLocation": "./.yarn/cache/convert-source-map-npm-0.3.5-23a7c1e829-d319375544.zip/node_modules/convert-source-map/", - "packageDependencies": [ - ["convert-source-map", "npm:0.3.5"] - ], - "linkType": "HARD", - }], - ["npm:1.7.0", { - "packageLocation": "./.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-b10fbf041e.zip/node_modules/convert-source-map/", - "packageDependencies": [ - ["convert-source-map", "npm:1.7.0"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["cookie", [ - ["npm:0.4.0", { - "packageLocation": "./.yarn/cache/cookie-npm-0.4.0-4b3d629e45-7aaef4b642.zip/node_modules/cookie/", - "packageDependencies": [ - ["cookie", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["cookie-parser", [ - ["npm:1.4.5", { - "packageLocation": "./.yarn/cache/cookie-parser-npm-1.4.5-85a59b20ec-a3eeda832d.zip/node_modules/cookie-parser/", - "packageDependencies": [ - ["cookie-parser", "npm:1.4.5"], - ["cookie", "npm:0.4.0"], - ["cookie-signature", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["cookie-signature", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/cookie-signature-npm-1.0.6-93f325f7f0-305054e102.zip/node_modules/cookie-signature/", - "packageDependencies": [ - ["cookie-signature", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["copy-concurrently", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/copy-concurrently-npm-1.0.5-a20f3c4b55-62ad9de2dc.zip/node_modules/copy-concurrently/", - "packageDependencies": [ - ["copy-concurrently", "npm:1.0.5"], - ["aproba", "npm:1.2.0"], - ["fs-write-stream-atomic", "npm:1.0.10"], - ["iferr", "npm:0.1.5"], - ["mkdirp", "npm:0.5.5"], - ["rimraf", "npm:2.7.1"], - ["run-queue", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["copy-descriptor", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/copy-descriptor-npm-0.1.1-864db4ab66-c052cf571f.zip/node_modules/copy-descriptor/", - "packageDependencies": [ - ["copy-descriptor", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["copy-to-clipboard", [ - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/copy-to-clipboard-npm-3.3.1-18029bce99-9707f2e405.zip/node_modules/copy-to-clipboard/", - "packageDependencies": [ - ["copy-to-clipboard", "npm:3.3.1"], - ["toggle-selection", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["core-js", [ - ["npm:2.6.11", { - "packageLocation": "./.yarn/unplugged/core-js-npm-2.6.11-15178ded27/node_modules/core-js/", - "packageDependencies": [ - ["core-js", "npm:2.6.11"] - ], - "linkType": "HARD", - }], - ["npm:3.6.5", { - "packageLocation": "./.yarn/unplugged/core-js-npm-3.6.5-5941340066/node_modules/core-js/", - "packageDependencies": [ - ["core-js", "npm:3.6.5"] - ], - "linkType": "HARD", - }] - ]], - ["core-js-compat", [ - ["npm:3.6.5", { - "packageLocation": "./.yarn/cache/core-js-compat-npm-3.6.5-f6ba2f501c-b263b5313f.zip/node_modules/core-js-compat/", - "packageDependencies": [ - ["core-js-compat", "npm:3.6.5"], - ["browserslist", "npm:4.13.0"], - ["semver", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["core-util-is", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-089015ee3c.zip/node_modules/core-util-is/", - "packageDependencies": [ - ["core-util-is", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["cors", [ - ["npm:2.8.5", { - "packageLocation": "./.yarn/cache/cors-npm-2.8.5-c9935a2d12-c83e88c154.zip/node_modules/cors/", - "packageDependencies": [ - ["cors", "npm:2.8.5"], - ["object-assign", "npm:4.1.1"], - ["vary", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["cosmiconfig", [ - ["npm:5.2.1", { - "packageLocation": "./.yarn/cache/cosmiconfig-npm-5.2.1-4a84462a41-02d51fb288.zip/node_modules/cosmiconfig/", - "packageDependencies": [ - ["cosmiconfig", "npm:5.2.1"], - ["import-fresh", "npm:2.0.0"], - ["is-directory", "npm:0.3.1"], - ["js-yaml", "npm:3.14.0"], - ["parse-json", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-151fcb9177.zip/node_modules/cosmiconfig/", - "packageDependencies": [ - ["cosmiconfig", "npm:7.0.0"], - ["@types/parse-json", "npm:4.0.0"], - ["import-fresh", "npm:3.3.0"], - ["parse-json", "npm:5.0.1"], - ["path-type", "npm:4.0.0"], - ["yaml", "npm:1.10.0"] - ], - "linkType": "HARD", - }] - ]], - ["create-ecdh", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/create-ecdh-npm-4.0.3-c40d23c7aa-ea4cc33d33.zip/node_modules/create-ecdh/", - "packageDependencies": [ - ["create-ecdh", "npm:4.0.3"], - ["bn.js", "npm:4.11.9"], - ["elliptic", "npm:6.5.3"] - ], - "linkType": "HARD", - }] - ]], - ["create-error-class", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/create-error-class-npm-3.0.2-b6f6443221-cbd6512694.zip/node_modules/create-error-class/", - "packageDependencies": [ - ["create-error-class", "npm:3.0.2"], - ["capture-stack-trace", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["create-hash", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/create-hash-npm-1.2.0-afd048e1ce-5565182efc.zip/node_modules/create-hash/", - "packageDependencies": [ - ["create-hash", "npm:1.2.0"], - ["cipher-base", "npm:1.0.4"], - ["inherits", "npm:2.0.4"], - ["md5.js", "npm:1.3.5"], - ["ripemd160", "npm:2.0.2"], - ["sha.js", "npm:2.4.11"] - ], - "linkType": "HARD", - }] - ]], - ["create-hmac", [ - ["npm:1.1.7", { - "packageLocation": "./.yarn/cache/create-hmac-npm-1.1.7-b4ef32668a-98957676a9.zip/node_modules/create-hmac/", - "packageDependencies": [ - ["create-hmac", "npm:1.1.7"], - ["cipher-base", "npm:1.0.4"], - ["create-hash", "npm:1.2.0"], - ["inherits", "npm:2.0.4"], - ["ripemd160", "npm:2.0.2"], - ["safe-buffer", "npm:5.1.2"], - ["sha.js", "npm:2.4.11"] - ], - "linkType": "HARD", - }] - ]], - ["cross-fetch", [ - ["npm:3.0.5", { - "packageLocation": "./.yarn/cache/cross-fetch-npm-3.0.5-7ab5c1d55f-99f0f4ae22.zip/node_modules/cross-fetch/", - "packageDependencies": [ - ["cross-fetch", "npm:3.0.5"], - ["node-fetch", "npm:2.6.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.6", { - "packageLocation": "./.yarn/cache/cross-fetch-npm-3.0.6-6e1e683a4e-a491ad1b89.zip/node_modules/cross-fetch/", - "packageDependencies": [ - ["cross-fetch", "npm:3.0.6"], - ["node-fetch", "npm:2.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["cross-spawn", [ - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/cross-spawn-npm-5.1.0-a3e220603e-96018c42a9.zip/node_modules/cross-spawn/", - "packageDependencies": [ - ["cross-spawn", "npm:5.1.0"], - ["lru-cache", "npm:4.0.2"], - ["shebang-command", "npm:1.2.0"], - ["which", "npm:1.3.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.5", { - "packageLocation": "./.yarn/cache/cross-spawn-npm-6.0.5-2deab6c280-05fbbf957d.zip/node_modules/cross-spawn/", - "packageDependencies": [ - ["cross-spawn", "npm:6.0.5"], - ["nice-try", "npm:1.0.5"], - ["path-key", "npm:2.0.1"], - ["semver", "npm:5.7.1"], - ["shebang-command", "npm:1.2.0"], - ["which", "npm:1.3.1"] - ], - "linkType": "HARD", - }], - ["npm:7.0.3", { - "packageLocation": "./.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-51f10036f5.zip/node_modules/cross-spawn/", - "packageDependencies": [ - ["cross-spawn", "npm:7.0.3"], - ["path-key", "npm:3.1.1"], - ["shebang-command", "npm:2.0.0"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["cross-spawn-async", [ - ["npm:2.2.5", { - "packageLocation": "./.yarn/cache/cross-spawn-async-npm-2.2.5-414a7d390a-d16a9ed3ae.zip/node_modules/cross-spawn-async/", - "packageDependencies": [ - ["cross-spawn-async", "npm:2.2.5"], - ["lru-cache", "npm:4.0.2"], - ["which", "npm:1.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["crypto", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/crypto-npm-1.0.1-7cb8e3dca6-e3ecafe330.zip/node_modules/crypto/", - "packageDependencies": [ - ["crypto", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["crypto-browserify", [ - ["npm:3.12.0", { - "packageLocation": "./.yarn/cache/crypto-browserify-npm-3.12.0-bed454fef0-8b558367b3.zip/node_modules/crypto-browserify/", - "packageDependencies": [ - ["crypto-browserify", "npm:3.12.0"], - ["browserify-cipher", "npm:1.0.1"], - ["browserify-sign", "npm:4.2.0"], - ["create-ecdh", "npm:4.0.3"], - ["create-hash", "npm:1.2.0"], - ["create-hmac", "npm:1.1.7"], - ["diffie-hellman", "npm:5.0.3"], - ["inherits", "npm:2.0.4"], - ["pbkdf2", "npm:3.1.1"], - ["public-encrypt", "npm:4.0.3"], - ["randombytes", "npm:2.1.0"], - ["randomfill", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["crypto-js", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/crypto-js-npm-4.0.0-cc8d8715a9-fdd1415b9e.zip/node_modules/crypto-js/", - "packageDependencies": [ - ["crypto-js", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["crypto-random-string", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/crypto-random-string-npm-1.0.0-e708c14263-0876b316cc.zip/node_modules/crypto-random-string/", - "packageDependencies": [ - ["crypto-random-string", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/crypto-random-string-npm-2.0.0-8ab47992ef-7bc19f6caf.zip/node_modules/crypto-random-string/", - "packageDependencies": [ - ["crypto-random-string", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["css", [ - ["npm:2.2.4", { - "packageLocation": "./.yarn/cache/css-npm-2.2.4-2a363d6a5d-b94365b3c0.zip/node_modules/css/", - "packageDependencies": [ - ["css", "npm:2.2.4"], - ["inherits", "npm:2.0.4"], - ["source-map", "npm:0.6.1"], - ["source-map-resolve", "npm:0.5.3"], - ["urix", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["css-box-model", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/css-box-model-npm-1.2.1-d4e0001730-6a66067d0f.zip/node_modules/css-box-model/", - "packageDependencies": [ - ["css-box-model", "npm:1.2.1"], - ["tiny-invariant", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["css-color-keywords", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-a820d3a6eb.zip/node_modules/css-color-keywords/", - "packageDependencies": [ - ["css-color-keywords", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["css-color-names", [ - ["npm:0.0.4", { - "packageLocation": "./.yarn/cache/css-color-names-npm-0.0.4-be9111e9bd-6842f38c3a.zip/node_modules/css-color-names/", - "packageDependencies": [ - ["css-color-names", "npm:0.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["css-declaration-sorter", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/css-declaration-sorter-npm-4.0.1-b49a53b330-9cd18a0cca.zip/node_modules/css-declaration-sorter/", - "packageDependencies": [ - ["css-declaration-sorter", "npm:4.0.1"], - ["postcss", "npm:7.0.32"], - ["timsort", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["css-loader", [ - ["npm:3.5.3", { - "packageLocation": "./.yarn/cache/css-loader-npm-3.5.3-0f886851e6-910936f0ac.zip/node_modules/css-loader/", - "packageDependencies": [ - ["css-loader", "npm:3.5.3"] - ], - "linkType": "SOFT", - }], - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/css-loader-npm-4.3.0-33464197c9-1f441ac567.zip/node_modules/css-loader/", - "packageDependencies": [ - ["css-loader", "npm:4.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.3.0", { - "packageLocation": "./.yarn/$$virtual/css-loader-virtual-ec09201450/0/cache/css-loader-npm-4.3.0-33464197c9-1f441ac567.zip/node_modules/css-loader/", - "packageDependencies": [ - ["css-loader", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.3.0"], - ["@types/webpack", null], - ["camelcase", "npm:6.0.0"], - ["cssesc", "npm:3.0.0"], - ["icss-utils", "npm:4.1.1"], - ["loader-utils", "npm:2.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-modules-extract-imports", "npm:2.0.0"], - ["postcss-modules-local-by-default", "npm:3.0.3"], - ["postcss-modules-scope", "npm:2.2.0"], - ["postcss-modules-values", "npm:3.0.0"], - ["postcss-value-parser", "npm:4.1.0"], - ["schema-utils", "npm:2.7.1"], - ["semver", "npm:7.3.2"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:3.5.3", { - "packageLocation": "./.yarn/$$virtual/css-loader-virtual-e2b1984584/0/cache/css-loader-npm-3.5.3-0f886851e6-910936f0ac.zip/node_modules/css-loader/", - "packageDependencies": [ - ["css-loader", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:3.5.3"], - ["@types/webpack", null], - ["camelcase", "npm:5.3.1"], - ["cssesc", "npm:3.0.0"], - ["icss-utils", "npm:4.1.1"], - ["loader-utils", "npm:1.2.3"], - ["normalize-path", "npm:3.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-modules-extract-imports", "npm:2.0.0"], - ["postcss-modules-local-by-default", "npm:3.0.3"], - ["postcss-modules-scope", "npm:2.2.0"], - ["postcss-modules-values", "npm:3.0.0"], - ["postcss-value-parser", "npm:4.1.0"], - ["schema-utils", "npm:2.7.0"], - ["semver", "npm:6.3.0"], - ["webpack", "npm:4.44.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.5.3", { - "packageLocation": "./.yarn/$$virtual/css-loader-virtual-a3d46ed00b/0/cache/css-loader-npm-3.5.3-0f886851e6-910936f0ac.zip/node_modules/css-loader/", - "packageDependencies": [ - ["css-loader", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.5.3"], - ["@types/webpack", null], - ["camelcase", "npm:5.3.1"], - ["cssesc", "npm:3.0.0"], - ["icss-utils", "npm:4.1.1"], - ["loader-utils", "npm:1.2.3"], - ["normalize-path", "npm:3.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-modules-extract-imports", "npm:2.0.0"], - ["postcss-modules-local-by-default", "npm:3.0.3"], - ["postcss-modules-scope", "npm:2.2.0"], - ["postcss-modules-values", "npm:3.0.0"], - ["postcss-value-parser", "npm:4.1.0"], - ["schema-utils", "npm:2.7.0"], - ["semver", "npm:6.3.0"], - ["webpack", "npm:4.43.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["css-select", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/css-select-npm-2.1.0-c123ed1e29-b534aad04a.zip/node_modules/css-select/", - "packageDependencies": [ - ["css-select", "npm:2.1.0"], - ["boolbase", "npm:1.0.0"], - ["css-what", "npm:3.3.0"], - ["domutils", "npm:1.7.0"], - ["nth-check", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["css-select-base-adapter", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/css-select-base-adapter-npm-0.1.1-5a43b37539-98cea0d8dc.zip/node_modules/css-select-base-adapter/", - "packageDependencies": [ - ["css-select-base-adapter", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["css-to-react-native", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/css-to-react-native-npm-3.0.0-ab07d67d74-d035e1a126.zip/node_modules/css-to-react-native/", - "packageDependencies": [ - ["css-to-react-native", "npm:3.0.0"], - ["camelize", "npm:1.0.0"], - ["css-color-keywords", "npm:1.0.0"], - ["postcss-value-parser", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["css-tree", [ - ["npm:1.0.0-alpha.37", { - "packageLocation": "./.yarn/cache/css-tree-npm-1.0.0-alpha.37-0186f4818a-29d85bad8e.zip/node_modules/css-tree/", - "packageDependencies": [ - ["css-tree", "npm:1.0.0-alpha.37"], - ["mdn-data", "npm:2.0.4"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0-alpha.39", { - "packageLocation": "./.yarn/cache/css-tree-npm-1.0.0-alpha.39-72ebe851b6-2b3b48563f.zip/node_modules/css-tree/", - "packageDependencies": [ - ["css-tree", "npm:1.0.0-alpha.39"], - ["mdn-data", "npm:2.0.6"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["css-unit-converter", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/css-unit-converter-npm-1.1.2-277ce2166c-1ace5626f1.zip/node_modules/css-unit-converter/", - "packageDependencies": [ - ["css-unit-converter", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["css-what", [ - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/css-what-npm-3.3.0-595e826aa9-4e00fc59a9.zip/node_modules/css-what/", - "packageDependencies": [ - ["css-what", "npm:3.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["css.escape", [ - ["npm:1.5.1", { - "packageLocation": "./.yarn/cache/css.escape-npm-1.5.1-b24d2ba77a-44fe5e93fe.zip/node_modules/css.escape/", - "packageDependencies": [ - ["css.escape", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["cssesc", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-673783eda1.zip/node_modules/cssesc/", - "packageDependencies": [ - ["cssesc", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano", [ - ["npm:4.1.10", { - "packageLocation": "./.yarn/cache/cssnano-npm-4.1.10-10e25c9634-7578b12389.zip/node_modules/cssnano/", - "packageDependencies": [ - ["cssnano", "npm:4.1.10"], - ["cosmiconfig", "npm:5.2.1"], - ["cssnano-preset-default", "npm:4.0.7"], - ["is-resolvable", "npm:1.1.0"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-preset-default", [ - ["npm:4.0.7", { - "packageLocation": "./.yarn/cache/cssnano-preset-default-npm-4.0.7-422631428b-7e947b0e09.zip/node_modules/cssnano-preset-default/", - "packageDependencies": [ - ["cssnano-preset-default", "npm:4.0.7"], - ["css-declaration-sorter", "npm:4.0.1"], - ["cssnano-util-raw-cache", "npm:4.0.1"], - ["postcss", "npm:7.0.32"], - ["postcss-calc", "npm:7.0.2"], - ["postcss-colormin", "npm:4.0.3"], - ["postcss-convert-values", "npm:4.0.1"], - ["postcss-discard-comments", "npm:4.0.2"], - ["postcss-discard-duplicates", "npm:4.0.2"], - ["postcss-discard-empty", "npm:4.0.1"], - ["postcss-discard-overridden", "npm:4.0.1"], - ["postcss-merge-longhand", "npm:4.0.11"], - ["postcss-merge-rules", "npm:4.0.3"], - ["postcss-minify-font-values", "npm:4.0.2"], - ["postcss-minify-gradients", "npm:4.0.2"], - ["postcss-minify-params", "npm:4.0.2"], - ["postcss-minify-selectors", "npm:4.0.2"], - ["postcss-normalize-charset", "npm:4.0.1"], - ["postcss-normalize-display-values", "npm:4.0.2"], - ["postcss-normalize-positions", "npm:4.0.2"], - ["postcss-normalize-repeat-style", "npm:4.0.2"], - ["postcss-normalize-string", "npm:4.0.2"], - ["postcss-normalize-timing-functions", "npm:4.0.2"], - ["postcss-normalize-unicode", "npm:4.0.1"], - ["postcss-normalize-url", "npm:4.0.1"], - ["postcss-normalize-whitespace", "npm:4.0.2"], - ["postcss-ordered-values", "npm:4.1.2"], - ["postcss-reduce-initial", "npm:4.0.3"], - ["postcss-reduce-transforms", "npm:4.0.2"], - ["postcss-svgo", "npm:4.0.2"], - ["postcss-unique-selectors", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-preset-simple", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/cssnano-preset-simple-npm-1.1.4-9164ab1822-a9b16d1aa7.zip/node_modules/cssnano-preset-simple/", - "packageDependencies": [ - ["cssnano-preset-simple", "npm:1.1.4"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }], - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/cssnano-preset-simple-npm-1.2.1-c4f1a81895-67e05d4fa6.zip/node_modules/cssnano-preset-simple/", - "packageDependencies": [ - ["cssnano-preset-simple", "npm:1.2.1"], - ["caniuse-lite", "npm:1.0.30001107"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-simple", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/cssnano-simple-npm-1.0.5-7a39423314-058b2a9f32.zip/node_modules/cssnano-simple/", - "packageDependencies": [ - ["cssnano-simple", "npm:1.0.5"], - ["cssnano-preset-simple", "npm:1.1.4"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }], - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/cssnano-simple-npm-1.2.1-a79430acd3-79b99d4fe1.zip/node_modules/cssnano-simple/", - "packageDependencies": [ - ["cssnano-simple", "npm:1.2.1"], - ["cssnano-preset-simple", "npm:1.2.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-util-get-arguments", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/cssnano-util-get-arguments-npm-4.0.0-bcb28d23a7-4001786367.zip/node_modules/cssnano-util-get-arguments/", - "packageDependencies": [ - ["cssnano-util-get-arguments", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-util-get-match", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/cssnano-util-get-match-npm-4.0.0-3d9b0fc2c4-1220816e19.zip/node_modules/cssnano-util-get-match/", - "packageDependencies": [ - ["cssnano-util-get-match", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-util-raw-cache", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/cssnano-util-raw-cache-npm-4.0.1-dbb3751499-d3eb80e96f.zip/node_modules/cssnano-util-raw-cache/", - "packageDependencies": [ - ["cssnano-util-raw-cache", "npm:4.0.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["cssnano-util-same-parent", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/cssnano-util-same-parent-npm-4.0.1-2a3442fd72-c01d567f9d.zip/node_modules/cssnano-util-same-parent/", - "packageDependencies": [ - ["cssnano-util-same-parent", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["csso", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/csso-npm-4.0.3-550f0cdc39-b573974336.zip/node_modules/csso/", - "packageDependencies": [ - ["csso", "npm:4.0.3"], - ["css-tree", "npm:1.0.0-alpha.39"] - ], - "linkType": "HARD", - }] - ]], - ["cssom", [ - ["npm:0.3.8", { - "packageLocation": "./.yarn/cache/cssom-npm-0.3.8-a9291d36ff-b7fb8b13aa.zip/node_modules/cssom/", - "packageDependencies": [ - ["cssom", "npm:0.3.8"] - ], - "linkType": "HARD", - }], - ["npm:0.4.4", { - "packageLocation": "./.yarn/cache/cssom-npm-0.4.4-818f01a6e3-db81cac442.zip/node_modules/cssom/", - "packageDependencies": [ - ["cssom", "npm:0.4.4"] - ], - "linkType": "HARD", - }] - ]], - ["cssstyle", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-a778180d2f.zip/node_modules/cssstyle/", - "packageDependencies": [ - ["cssstyle", "npm:2.3.0"], - ["cssom", "npm:0.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["csstype", [ - ["npm:2.6.11", { - "packageLocation": "./.yarn/cache/csstype-npm-2.6.11-77160fd1b8-b5de145e84.zip/node_modules/csstype/", - "packageDependencies": [ - ["csstype", "npm:2.6.11"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/csstype-npm-3.0.2-fe855324c2-acf2852a3c.zip/node_modules/csstype/", - "packageDependencies": [ - ["csstype", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["currently-unhandled", [ - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/currently-unhandled-npm-0.4.1-38eddab665-1968b4b576.zip/node_modules/currently-unhandled/", - "packageDependencies": [ - ["currently-unhandled", "npm:0.4.1"], - ["array-find-index", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["cyclist", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/cyclist-npm-1.0.1-e4eaffe3c5-74bc0a48c3.zip/node_modules/cyclist/", - "packageDependencies": [ - ["cyclist", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["d", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/d-npm-1.0.1-64afbbc689-cf9b770965.zip/node_modules/d/", - "packageDependencies": [ - ["d", "npm:1.0.1"], - ["es5-ext", "npm:0.10.53"], - ["type", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["danger", [ - ["npm:10.6.0", { - "packageLocation": "./.yarn/cache/danger-npm-10.6.0-27690e4121-70672c6636.zip/node_modules/danger/", - "packageDependencies": [ - ["danger", "npm:10.6.0"], - ["@babel/polyfill", "npm:7.12.1"], - ["@octokit/rest", "npm:16.43.2"], - ["async-retry", "npm:1.2.3"], - ["chalk", "npm:2.4.2"], - ["commander", "npm:2.20.3"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["fast-json-patch", "npm:3.0.0-1"], - ["get-stdin", "npm:6.0.0"], - ["gitlab", "npm:10.2.1"], - ["http-proxy-agent", "npm:2.1.0"], - ["https-proxy-agent", "npm:2.2.4"], - ["hyperlinker", "npm:1.0.0"], - ["json5", "npm:2.1.3"], - ["jsonpointer", "npm:4.1.0"], - ["jsonwebtoken", "npm:8.5.1"], - ["lodash.find", "npm:4.6.0"], - ["lodash.includes", "npm:4.3.0"], - ["lodash.isobject", "npm:3.0.2"], - ["lodash.keys", "npm:4.2.0"], - ["lodash.mapvalues", "npm:4.6.0"], - ["lodash.memoize", "npm:4.1.2"], - ["memfs-or-file-map-to-github-branch", "npm:1.2.0"], - ["micromatch", "npm:3.1.10"], - ["node-cleanup", "npm:2.1.2"], - ["node-fetch", "npm:2.6.1"], - ["override-require", "npm:1.1.1"], - ["p-limit", "npm:2.3.0"], - ["parse-diff", "npm:0.7.1"], - ["parse-git-config", "npm:2.0.3"], - ["parse-github-url", "npm:1.0.2"], - ["parse-link-header", "npm:1.0.1"], - ["pinpoint", "npm:1.1.0"], - ["prettyjson", "npm:1.2.1"], - ["readline-sync", "npm:1.4.10"], - ["require-from-string", "npm:2.0.2"], - ["supports-hyperlinks", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["dargs", [ - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/dargs-npm-6.1.0-bc315b0bc7-8c5e307c8c.zip/node_modules/dargs/", - "packageDependencies": [ - ["dargs", "npm:6.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["dashdash", [ - ["npm:1.14.1", { - "packageLocation": "./.yarn/cache/dashdash-npm-1.14.1-be8f10a286-5959409ee4.zip/node_modules/dashdash/", - "packageDependencies": [ - ["dashdash", "npm:1.14.1"], - ["assert-plus", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["data-uri-to-buffer", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/data-uri-to-buffer-npm-3.0.0-c2647a7a16-e870d70678.zip/node_modules/data-uri-to-buffer/", - "packageDependencies": [ - ["data-uri-to-buffer", "npm:3.0.0"], - ["buffer-from", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/data-uri-to-buffer-npm-3.0.1-830646f9ee-9f28217ba7.zip/node_modules/data-uri-to-buffer/", - "packageDependencies": [ - ["data-uri-to-buffer", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["data-urls", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-42239927c6.zip/node_modules/data-urls/", - "packageDependencies": [ - ["data-urls", "npm:2.0.0"], - ["abab", "npm:2.0.3"], - ["whatwg-mimetype", "npm:2.3.0"], - ["whatwg-url", "npm:8.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["dataloader", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/dataloader-npm-2.0.0-216fa8d208-0165c2e807.zip/node_modules/dataloader/", - "packageDependencies": [ - ["dataloader", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["date-fns", [ - ["npm:1.30.1", { - "packageLocation": "./.yarn/cache/date-fns-npm-1.30.1-b974a8f1e1-351fc19b04.zip/node_modules/date-fns/", - "packageDependencies": [ - ["date-fns", "npm:1.30.1"] - ], - "linkType": "HARD", - }], - ["npm:2.18.0", { - "packageLocation": "./.yarn/cache/date-fns-npm-2.18.0-5edf1f6623-58320ad512.zip/node_modules/date-fns/", - "packageDependencies": [ - ["date-fns", "npm:2.18.0"] - ], - "linkType": "HARD", - }], - ["npm:2.21.1", { - "packageLocation": "./.yarn/cache/date-fns-npm-2.21.1-a333d4fe93-00a2ddea10.zip/node_modules/date-fns/", - "packageDependencies": [ - ["date-fns", "npm:2.21.1"] - ], - "linkType": "HARD", - }] - ]], - ["dateformat", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/dateformat-npm-3.0.3-ed02e5ddbd-8e6b36c4d3.zip/node_modules/dateformat/", - "packageDependencies": [ - ["dateformat", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["de-indent", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/de-indent-npm-1.0.2-66cccde30f-a1933a4328.zip/node_modules/de-indent/", - "packageDependencies": [ - ["de-indent", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["debug", [ - ["npm:2.6.9", { - "packageLocation": "./.yarn/cache/debug-npm-2.6.9-7d4cb597dc-559f44f98c.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "npm:2.6.9"] - ], - "linkType": "SOFT", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/debug-npm-3.1.0-9f0accb99b-1295acd5e0.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "npm:3.1.0"] - ], - "linkType": "SOFT", - }], - ["npm:3.2.6", { - "packageLocation": "./.yarn/cache/debug-npm-3.2.6-6214e40f12-619feb53b1.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "npm:3.2.6"] - ], - "linkType": "SOFT", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/debug-npm-4.2.0-9392baba7e-dcfb8ede26.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "npm:4.2.0"] - ], - "linkType": "SOFT", - }], - ["npm:4.3.2", { - "packageLocation": "./.yarn/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "npm:4.3.2"] - ], - "linkType": "SOFT", - }], - ["virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-6806520415/0/cache/debug-npm-4.2.0-9392baba7e-dcfb8ede26.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["@types/supports-color", null], - ["ms", "npm:2.1.2"], - ["supports-color", null] - ], - "packagePeers": [ - "@types/supports-color", - "supports-color" - ], - "linkType": "HARD", - }], - ["virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-6cfa7ae8cd/0/cache/debug-npm-2.6.9-7d4cb597dc-559f44f98c.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["ms", "npm:2.0.0"], - ["supports-color", null] - ], - "packagePeers": [ - "supports-color" - ], - "linkType": "HARD", - }], - ["virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-c8b34b81df/0/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2"], - ["ms", "npm:2.1.2"], - ["supports-color", null] - ], - "packagePeers": [ - "supports-color" - ], - "linkType": "HARD", - }], - ["virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-77b911398e/0/cache/debug-npm-3.1.0-9f0accb99b-1295acd5e0.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0"], - ["ms", "npm:2.0.0"], - ["supports-color", null] - ], - "packagePeers": [ - "supports-color" - ], - "linkType": "HARD", - }], - ["virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-107c5e8239/0/cache/debug-npm-3.2.6-6214e40f12-619feb53b1.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6"], - ["ms", "npm:2.1.2"], - ["supports-color", "npm:5.5.0"] - ], - "packagePeers": [ - "supports-color" - ], - "linkType": "HARD", - }], - ["virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6", { - "packageLocation": "./.yarn/$$virtual/debug-virtual-b857c1e678/0/cache/debug-npm-3.2.6-6214e40f12-619feb53b1.zip/node_modules/debug/", - "packageDependencies": [ - ["debug", "virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6"], - ["ms", "npm:2.1.2"], - ["supports-color", null] - ], - "packagePeers": [ - "supports-color" - ], - "linkType": "HARD", - }] - ]], - ["decamelize", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-8ca9d03ea8.zip/node_modules/decamelize/", - "packageDependencies": [ - ["decamelize", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["decimal.js", [ - ["npm:10.2.0", { - "packageLocation": "./.yarn/cache/decimal.js-npm-10.2.0-9960ab19c0-f60df1cce5.zip/node_modules/decimal.js/", - "packageDependencies": [ - ["decimal.js", "npm:10.2.0"] - ], - "linkType": "HARD", - }], - ["npm:10.2.1", { - "packageLocation": "./.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-ba28b27bb8.zip/node_modules/decimal.js/", - "packageDependencies": [ - ["decimal.js", "npm:10.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["decode-uri-component", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/decode-uri-component-npm-0.2.0-5bcc0f3597-d8cb28c33f.zip/node_modules/decode-uri-component/", - "packageDependencies": [ - ["decode-uri-component", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["decompress-response", [ - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/decompress-response-npm-3.3.0-6e7b6375c3-93b0dcc8f0.zip/node_modules/decompress-response/", - "packageDependencies": [ - ["decompress-response", "npm:3.3.0"], - ["mimic-response", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:4.2.1", { - "packageLocation": "./.yarn/cache/decompress-response-npm-4.2.1-abe5b4ebe4-d854171a10.zip/node_modules/decompress-response/", - "packageDependencies": [ - ["decompress-response", "npm:4.2.1"], - ["mimic-response", "npm:2.1.0"] - ], - "linkType": "HARD", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/decompress-response-npm-6.0.0-359de2878c-bb8b8c42be.zip/node_modules/decompress-response/", - "packageDependencies": [ - ["decompress-response", "npm:6.0.0"], - ["mimic-response", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["deep-extend", [ - ["npm:0.6.0", { - "packageLocation": "./.yarn/cache/deep-extend-npm-0.6.0-e182924219-856d7f52db.zip/node_modules/deep-extend/", - "packageDependencies": [ - ["deep-extend", "npm:0.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["deep-is", [ - ["npm:0.1.3", { - "packageLocation": "./.yarn/cache/deep-is-npm-0.1.3-0941784645-3de58f86af.zip/node_modules/deep-is/", - "packageDependencies": [ - ["deep-is", "npm:0.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["deepmerge", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/deepmerge-npm-2.2.1-44c00cbffa-8394eb5ab1.zip/node_modules/deepmerge/", - "packageDependencies": [ - ["deepmerge", "npm:2.2.1"] - ], - "linkType": "HARD", - }], - ["npm:4.2.2", { - "packageLocation": "./.yarn/cache/deepmerge-npm-4.2.2-112165ced2-85abf8e004.zip/node_modules/deepmerge/", - "packageDependencies": [ - ["deepmerge", "npm:4.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["default-uid", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/default-uid-npm-1.0.0-d3139af30d-16bd750145.zip/node_modules/default-uid/", - "packageDependencies": [ - ["default-uid", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["defaults", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/defaults-npm-1.0.3-e829107b9e-974f63dd0a.zip/node_modules/defaults/", - "packageDependencies": [ - ["defaults", "npm:1.0.3"], - ["clone", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["defer-to-connect", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/defer-to-connect-npm-1.1.3-5887885147-d8632cafae.zip/node_modules/defer-to-connect/", - "packageDependencies": [ - ["defer-to-connect", "npm:1.1.3"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/defer-to-connect-npm-2.0.0-ef0ce813c8-0453938bfc.zip/node_modules/defer-to-connect/", - "packageDependencies": [ - ["defer-to-connect", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["define-properties", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/define-properties-npm-1.1.3-0f3115e2b9-b69c48c1b1.zip/node_modules/define-properties/", - "packageDependencies": [ - ["define-properties", "npm:1.1.3"], - ["object-keys", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["define-property", [ - ["npm:0.2.5", { - "packageLocation": "./.yarn/cache/define-property-npm-0.2.5-44a0da3575-6fed054072.zip/node_modules/define-property/", - "packageDependencies": [ - ["define-property", "npm:0.2.5"], - ["is-descriptor", "npm:0.1.6"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/define-property-npm-1.0.0-e2fb9f44c6-9034f8f6f3.zip/node_modules/define-property/", - "packageDependencies": [ - ["define-property", "npm:1.0.0"], - ["is-descriptor", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/define-property-npm-2.0.2-4a2067c3ba-00c7ec53b5.zip/node_modules/define-property/", - "packageDependencies": [ - ["define-property", "npm:2.0.2"], - ["is-descriptor", "npm:1.0.2"], - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["defined", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/defined-npm-1.0.0-891782ba77-3f17b8807d.zip/node_modules/defined/", - "packageDependencies": [ - ["defined", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["delayed-stream", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-d9dfb0a7c7.zip/node_modules/delayed-stream/", - "packageDependencies": [ - ["delayed-stream", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["delegates", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/delegates-npm-1.0.0-9b1942d75f-7459e34d29.zip/node_modules/delegates/", - "packageDependencies": [ - ["delegates", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["demo", [ - ["workspace:apps/demo", { - "packageLocation": "./apps/demo/", - "packageDependencies": [ - ["demo", "workspace:apps/demo"], - ["@tailwindcss/ui", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0"], - ["@tinacms/react-modals", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/js-cookie", "npm:2.2.6"], - ["@types/node", "npm:13.13.15"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@urql/core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3"], - ["@xstate/react", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1"], - ["autoprefixer", "npm:9.8.5"], - ["codemirror", "npm:5.59.1"], - ["concurrently", "npm:6.0.0"], - ["dotenv", "npm:8.2.0"], - ["fast-glob", "npm:3.2.4"], - ["final-form", "npm:4.20.1"], - ["formik", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5"], - ["graphiql", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["js-cookie", "npm:2.2.1"], - ["next", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1"], - ["nodemon", "npm:2.0.7"], - ["postcss-import", "npm:12.0.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["react-markdown", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"], - ["styled-jsx", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0"], - ["tailwindcss", "npm:1.6.0"], - ["tina-graphql", "workspace:packages/tina-graphql"], - ["tina-graphql-gateway", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway"], - ["tina-graphql-gateway-cli", "workspace:packages/tina-graphql-gateway-cli"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["tinacms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["urql", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0"], - ["xstate", "npm:4.13.0"], - ["yup", "npm:0.28.5"] - ], - "linkType": "SOFT", - }] - ]], - ["depd", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/depd-npm-1.1.2-b0c8414da7-f45566ff70.zip/node_modules/depd/", - "packageDependencies": [ - ["depd", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["dependency-graph", [ - ["npm:0.9.0", { - "packageLocation": "./.yarn/cache/dependency-graph-npm-0.9.0-628106a115-bd4be777ce.zip/node_modules/dependency-graph/", - "packageDependencies": [ - ["dependency-graph", "npm:0.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["deprecation", [ - ["npm:2.3.1", { - "packageLocation": "./.yarn/cache/deprecation-npm-2.3.1-e19c92d6e7-59343a0b92.zip/node_modules/deprecation/", - "packageDependencies": [ - ["deprecation", "npm:2.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["des.js", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/des.js-npm-1.0.1-9f155eddb6-74cd0aa0c5.zip/node_modules/des.js/", - "packageDependencies": [ - ["des.js", "npm:1.0.1"], - ["inherits", "npm:2.0.4"], - ["minimalistic-assert", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["destroy", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/destroy-npm-1.0.4-a2203e01cb-5a516fc5a8.zip/node_modules/destroy/", - "packageDependencies": [ - ["destroy", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["detect-libc", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/detect-libc-npm-1.0.3-c30ac344d4-6cec442139.zip/node_modules/detect-libc/", - "packageDependencies": [ - ["detect-libc", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["detect-newline", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-6d3f67971d.zip/node_modules/detect-newline/", - "packageDependencies": [ - ["detect-newline", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["detect-node", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/detect-node-npm-2.0.4-1d5a93916d-e7648a5a91.zip/node_modules/detect-node/", - "packageDependencies": [ - ["detect-node", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["detective", [ - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/detective-npm-5.2.0-c623eb79e6-3dd4582ab1.zip/node_modules/detective/", - "packageDependencies": [ - ["detective", "npm:5.2.0"], - ["acorn-node", "npm:1.8.2"], - ["defined", "npm:1.0.0"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["diff", [ - ["npm:3.5.0", { - "packageLocation": "./.yarn/cache/diff-npm-3.5.0-a321a0df19-b975b73d7e.zip/node_modules/diff/", - "packageDependencies": [ - ["diff", "npm:3.5.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/diff-npm-4.0.2-73133c7102-81b5cd7ddd.zip/node_modules/diff/", - "packageDependencies": [ - ["diff", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["diff-sequences", [ - ["npm:25.2.6", { - "packageLocation": "./.yarn/cache/diff-sequences-npm-25.2.6-d72e0e66bc-332484fc00.zip/node_modules/diff-sequences/", - "packageDependencies": [ - ["diff-sequences", "npm:25.2.6"] - ], - "linkType": "HARD", - }], - ["npm:26.0.0", { - "packageLocation": "./.yarn/cache/diff-sequences-npm-26.0.0-4b8f552043-0b5fdd1803.zip/node_modules/diff-sequences/", - "packageDependencies": [ - ["diff-sequences", "npm:26.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.3.0", { - "packageLocation": "./.yarn/cache/diff-sequences-npm-26.3.0-9df4585509-8d15e420a3.zip/node_modules/diff-sequences/", - "packageDependencies": [ - ["diff-sequences", "npm:26.3.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/diff-sequences-npm-26.6.2-fbf1967570-dd1eb6e52f.zip/node_modules/diff-sequences/", - "packageDependencies": [ - ["diff-sequences", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["diffie-hellman", [ - ["npm:5.0.3", { - "packageLocation": "./.yarn/cache/diffie-hellman-npm-5.0.3-cbef8f3171-c988be315d.zip/node_modules/diffie-hellman/", - "packageDependencies": [ - ["diffie-hellman", "npm:5.0.3"], - ["bn.js", "npm:4.11.9"], - ["miller-rabin", "npm:4.0.1"], - ["randombytes", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["dir-glob", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/dir-glob-npm-2.0.0-e7299e1804-e826e4aa5a.zip/node_modules/dir-glob/", - "packageDependencies": [ - ["dir-glob", "npm:2.0.0"], - ["arrify", "npm:1.0.1"], - ["path-type", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.2", { - "packageLocation": "./.yarn/cache/dir-glob-npm-2.2.2-932e08b501-1ee89c351e.zip/node_modules/dir-glob/", - "packageDependencies": [ - ["dir-glob", "npm:2.2.2"], - ["path-type", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-687fa3bd60.zip/node_modules/dir-glob/", - "packageDependencies": [ - ["dir-glob", "npm:3.0.1"], - ["path-type", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["doctrine", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-2eae469bd2.zip/node_modules/doctrine/", - "packageDependencies": [ - ["doctrine", "npm:3.0.0"], - ["esutils", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["dom-serializer", [ - ["npm:0.2.2", { - "packageLocation": "./.yarn/cache/dom-serializer-npm-0.2.2-2e24969c0e-598e05e71b.zip/node_modules/dom-serializer/", - "packageDependencies": [ - ["dom-serializer", "npm:0.2.2"], - ["domelementtype", "npm:2.0.1"], - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/dom-serializer-npm-1.0.1-b191d93707-45734411e4.zip/node_modules/dom-serializer/", - "packageDependencies": [ - ["dom-serializer", "npm:1.0.1"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.0.0"], - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/dom-serializer-npm-1.1.0-c4d9e9d90f-25b0a31f78.zip/node_modules/dom-serializer/", - "packageDependencies": [ - ["dom-serializer", "npm:1.1.0"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.0.0"], - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:1.3.2", { - "packageLocation": "./.yarn/cache/dom-serializer-npm-1.3.2-133de2b9ce-1a5d6970d2.zip/node_modules/dom-serializer/", - "packageDependencies": [ - ["dom-serializer", "npm:1.3.2"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:4.2.0"], - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["domain-browser", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/domain-browser-npm-1.2.0-d99f0de5ec-39a1156552.zip/node_modules/domain-browser/", - "packageDependencies": [ - ["domain-browser", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["domelementtype", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/domelementtype-npm-1.3.1-87c4b5f9f4-a4791788de.zip/node_modules/domelementtype/", - "packageDependencies": [ - ["domelementtype", "npm:1.3.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/domelementtype-npm-2.0.1-23794ee948-9ddda35625.zip/node_modules/domelementtype/", - "packageDependencies": [ - ["domelementtype", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/domelementtype-npm-2.2.0-c37b3b15bf-70af22cd69.zip/node_modules/domelementtype/", - "packageDependencies": [ - ["domelementtype", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["domexception", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/domexception-npm-2.0.1-81b20626ae-bde9f50cb5.zip/node_modules/domexception/", - "packageDependencies": [ - ["domexception", "npm:2.0.1"], - ["webidl-conversions", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["domhandler", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/domhandler-npm-3.0.0-63db61f4b0-2d935dbe3e.zip/node_modules/domhandler/", - "packageDependencies": [ - ["domhandler", "npm:3.0.0"], - ["domelementtype", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/domhandler-npm-3.3.0-6417f7e17e-dcc53af0ac.zip/node_modules/domhandler/", - "packageDependencies": [ - ["domhandler", "npm:3.3.0"], - ["domelementtype", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/domhandler-npm-4.2.0-e0e096a781-1bdb0ae6b9.zip/node_modules/domhandler/", - "packageDependencies": [ - ["domhandler", "npm:4.2.0"], - ["domelementtype", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["domutils", [ - ["npm:1.7.0", { - "packageLocation": "./.yarn/cache/domutils-npm-1.7.0-7a1529fcfc-a5b2f01fb3.zip/node_modules/domutils/", - "packageDependencies": [ - ["domutils", "npm:1.7.0"], - ["dom-serializer", "npm:0.2.2"], - ["domelementtype", "npm:1.3.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/domutils-npm-2.0.0-f987b47c2d-0570562cb9.zip/node_modules/domutils/", - "packageDependencies": [ - ["domutils", "npm:2.0.0"], - ["dom-serializer", "npm:0.2.2"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/domutils-npm-2.1.0-ec7cce0453-0a2e5a8d94.zip/node_modules/domutils/", - "packageDependencies": [ - ["domutils", "npm:2.1.0"], - ["dom-serializer", "npm:0.2.2"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.4.2", { - "packageLocation": "./.yarn/cache/domutils-npm-2.4.2-836cfae901-43d7e55714.zip/node_modules/domutils/", - "packageDependencies": [ - ["domutils", "npm:2.4.2"], - ["dom-serializer", "npm:1.3.2"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.3.0"] - ], - "linkType": "HARD", - }], - ["npm:2.6.0", { - "packageLocation": "./.yarn/cache/domutils-npm-2.6.0-7eb389c806-9da9185109.zip/node_modules/domutils/", - "packageDependencies": [ - ["domutils", "npm:2.6.0"], - ["dom-serializer", "npm:1.3.2"], - ["domelementtype", "npm:2.2.0"], - ["domhandler", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["dot-case", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/dot-case-npm-3.0.3-9d3160c2af-31e5037039.zip/node_modules/dot-case/", - "packageDependencies": [ - ["dot-case", "npm:3.0.3"], - ["no-case", "npm:3.0.3"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["dot-prop", [ - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/dot-prop-npm-4.2.0-f61418cdac-6dadca2215.zip/node_modules/dot-prop/", - "packageDependencies": [ - ["dot-prop", "npm:4.2.0"], - ["is-obj", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/dot-prop-npm-5.2.0-195360fa83-d2f62e0b5e.zip/node_modules/dot-prop/", - "packageDependencies": [ - ["dot-prop", "npm:5.2.0"], - ["is-obj", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["dotenv", [ - ["npm:8.2.0", { - "packageLocation": "./.yarn/cache/dotenv-npm-8.2.0-6b21df4d37-16cb89cbd7.zip/node_modules/dotenv/", - "packageDependencies": [ - ["dotenv", "npm:8.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["downgrade-root", [ - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/downgrade-root-npm-1.2.2-2e5cfa09bb-cad65057f3.zip/node_modules/downgrade-root/", - "packageDependencies": [ - ["downgrade-root", "npm:1.2.2"], - ["default-uid", "npm:1.0.0"], - ["is-root", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["download-stats", [ - ["npm:0.3.4", { - "packageLocation": "./.yarn/cache/download-stats-npm-0.3.4-13780ff20c-e98829584c.zip/node_modules/download-stats/", - "packageDependencies": [ - ["download-stats", "npm:0.3.4"], - ["JSONStream", "npm:1.3.5"], - ["lazy-cache", "npm:2.0.2"], - ["moment", "npm:2.27.0"] - ], - "linkType": "HARD", - }] - ]], - ["duplexer3", [ - ["npm:0.1.4", { - "packageLocation": "./.yarn/cache/duplexer3-npm-0.1.4-361a33d994-2a4ae463aa.zip/node_modules/duplexer3/", - "packageDependencies": [ - ["duplexer3", "npm:0.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["duplexify", [ - ["npm:3.7.1", { - "packageLocation": "./.yarn/cache/duplexify-npm-3.7.1-8f4f1e821f-9581cdb8f6.zip/node_modules/duplexify/", - "packageDependencies": [ - ["duplexify", "npm:3.7.1"], - ["end-of-stream", "npm:1.4.4"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"], - ["stream-shift", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["ecc-jsbn", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-5b4dd05f24.zip/node_modules/ecc-jsbn/", - "packageDependencies": [ - ["ecc-jsbn", "npm:0.1.2"], - ["jsbn", "npm:0.1.1"], - ["safer-buffer", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["ecdsa-sig-formatter", [ - ["npm:1.0.11", { - "packageLocation": "./.yarn/cache/ecdsa-sig-formatter-npm-1.0.11-b6784e7852-9d07775ee2.zip/node_modules/ecdsa-sig-formatter/", - "packageDependencies": [ - ["ecdsa-sig-formatter", "npm:1.0.11"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["editions", [ - ["npm:2.3.1", { - "packageLocation": "./.yarn/cache/editions-npm-2.3.1-09b622d955-9942b48d96.zip/node_modules/editions/", - "packageDependencies": [ - ["editions", "npm:2.3.1"], - ["errlop", "npm:2.2.0"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["ee-first", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/ee-first-npm-1.1.1-33f8535b39-ba74f91398.zip/node_modules/ee-first/", - "packageDependencies": [ - ["ee-first", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["ejs", [ - ["npm:2.7.4", { - "packageLocation": "./.yarn/unplugged/ejs-npm-2.7.4-879ed38a4e/node_modules/ejs/", - "packageDependencies": [ - ["ejs", "npm:2.7.4"] - ], - "linkType": "HARD", - }], - ["npm:3.1.3", { - "packageLocation": "./.yarn/unplugged/ejs-npm-3.1.3-0e925ceeec/node_modules/ejs/", - "packageDependencies": [ - ["ejs", "npm:3.1.3"], - ["jake", "npm:10.8.2"] - ], - "linkType": "HARD", - }] - ]], - ["electron-to-chromium", [ - ["npm:1.3.512", { - "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.512-5054be7a69-87e9471a66.zip/node_modules/electron-to-chromium/", - "packageDependencies": [ - ["electron-to-chromium", "npm:1.3.512"] - ], - "linkType": "HARD", - }], - ["npm:1.3.730", { - "packageLocation": "./.yarn/cache/electron-to-chromium-npm-1.3.730-e508e38a6b-07e8473e08.zip/node_modules/electron-to-chromium/", - "packageDependencies": [ - ["electron-to-chromium", "npm:1.3.730"] - ], - "linkType": "HARD", - }] - ]], - ["elegant-spinner", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/elegant-spinner-npm-1.0.1-8b799f39a6-69837a8a88.zip/node_modules/elegant-spinner/", - "packageDependencies": [ - ["elegant-spinner", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["elliptic", [ - ["npm:6.5.3", { - "packageLocation": "./.yarn/cache/elliptic-npm-6.5.3-783c509c01-b66cf0b8f8.zip/node_modules/elliptic/", - "packageDependencies": [ - ["elliptic", "npm:6.5.3"], - ["bn.js", "npm:4.11.9"], - ["brorand", "npm:1.1.0"], - ["hash.js", "npm:1.1.7"], - ["hmac-drbg", "npm:1.0.1"], - ["inherits", "npm:2.0.4"], - ["minimalistic-assert", "npm:1.0.1"], - ["minimalistic-crypto-utils", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["emittery", [ - ["npm:0.7.2", { - "packageLocation": "./.yarn/cache/emittery-npm-0.7.2-4a6f20265e-34acfef519.zip/node_modules/emittery/", - "packageDependencies": [ - ["emittery", "npm:0.7.2"] - ], - "linkType": "HARD", - }] - ]], - ["emoji-regex", [ - ["npm:7.0.3", { - "packageLocation": "./.yarn/cache/emoji-regex-npm-7.0.3-cfe9479bb3-e3a504cf52.zip/node_modules/emoji-regex/", - "packageDependencies": [ - ["emoji-regex", "npm:7.0.3"] - ], - "linkType": "HARD", - }], - ["npm:8.0.0", { - "packageLocation": "./.yarn/cache/emoji-regex-npm-8.0.0-213764015c-87cf3f89ef.zip/node_modules/emoji-regex/", - "packageDependencies": [ - ["emoji-regex", "npm:8.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["emojis-list", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/emojis-list-npm-2.1.0-e19a336e35-09220b636c.zip/node_modules/emojis-list/", - "packageDependencies": [ - ["emojis-list", "npm:2.1.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/emojis-list-npm-3.0.0-7faa48e6fd-a79126b55b.zip/node_modules/emojis-list/", - "packageDependencies": [ - ["emojis-list", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["encodeurl", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-6ee5fcbcd2.zip/node_modules/encodeurl/", - "packageDependencies": [ - ["encodeurl", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["encoding", [ - ["npm:0.1.13", { - "packageLocation": "./.yarn/cache/encoding-npm-0.1.13-82a1837d30-282d5696a4.zip/node_modules/encoding/", - "packageDependencies": [ - ["encoding", "npm:0.1.13"], - ["iconv-lite", "npm:0.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["end-of-stream", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/end-of-stream-npm-1.1.0-318d442be5-1a078bec4b.zip/node_modules/end-of-stream/", - "packageDependencies": [ - ["end-of-stream", "npm:1.1.0"], - ["once", "npm:1.3.3"] - ], - "linkType": "HARD", - }], - ["npm:1.4.4", { - "packageLocation": "./.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-7da60e458b.zip/node_modules/end-of-stream/", - "packageDependencies": [ - ["end-of-stream", "npm:1.4.4"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["enhanced-resolve", [ - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/enhanced-resolve-npm-4.3.0-b4e038d9ac-aecdc0b208.zip/node_modules/enhanced-resolve/", - "packageDependencies": [ - ["enhanced-resolve", "npm:4.3.0"], - ["graceful-fs", "npm:4.2.4"], - ["memory-fs", "npm:0.5.0"], - ["tapable", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["entities", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/entities-npm-2.0.3-9763a6a3bc-02dfe1fbf5.zip/node_modules/entities/", - "packageDependencies": [ - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["env-paths", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/env-paths-npm-1.0.0-a370c33030-07d20b3b75.zip/node_modules/env-paths/", - "packageDependencies": [ - ["env-paths", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/env-paths-npm-2.2.0-ac4ed99068-09de4fd1c0.zip/node_modules/env-paths/", - "packageDependencies": [ - ["env-paths", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["errlop", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/errlop-npm-2.2.0-04c65d8200-0a82c77722.zip/node_modules/errlop/", - "packageDependencies": [ - ["errlop", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["errno", [ - ["npm:0.1.7", { - "packageLocation": "./.yarn/cache/errno-npm-0.1.7-b0a31dcb3a-3d2da6fa1e.zip/node_modules/errno/", - "packageDependencies": [ - ["errno", "npm:0.1.7"], - ["prr", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["error", [ - ["npm:7.2.1", { - "packageLocation": "./.yarn/cache/error-npm-7.2.1-628e82313a-21ba37fe67.zip/node_modules/error/", - "packageDependencies": [ - ["error", "npm:7.2.1"], - ["string-template", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["error-ex", [ - ["npm:1.3.2", { - "packageLocation": "./.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-6c6c918742.zip/node_modules/error-ex/", - "packageDependencies": [ - ["error-ex", "npm:1.3.2"], - ["is-arrayish", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["es-abstract", [ - ["npm:1.17.6", { - "packageLocation": "./.yarn/cache/es-abstract-npm-1.17.6-265c04b6de-637ad488bd.zip/node_modules/es-abstract/", - "packageDependencies": [ - ["es-abstract", "npm:1.17.6"], - ["es-to-primitive", "npm:1.2.1"], - ["function-bind", "npm:1.1.1"], - ["has", "npm:1.0.3"], - ["has-symbols", "npm:1.0.1"], - ["is-callable", "npm:1.2.0"], - ["is-regex", "npm:1.1.0"], - ["object-inspect", "npm:1.8.0"], - ["object-keys", "npm:1.1.1"], - ["object.assign", "npm:4.1.0"], - ["string.prototype.trimend", "npm:1.0.1"], - ["string.prototype.trimstart", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["es-to-primitive", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-d20b7be268.zip/node_modules/es-to-primitive/", - "packageDependencies": [ - ["es-to-primitive", "npm:1.2.1"], - ["is-callable", "npm:1.2.0"], - ["is-date-object", "npm:1.0.2"], - ["is-symbol", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["es5-ext", [ - ["npm:0.10.53", { - "packageLocation": "./.yarn/cache/es5-ext-npm-0.10.53-18c0039c41-99e8115c2f.zip/node_modules/es5-ext/", - "packageDependencies": [ - ["es5-ext", "npm:0.10.53"], - ["es6-iterator", "npm:2.0.3"], - ["es6-symbol", "npm:3.1.3"], - ["next-tick", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["es6-error", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/es6-error-npm-4.1.1-5e8c22b20f-d7343d3f47.zip/node_modules/es6-error/", - "packageDependencies": [ - ["es6-error", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["es6-iterator", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/es6-iterator-npm-2.0.3-4dadb0ccc1-1880ce3121.zip/node_modules/es6-iterator/", - "packageDependencies": [ - ["es6-iterator", "npm:2.0.3"], - ["d", "npm:1.0.1"], - ["es5-ext", "npm:0.10.53"], - ["es6-symbol", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["es6-promise", [ - ["npm:4.2.8", { - "packageLocation": "./.yarn/cache/es6-promise-npm-4.2.8-c9f5b11f66-b85e5faab1.zip/node_modules/es6-promise/", - "packageDependencies": [ - ["es6-promise", "npm:4.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["es6-promisify", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/es6-promisify-npm-5.0.0-3726550934-657d2f0623.zip/node_modules/es6-promisify/", - "packageDependencies": [ - ["es6-promisify", "npm:5.0.0"], - ["es6-promise", "npm:4.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["es6-symbol", [ - ["npm:3.1.3", { - "packageLocation": "./.yarn/cache/es6-symbol-npm-3.1.3-34d72f2a23-0915d72de8.zip/node_modules/es6-symbol/", - "packageDependencies": [ - ["es6-symbol", "npm:3.1.3"], - ["d", "npm:1.0.1"], - ["ext", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["esbuild", [ - ["npm:0.6.32", { - "packageLocation": "./.yarn/unplugged/esbuild-npm-0.6.32-603e3a7bd4/node_modules/esbuild/", - "packageDependencies": [ - ["esbuild", "npm:0.6.32"] - ], - "linkType": "HARD", - }], - ["npm:0.8.54", { - "packageLocation": "./.yarn/unplugged/esbuild-npm-0.8.54-6b91b4b2d8/node_modules/esbuild/", - "packageDependencies": [ - ["esbuild", "npm:0.8.54"] - ], - "linkType": "HARD", - }] - ]], - ["escalade", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/escalade-npm-3.0.2-124acc254a-30f45cb4db.zip/node_modules/escalade/", - "packageDependencies": [ - ["escalade", "npm:3.0.2"] - ], - "linkType": "HARD", - }], - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/escalade-npm-3.1.1-e02da076aa-1e31ff50d6.zip/node_modules/escalade/", - "packageDependencies": [ - ["escalade", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["escape-goat", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/escape-goat-npm-2.1.1-2e437cf3fe-8270a80ca5.zip/node_modules/escape-goat/", - "packageDependencies": [ - ["escape-goat", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["escape-html", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/escape-html-npm-1.0.3-376c22ee74-900a7f2b80.zip/node_modules/escape-html/", - "packageDependencies": [ - ["escape-html", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["escape-string-regexp", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-f9484b8b4c.zip/node_modules/escape-string-regexp/", - "packageDependencies": [ - ["escape-string-regexp", "npm:1.0.5"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-f3500f264e.zip/node_modules/escape-string-regexp/", - "packageDependencies": [ - ["escape-string-regexp", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-c747be8d5f.zip/node_modules/escape-string-regexp/", - "packageDependencies": [ - ["escape-string-regexp", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["escodegen", [ - ["npm:1.14.3", { - "packageLocation": "./.yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-548c5a83a8.zip/node_modules/escodegen/", - "packageDependencies": [ - ["escodegen", "npm:1.14.3"], - ["esprima", "npm:4.0.1"], - ["estraverse", "npm:4.3.0"], - ["esutils", "npm:2.0.3"], - ["optionator", "npm:0.8.3"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/escodegen-npm-2.0.0-6450b02925-c49da32cd1.zip/node_modules/escodegen/", - "packageDependencies": [ - ["escodegen", "npm:2.0.0"], - ["esprima", "npm:4.0.1"], - ["estraverse", "npm:5.2.0"], - ["esutils", "npm:2.0.3"], - ["optionator", "npm:0.8.3"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["eslint", [ - ["npm:6.8.0", { - "packageLocation": "./.yarn/cache/eslint-npm-6.8.0-d27045f313-796be0e038.zip/node_modules/eslint/", - "packageDependencies": [ - ["eslint", "npm:6.8.0"], - ["@babel/code-frame", "npm:7.10.4"], - ["ajv", "npm:6.12.3"], - ["chalk", "npm:2.4.2"], - ["cross-spawn", "npm:6.0.5"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["doctrine", "npm:3.0.0"], - ["eslint-scope", "npm:5.1.0"], - ["eslint-utils", "npm:1.4.3"], - ["eslint-visitor-keys", "npm:1.3.0"], - ["espree", "npm:6.2.1"], - ["esquery", "npm:1.3.1"], - ["esutils", "npm:2.0.3"], - ["file-entry-cache", "npm:5.0.1"], - ["functional-red-black-tree", "npm:1.0.1"], - ["glob-parent", "npm:5.1.1"], - ["globals", "npm:12.4.0"], - ["ignore", "npm:4.0.6"], - ["import-fresh", "npm:3.2.1"], - ["imurmurhash", "npm:0.1.4"], - ["inquirer", "npm:7.3.3"], - ["is-glob", "npm:4.0.1"], - ["js-yaml", "npm:3.14.0"], - ["json-stable-stringify-without-jsonify", "npm:1.0.1"], - ["levn", "npm:0.3.0"], - ["lodash", "npm:4.17.19"], - ["minimatch", "npm:3.0.4"], - ["mkdirp", "npm:0.5.5"], - ["natural-compare", "npm:1.4.0"], - ["optionator", "npm:0.8.3"], - ["progress", "npm:2.0.3"], - ["regexpp", "npm:2.0.1"], - ["semver", "npm:6.3.0"], - ["strip-ansi", "npm:5.2.0"], - ["strip-json-comments", "npm:3.1.1"], - ["table", "npm:5.4.6"], - ["text-table", "npm:0.2.0"], - ["v8-compile-cache", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["eslint-scope", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/eslint-scope-npm-4.0.3-1492c6d263-49635cf9d9.zip/node_modules/eslint-scope/", - "packageDependencies": [ - ["eslint-scope", "npm:4.0.3"], - ["esrecurse", "npm:4.2.1"], - ["estraverse", "npm:4.3.0"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/eslint-scope-npm-5.1.0-2f7f4b93bb-4a0e97979a.zip/node_modules/eslint-scope/", - "packageDependencies": [ - ["eslint-scope", "npm:5.1.0"], - ["esrecurse", "npm:4.2.1"], - ["estraverse", "npm:4.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["eslint-utils", [ - ["npm:1.4.3", { - "packageLocation": "./.yarn/cache/eslint-utils-npm-1.4.3-b8f8bce3ac-4a7ede9e72.zip/node_modules/eslint-utils/", - "packageDependencies": [ - ["eslint-utils", "npm:1.4.3"], - ["eslint-visitor-keys", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["eslint-visitor-keys", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-1.3.0-c07780a0fb-58ab7a0107.zip/node_modules/eslint-visitor-keys/", - "packageDependencies": [ - ["eslint-visitor-keys", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["esm", [ - ["npm:3.2.25", { - "packageLocation": "./.yarn/cache/esm-npm-3.2.25-762b3ebd40-12a0272aaa.zip/node_modules/esm/", - "packageDependencies": [ - ["esm", "npm:3.2.25"] - ], - "linkType": "HARD", - }] - ]], - ["espree", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/espree-npm-6.2.1-c3370c8022-8651a6c162.zip/node_modules/espree/", - "packageDependencies": [ - ["espree", "npm:6.2.1"], - ["acorn", "npm:7.3.1"], - ["acorn-jsx", "virtual:c3370c80228526bdc823c77589727bb12f010d7080bccc27a33a2dcce9848e6a7ca68b55a7a8ca98362554ae73296d381ef1ad94f002f07e2a08c76d959b5bbf#npm:5.2.0"], - ["eslint-visitor-keys", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["esprima", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/esprima-npm-4.0.1-1084e98778-5df45a3d9c.zip/node_modules/esprima/", - "packageDependencies": [ - ["esprima", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["esquery", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/esquery-npm-1.3.1-2ba3c93f30-0aac7572bc.zip/node_modules/esquery/", - "packageDependencies": [ - ["esquery", "npm:1.3.1"], - ["estraverse", "npm:5.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["esrecurse", [ - ["npm:4.2.1", { - "packageLocation": "./.yarn/cache/esrecurse-npm-4.2.1-9ebee4c3b1-9acfa28772.zip/node_modules/esrecurse/", - "packageDependencies": [ - ["esrecurse", "npm:4.2.1"], - ["estraverse", "npm:4.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["estraverse", [ - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-1e4c627da9.zip/node_modules/estraverse/", - "packageDependencies": [ - ["estraverse", "npm:4.3.0"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/estraverse-npm-5.1.0-ab0ea20456-1b8a47cf7c.zip/node_modules/estraverse/", - "packageDependencies": [ - ["estraverse", "npm:5.1.0"] - ], - "linkType": "HARD", - }], - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-7dc1b027ae.zip/node_modules/estraverse/", - "packageDependencies": [ - ["estraverse", "npm:5.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["estree-walker", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/estree-walker-npm-1.0.1-e916593b23-85e7cee763.zip/node_modules/estree-walker/", - "packageDependencies": [ - ["estree-walker", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["esutils", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/esutils-npm-2.0.3-f865beafd5-590b045331.zip/node_modules/esutils/", - "packageDependencies": [ - ["esutils", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["etag", [ - ["npm:1.8.1", { - "packageLocation": "./.yarn/cache/etag-npm-1.8.1-54a3b989d9-f18341a3c1.zip/node_modules/etag/", - "packageDependencies": [ - ["etag", "npm:1.8.1"] - ], - "linkType": "HARD", - }] - ]], - ["event-target-shim", [ - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-d176477a31.zip/node_modules/event-target-shim/", - "packageDependencies": [ - ["event-target-shim", "npm:5.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["eventemitter3", [ - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/eventemitter3-npm-3.1.2-a68b03e1ea-fa1a206c4e.zip/node_modules/eventemitter3/", - "packageDependencies": [ - ["eventemitter3", "npm:3.1.2"] - ], - "linkType": "HARD", - }], - ["npm:4.0.4", { - "packageLocation": "./.yarn/cache/eventemitter3-npm-4.0.4-46f999a6ee-6693972304.zip/node_modules/eventemitter3/", - "packageDependencies": [ - ["eventemitter3", "npm:4.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["events", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/events-npm-3.2.0-342ccffd74-6ea52b160c.zip/node_modules/events/", - "packageDependencies": [ - ["events", "npm:3.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["evp_bytestokey", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/evp_bytestokey-npm-1.0.3-4a2644aaea-529ceee780.zip/node_modules/evp_bytestokey/", - "packageDependencies": [ - ["evp_bytestokey", "npm:1.0.3"], - ["md5.js", "npm:1.3.5"], - ["node-gyp", "npm:7.0.0"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["exec-sh", [ - ["npm:0.3.4", { - "packageLocation": "./.yarn/cache/exec-sh-npm-0.3.4-424de349f3-cfdd8cbfde.zip/node_modules/exec-sh/", - "packageDependencies": [ - ["exec-sh", "npm:0.3.4"] - ], - "linkType": "HARD", - }] - ]], - ["execa", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/execa-npm-0.1.1-43e6588de6-d4f96462fc.zip/node_modules/execa/", - "packageDependencies": [ - ["execa", "npm:0.1.1"], - ["cross-spawn-async", "npm:2.2.5"], - ["object-assign", "npm:4.1.1"], - ["strip-eof", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:0.7.0", { - "packageLocation": "./.yarn/cache/execa-npm-0.7.0-3f4e53d884-7210f5334e.zip/node_modules/execa/", - "packageDependencies": [ - ["execa", "npm:0.7.0"], - ["cross-spawn", "npm:5.1.0"], - ["get-stream", "npm:3.0.0"], - ["is-stream", "npm:1.1.0"], - ["npm-run-path", "npm:2.0.2"], - ["p-finally", "npm:1.0.0"], - ["signal-exit", "npm:3.0.3"], - ["strip-eof", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/execa-npm-1.0.0-7028e37029-39714ea24e.zip/node_modules/execa/", - "packageDependencies": [ - ["execa", "npm:1.0.0"], - ["cross-spawn", "npm:6.0.5"], - ["get-stream", "npm:4.1.0"], - ["is-stream", "npm:1.1.0"], - ["npm-run-path", "npm:2.0.2"], - ["p-finally", "npm:1.0.0"], - ["signal-exit", "npm:3.0.3"], - ["strip-eof", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/execa-npm-4.0.3-b70e1b2212-65b237d178.zip/node_modules/execa/", - "packageDependencies": [ - ["execa", "npm:4.0.3"], - ["cross-spawn", "npm:7.0.3"], - ["get-stream", "npm:5.1.0"], - ["human-signals", "npm:1.1.1"], - ["is-stream", "npm:2.0.0"], - ["merge-stream", "npm:2.0.0"], - ["npm-run-path", "npm:4.0.1"], - ["onetime", "npm:5.1.0"], - ["signal-exit", "npm:3.0.3"], - ["strip-final-newline", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["execall", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/execall-npm-1.0.0-8fca6bc827-a8740d995a.zip/node_modules/execall/", - "packageDependencies": [ - ["execall", "npm:1.0.0"], - ["clone-regexp", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["exit", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/exit-npm-0.1.2-ef3761a67d-64022f65df.zip/node_modules/exit/", - "packageDependencies": [ - ["exit", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["exit-hook", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/exit-hook-npm-1.1.1-1b7c5d44e3-4f89f35c22.zip/node_modules/exit-hook/", - "packageDependencies": [ - ["exit-hook", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["expand-brackets", [ - ["npm:2.1.4", { - "packageLocation": "./.yarn/cache/expand-brackets-npm-2.1.4-392c703c48-9aadab00ff.zip/node_modules/expand-brackets/", - "packageDependencies": [ - ["expand-brackets", "npm:2.1.4"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["define-property", "npm:0.2.5"], - ["extend-shallow", "npm:2.0.1"], - ["posix-character-classes", "npm:0.1.1"], - ["regex-not", "npm:1.0.2"], - ["snapdragon", "npm:0.8.2"], - ["to-regex", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["expand-template", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/expand-template-npm-2.0.3-80de959306-d1c08a374a.zip/node_modules/expand-template/", - "packageDependencies": [ - ["expand-template", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["expand-tilde", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/expand-tilde-npm-2.0.2-a4020a62f5-502e8b04a2.zip/node_modules/expand-tilde/", - "packageDependencies": [ - ["expand-tilde", "npm:2.0.2"], - ["homedir-polyfill", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["expect", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/expect-npm-26.1.0-2c66becfa6-4d77d1f41f.zip/node_modules/expect/", - "packageDependencies": [ - ["expect", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["ansi-styles", "npm:4.2.1"], - ["jest-get-type", "npm:26.0.0"], - ["jest-matcher-utils", "npm:26.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-regex-util", "npm:26.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/expect-npm-26.6.2-256ea90344-a4ec4cbafa.zip/node_modules/expect/", - "packageDependencies": [ - ["expect", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["ansi-styles", "npm:4.2.1"], - ["jest-get-type", "npm:26.3.0"], - ["jest-matcher-utils", "npm:26.6.2"], - ["jest-message-util", "npm:26.6.2"], - ["jest-regex-util", "npm:26.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["express", [ - ["npm:4.17.1", { - "packageLocation": "./.yarn/cache/express-npm-4.17.1-6815ee6bf9-c4b470d623.zip/node_modules/express/", - "packageDependencies": [ - ["express", "npm:4.17.1"], - ["accepts", "npm:1.3.7"], - ["array-flatten", "npm:1.1.1"], - ["body-parser", "npm:1.19.0"], - ["content-disposition", "npm:0.5.3"], - ["content-type", "npm:1.0.4"], - ["cookie", "npm:0.4.0"], - ["cookie-signature", "npm:1.0.6"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["depd", "npm:1.1.2"], - ["encodeurl", "npm:1.0.2"], - ["escape-html", "npm:1.0.3"], - ["etag", "npm:1.8.1"], - ["finalhandler", "npm:1.1.2"], - ["fresh", "npm:0.5.2"], - ["merge-descriptors", "npm:1.0.1"], - ["methods", "npm:1.1.2"], - ["on-finished", "npm:2.3.0"], - ["parseurl", "npm:1.3.3"], - ["path-to-regexp", "npm:0.1.7"], - ["proxy-addr", "npm:2.0.6"], - ["qs", "npm:6.7.0"], - ["range-parser", "npm:1.2.1"], - ["safe-buffer", "npm:5.1.2"], - ["send", "npm:0.17.1"], - ["serve-static", "npm:1.14.1"], - ["setprototypeof", "npm:1.1.1"], - ["statuses", "npm:1.5.0"], - ["type-is", "npm:1.6.18"], - ["utils-merge", "npm:1.0.1"], - ["vary", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["express-graphql", [ - ["npm:0.11.0", { - "packageLocation": "./.yarn/cache/express-graphql-npm-0.11.0-c15bd88c96-91fdcc9bf6.zip/node_modules/express-graphql/", - "packageDependencies": [ - ["express-graphql", "npm:0.11.0"] - ], - "linkType": "SOFT", - }], - ["virtual:81ccb0b6d9dec0de8117538ffcff243340f76bc1d9e508d68bcd2e95fad3568eca34fcb375bfffd59e37a816a80c197efedec7ace2a30b447f88f1e672f9663e#npm:0.11.0", { - "packageLocation": "./.yarn/$$virtual/express-graphql-virtual-65ffb1c4d4/0/cache/express-graphql-npm-0.11.0-c15bd88c96-91fdcc9bf6.zip/node_modules/express-graphql/", - "packageDependencies": [ - ["express-graphql", "virtual:81ccb0b6d9dec0de8117538ffcff243340f76bc1d9e508d68bcd2e95fad3568eca34fcb375bfffd59e37a816a80c197efedec7ace2a30b447f88f1e672f9663e#npm:0.11.0"], - ["@types/graphql", null], - ["accepts", "npm:1.3.7"], - ["content-type", "npm:1.0.4"], - ["graphql", "npm:14.7.0"], - ["http-errors", "npm:1.8.0"], - ["raw-body", "npm:2.4.1"] - ], - "packagePeers": [ - "@types/graphql" - ], - "linkType": "HARD", - }], - ["virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:0.11.0", { - "packageLocation": "./.yarn/$$virtual/express-graphql-virtual-255d849fef/0/cache/express-graphql-npm-0.11.0-c15bd88c96-91fdcc9bf6.zip/node_modules/express-graphql/", - "packageDependencies": [ - ["express-graphql", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:0.11.0"], - ["@types/graphql", null], - ["accepts", "npm:1.3.7"], - ["content-type", "npm:1.0.4"], - ["graphql", "npm:15.3.0"], - ["http-errors", "npm:1.8.0"], - ["raw-body", "npm:2.4.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["ext", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/ext-npm-1.4.0-4190310122-c94102371f.zip/node_modules/ext/", - "packageDependencies": [ - ["ext", "npm:1.4.0"], - ["type", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["extend", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/extend-npm-3.0.2-e1ca07ac54-1406da1f0c.zip/node_modules/extend/", - "packageDependencies": [ - ["extend", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["extend-shallow", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/extend-shallow-npm-2.0.1-e6ef52b29c-03dbbba8b9.zip/node_modules/extend-shallow/", - "packageDependencies": [ - ["extend-shallow", "npm:2.0.1"], - ["is-extendable", "npm:0.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/extend-shallow-npm-3.0.2-77bbe1bbf5-5301c5070b.zip/node_modules/extend-shallow/", - "packageDependencies": [ - ["extend-shallow", "npm:3.0.2"], - ["assign-symbols", "npm:1.0.0"], - ["is-extendable", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["external-editor", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/external-editor-npm-1.1.1-c0e611e27e-0c682c3322.zip/node_modules/external-editor/", - "packageDependencies": [ - ["external-editor", "npm:1.1.1"], - ["extend", "npm:3.0.2"], - ["spawn-sync", "npm:1.0.15"], - ["tmp", "npm:0.0.29"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/external-editor-npm-3.1.0-878e7807af-22163643f9.zip/node_modules/external-editor/", - "packageDependencies": [ - ["external-editor", "npm:3.1.0"], - ["chardet", "npm:0.7.0"], - ["iconv-lite", "npm:0.4.24"], - ["tmp", "npm:0.0.33"] - ], - "linkType": "HARD", - }] - ]], - ["extglob", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/extglob-npm-2.0.4-0f39bc9899-ce23be772f.zip/node_modules/extglob/", - "packageDependencies": [ - ["extglob", "npm:2.0.4"], - ["array-unique", "npm:0.3.2"], - ["define-property", "npm:1.0.0"], - ["expand-brackets", "npm:2.1.4"], - ["extend-shallow", "npm:2.0.1"], - ["fragment-cache", "npm:0.2.1"], - ["regex-not", "npm:1.0.2"], - ["snapdragon", "npm:0.8.2"], - ["to-regex", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["extract-files", [ - ["npm:9.0.0", { - "packageLocation": "./.yarn/cache/extract-files-npm-9.0.0-6ee13e6aab-021b107877.zip/node_modules/extract-files/", - "packageDependencies": [ - ["extract-files", "npm:9.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["extsprintf", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-892efd56aa.zip/node_modules/extsprintf/", - "packageDependencies": [ - ["extsprintf", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["fast-deep-equal", [ - ["npm:3.1.3", { - "packageLocation": "./.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-451526766b.zip/node_modules/fast-deep-equal/", - "packageDependencies": [ - ["fast-deep-equal", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["fast-glob", [ - ["npm:2.2.7", { - "packageLocation": "./.yarn/cache/fast-glob-npm-2.2.7-f211fb26f4-9dc5c93807.zip/node_modules/fast-glob/", - "packageDependencies": [ - ["fast-glob", "npm:2.2.7"], - ["@mrmlnc/readdir-enhanced", "npm:2.2.1"], - ["@nodelib/fs.stat", "npm:1.1.3"], - ["glob-parent", "npm:3.1.0"], - ["is-glob", "npm:4.0.1"], - ["merge2", "npm:1.4.1"], - ["micromatch", "npm:3.1.10"] - ], - "linkType": "HARD", - }], - ["npm:3.2.4", { - "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.4-be5d1d4c86-18f9eca898.zip/node_modules/fast-glob/", - "packageDependencies": [ - ["fast-glob", "npm:3.2.4"], - ["@nodelib/fs.stat", "npm:2.0.3"], - ["@nodelib/fs.walk", "npm:1.2.4"], - ["glob-parent", "npm:5.1.1"], - ["merge2", "npm:1.4.1"], - ["micromatch", "npm:4.0.2"], - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }], - ["npm:3.2.5", { - "packageLocation": "./.yarn/cache/fast-glob-npm-3.2.5-0225b8bd94-1a33c4a68d.zip/node_modules/fast-glob/", - "packageDependencies": [ - ["fast-glob", "npm:3.2.5"], - ["@nodelib/fs.stat", "npm:2.0.3"], - ["@nodelib/fs.walk", "npm:1.2.4"], - ["glob-parent", "npm:5.1.1"], - ["merge2", "npm:1.4.1"], - ["micromatch", "npm:4.0.2"], - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["fast-json-patch", [ - ["npm:3.0.0-1", { - "packageLocation": "./.yarn/cache/fast-json-patch-npm-3.0.0-1-52b13bb47f-17cf1ffba2.zip/node_modules/fast-json-patch/", - "packageDependencies": [ - ["fast-json-patch", "npm:3.0.0-1"] - ], - "linkType": "HARD", - }] - ]], - ["fast-json-stable-stringify", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-7df3fabfe4.zip/node_modules/fast-json-stable-stringify/", - "packageDependencies": [ - ["fast-json-stable-stringify", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["fast-levenshtein", [ - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-a2d03af308.zip/node_modules/fast-levenshtein/", - "packageDependencies": [ - ["fast-levenshtein", "npm:2.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["fast-plist", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/fast-plist-npm-0.1.2-878e056b29-9273df2225.zip/node_modules/fast-plist/", - "packageDependencies": [ - ["fast-plist", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["fastq", [ - ["npm:1.8.0", { - "packageLocation": "./.yarn/cache/fastq-npm-1.8.0-4c0923de4a-77d71545ba.zip/node_modules/fastq/", - "packageDependencies": [ - ["fastq", "npm:1.8.0"], - ["reusify", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["fault", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/fault-npm-1.0.4-2788bc13e3-6b8ef4f743.zip/node_modules/fault/", - "packageDependencies": [ - ["fault", "npm:1.0.4"], - ["format", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["fb-watchman", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-f9ec24592a.zip/node_modules/fb-watchman/", - "packageDependencies": [ - ["fb-watchman", "npm:2.0.1"], - ["bser", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["fbjs", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/fbjs-npm-1.0.0-4f480c1eca-8fbb6828cf.zip/node_modules/fbjs/", - "packageDependencies": [ - ["fbjs", "npm:1.0.0"], - ["core-js", "npm:2.6.11"], - ["fbjs-css-vars", "npm:1.0.2"], - ["isomorphic-fetch", "npm:2.2.1"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"], - ["promise", "npm:7.3.1"], - ["setimmediate", "npm:1.0.5"], - ["ua-parser-js", "npm:0.7.21"] - ], - "linkType": "HARD", - }] - ]], - ["fbjs-css-vars", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/fbjs-css-vars-npm-1.0.2-c233f16598-2f0c717cc2.zip/node_modules/fbjs-css-vars/", - "packageDependencies": [ - ["fbjs-css-vars", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["figgy-pudding", [ - ["npm:3.5.2", { - "packageLocation": "./.yarn/cache/figgy-pudding-npm-3.5.2-2f4e3e1305-737645f602.zip/node_modules/figgy-pudding/", - "packageDependencies": [ - ["figgy-pudding", "npm:3.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["figlet", [ - ["npm:1.5.0", { - "packageLocation": "./.yarn/cache/figlet-npm-1.5.0-8014ee3b57-49839d8179.zip/node_modules/figlet/", - "packageDependencies": [ - ["figlet", "npm:1.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["figures", [ - ["npm:1.7.0", { - "packageLocation": "./.yarn/cache/figures-npm-1.7.0-1542644df9-17f76820de.zip/node_modules/figures/", - "packageDependencies": [ - ["figures", "npm:1.7.0"], - ["escape-string-regexp", "npm:1.0.5"], - ["object-assign", "npm:4.1.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/figures-npm-2.0.0-f2db814eec-de11459037.zip/node_modules/figures/", - "packageDependencies": [ - ["figures", "npm:2.0.0"], - ["escape-string-regexp", "npm:1.0.5"] - ], - "linkType": "HARD", - }], - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/figures-npm-3.2.0-85d357e955-6c8acb1c17.zip/node_modules/figures/", - "packageDependencies": [ - ["figures", "npm:3.2.0"], - ["escape-string-regexp", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["file-entry-cache", [ - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/file-entry-cache-npm-5.0.1-7212af17f3-7140588bec.zip/node_modules/file-entry-cache/", - "packageDependencies": [ - ["file-entry-cache", "npm:5.0.1"], - ["flat-cache", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["file-selector", [ - ["npm:0.1.12", { - "packageLocation": "./.yarn/cache/file-selector-npm-0.1.12-6b84596589-b1a8287dab.zip/node_modules/file-selector/", - "packageDependencies": [ - ["file-selector", "npm:0.1.12"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }], - ["npm:0.1.13", { - "packageLocation": "./.yarn/cache/file-selector-npm-0.1.13-62c188592d-261cda059a.zip/node_modules/file-selector/", - "packageDependencies": [ - ["file-selector", "npm:0.1.13"], - ["tslib", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["file-uri-to-path", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/file-uri-to-path-npm-1.0.0-1043ac6206-5ddb9682f0.zip/node_modules/file-uri-to-path/", - "packageDependencies": [ - ["file-uri-to-path", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["filelist", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/filelist-npm-1.0.1-f25fc749a1-8ee441df31.zip/node_modules/filelist/", - "packageDependencies": [ - ["filelist", "npm:1.0.1"], - ["minimatch", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["fill-range", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/fill-range-npm-4.0.0-95a6e45784-4a1491ee29.zip/node_modules/fill-range/", - "packageDependencies": [ - ["fill-range", "npm:4.0.0"], - ["extend-shallow", "npm:2.0.1"], - ["is-number", "npm:3.0.0"], - ["repeat-string", "npm:1.6.1"], - ["to-regex-range", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:7.0.1", { - "packageLocation": "./.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-efca43d59b.zip/node_modules/fill-range/", - "packageDependencies": [ - ["fill-range", "npm:7.0.1"], - ["to-regex-range", "npm:5.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["filter-obj", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/filter-obj-npm-2.0.1-7adb2749b3-17fffe99e7.zip/node_modules/filter-obj/", - "packageDependencies": [ - ["filter-obj", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["final-form", [ - ["npm:4.19.1", { - "packageLocation": "./.yarn/cache/final-form-npm-4.19.1-dd5e58edd7-a99755c40d.zip/node_modules/final-form/", - "packageDependencies": [ - ["final-form", "npm:4.19.1"], - ["@babel/runtime", "npm:7.11.2"] - ], - "linkType": "HARD", - }], - ["npm:4.20.1", { - "packageLocation": "./.yarn/cache/final-form-npm-4.20.1-5003d9144f-007bc31ead.zip/node_modules/final-form/", - "packageDependencies": [ - ["final-form", "npm:4.20.1"], - ["@babel/runtime", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["final-form-arrays", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/final-form-arrays-npm-3.0.2-0e8c67eade-16a7fb6e68.zip/node_modules/final-form-arrays/", - "packageDependencies": [ - ["final-form-arrays", "npm:3.0.2"] - ], - "linkType": "SOFT", - }], - ["virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2", { - "packageLocation": "./.yarn/$$virtual/final-form-arrays-virtual-6af69e1b3c/0/cache/final-form-arrays-npm-3.0.2-0e8c67eade-16a7fb6e68.zip/node_modules/final-form-arrays/", - "packageDependencies": [ - ["final-form-arrays", "virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2"], - ["@types/final-form", null], - ["final-form", "npm:4.19.1"] - ], - "packagePeers": [ - "@types/final-form", - "final-form" - ], - "linkType": "HARD", - }], - ["virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2", { - "packageLocation": "./.yarn/$$virtual/final-form-arrays-virtual-55df1c4428/0/cache/final-form-arrays-npm-3.0.2-0e8c67eade-16a7fb6e68.zip/node_modules/final-form-arrays/", - "packageDependencies": [ - ["final-form-arrays", "virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2"], - ["@types/final-form", null], - ["final-form", "npm:4.20.1"] - ], - "packagePeers": [ - "@types/final-form", - "final-form" - ], - "linkType": "HARD", - }] - ]], - ["finalhandler", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-f2e5b6bfe2.zip/node_modules/finalhandler/", - "packageDependencies": [ - ["finalhandler", "npm:1.1.2"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["encodeurl", "npm:1.0.2"], - ["escape-html", "npm:1.0.3"], - ["on-finished", "npm:2.3.0"], - ["parseurl", "npm:1.3.3"], - ["statuses", "npm:1.5.0"], - ["unpipe", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["find-cache-dir", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/find-cache-dir-npm-2.1.0-772aa82638-6e99602656.zip/node_modules/find-cache-dir/", - "packageDependencies": [ - ["find-cache-dir", "npm:2.1.0"], - ["commondir", "npm:1.0.1"], - ["make-dir", "npm:2.1.0"], - ["pkg-dir", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/find-cache-dir-npm-3.3.1-66916b4b23-b1e23226ee.zip/node_modules/find-cache-dir/", - "packageDependencies": [ - ["find-cache-dir", "npm:3.3.1"], - ["commondir", "npm:1.0.1"], - ["make-dir", "npm:3.1.0"], - ["pkg-dir", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["find-up", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/find-up-npm-1.1.2-22f047c6a9-cc15a62434.zip/node_modules/find-up/", - "packageDependencies": [ - ["find-up", "npm:1.1.2"], - ["path-exists", "npm:2.1.0"], - ["pinkie-promise", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/find-up-npm-2.1.0-9f6cb1765c-9dedb89f93.zip/node_modules/find-up/", - "packageDependencies": [ - ["find-up", "npm:2.1.0"], - ["locate-path", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/find-up-npm-3.0.0-a2d4b1b317-c5422fc723.zip/node_modules/find-up/", - "packageDependencies": [ - ["find-up", "npm:3.0.0"], - ["locate-path", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-d612d28e02.zip/node_modules/find-up/", - "packageDependencies": [ - ["find-up", "npm:4.1.0"], - ["locate-path", "npm:5.0.0"], - ["path-exists", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["find-versions", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/find-versions-npm-2.0.0-c36513ecee-552ad4f1c8.zip/node_modules/find-versions/", - "packageDependencies": [ - ["find-versions", "npm:2.0.0"], - ["array-uniq", "npm:1.0.3"], - ["semver-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["first-chunk-stream", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/first-chunk-stream-npm-2.0.0-08ecb1b0f2-13adb63a15.zip/node_modules/first-chunk-stream/", - "packageDependencies": [ - ["first-chunk-stream", "npm:2.0.0"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["flat-cache", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/flat-cache-npm-2.0.1-abf037b0b9-a36ba40755.zip/node_modules/flat-cache/", - "packageDependencies": [ - ["flat-cache", "npm:2.0.1"], - ["flatted", "npm:2.0.2"], - ["rimraf", "npm:2.6.3"], - ["write", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["flatted", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/flatted-npm-2.0.2-ccb06e14ff-a3e5fb71ad.zip/node_modules/flatted/", - "packageDependencies": [ - ["flatted", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["flush-write-stream", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/flush-write-stream-npm-1.1.1-54f7360c04-b8fa1fbfad.zip/node_modules/flush-write-stream/", - "packageDependencies": [ - ["flush-write-stream", "npm:1.1.1"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["fn-name", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/fn-name-npm-3.0.0-aa304e6db5-dd21900018.zip/node_modules/fn-name/", - "packageDependencies": [ - ["fn-name", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["follow-redirects", [ - ["npm:1.12.1", { - "packageLocation": "./.yarn/cache/follow-redirects-npm-1.12.1-42db1ca623-afd9b64329.zip/node_modules/follow-redirects/", - "packageDependencies": [ - ["follow-redirects", "npm:1.12.1"] - ], - "linkType": "HARD", - }], - ["npm:1.5.10", { - "packageLocation": "./.yarn/cache/follow-redirects-npm-1.5.10-bde6f43576-6e58e02c31.zip/node_modules/follow-redirects/", - "packageDependencies": [ - ["follow-redirects", "npm:1.5.10"], - ["debug", "virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["for-in", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/for-in-npm-1.0.2-37e3d7aae5-e8d7280a65.zip/node_modules/for-in/", - "packageDependencies": [ - ["for-in", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["foreachasync", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/foreachasync-npm-3.0.0-c8ac3c5fca-02d25a451b.zip/node_modules/foreachasync/", - "packageDependencies": [ - ["foreachasync", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["forever-agent", [ - ["npm:0.6.1", { - "packageLocation": "./.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-9cc0054dd4.zip/node_modules/forever-agent/", - "packageDependencies": [ - ["forever-agent", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["fork-ts-checker-webpack-plugin", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/fork-ts-checker-webpack-plugin-npm-3.1.1-3cc141071c-8a357eec4a.zip/node_modules/fork-ts-checker-webpack-plugin/", - "packageDependencies": [ - ["fork-ts-checker-webpack-plugin", "npm:3.1.1"] - ], - "linkType": "SOFT", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.1.1", { - "packageLocation": "./.yarn/$$virtual/fork-ts-checker-webpack-plugin-virtual-d8a11e4e48/0/cache/fork-ts-checker-webpack-plugin-npm-3.1.1-3cc141071c-8a357eec4a.zip/node_modules/fork-ts-checker-webpack-plugin/", - "packageDependencies": [ - ["fork-ts-checker-webpack-plugin", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.1.1"], - ["@types/eslint", null], - ["@types/typescript", null], - ["@types/webpack", null], - ["babel-code-frame", "npm:6.26.0"], - ["chalk", "npm:2.4.2"], - ["chokidar", "npm:3.4.1"], - ["eslint", null], - ["micromatch", "npm:3.1.10"], - ["minimatch", "npm:3.0.4"], - ["semver", "npm:5.7.1"], - ["tapable", "npm:1.1.3"], - ["typescript", "patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e"], - ["webpack", "npm:4.43.0"], - ["worker-rpc", "npm:0.1.1"] - ], - "packagePeers": [ - "@types/eslint", - "@types/typescript", - "@types/webpack", - "eslint", - "typescript", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["form-data", [ - ["npm:2.3.3", { - "packageLocation": "./.yarn/cache/form-data-npm-2.3.3-c016cc11c0-862e686b10.zip/node_modules/form-data/", - "packageDependencies": [ - ["form-data", "npm:2.3.3"], - ["asynckit", "npm:0.4.0"], - ["combined-stream", "npm:1.0.8"], - ["mime-types", "npm:2.1.27"] - ], - "linkType": "HARD", - }], - ["npm:2.5.1", { - "packageLocation": "./.yarn/cache/form-data-npm-2.5.1-47256351b5-c46ee9a14a.zip/node_modules/form-data/", - "packageDependencies": [ - ["form-data", "npm:2.5.1"], - ["asynckit", "npm:0.4.0"], - ["combined-stream", "npm:1.0.8"], - ["mime-types", "npm:2.1.27"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/form-data-npm-3.0.0-b01f488350-1af88217b4.zip/node_modules/form-data/", - "packageDependencies": [ - ["form-data", "npm:3.0.0"], - ["asynckit", "npm:0.4.0"], - ["combined-stream", "npm:1.0.8"], - ["mime-types", "npm:2.1.27"] - ], - "linkType": "HARD", - }] - ]], - ["format", [ - ["npm:0.2.2", { - "packageLocation": "./.yarn/cache/format-npm-0.2.2-679f3acc64-0740f52121.zip/node_modules/format/", - "packageDependencies": [ - ["format", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["formik", [ - ["npm:2.1.5", { - "packageLocation": "./.yarn/cache/formik-npm-2.1.5-3b5e3d1e69-5a84001cc4.zip/node_modules/formik/", - "packageDependencies": [ - ["formik", "npm:2.1.5"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5", { - "packageLocation": "./.yarn/$$virtual/formik-virtual-21bb750cd3/0/cache/formik-npm-2.1.5-3b5e3d1e69-5a84001cc4.zip/node_modules/formik/", - "packageDependencies": [ - ["formik", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5"], - ["@types/react", "npm:16.9.43"], - ["deepmerge", "npm:2.2.1"], - ["hoist-non-react-statics", "npm:3.3.2"], - ["lodash", "npm:4.17.19"], - ["lodash-es", "npm:4.17.15"], - ["react", "npm:16.13.1"], - ["react-fast-compare", "npm:2.0.4"], - ["scheduler", "npm:0.18.0"], - ["tiny-warning", "npm:1.0.3"], - ["tslib", "npm:1.13.0"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["forwarded", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/forwarded-npm-0.1.2-6143c1ba42-568d862ad1.zip/node_modules/forwarded/", - "packageDependencies": [ - ["forwarded", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["fragment-cache", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/fragment-cache-npm-0.2.1-407fe74319-f88983f4bf.zip/node_modules/fragment-cache/", - "packageDependencies": [ - ["fragment-cache", "npm:0.2.1"], - ["map-cache", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["fresh", [ - ["npm:0.5.2", { - "packageLocation": "./.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-2f76c8505d.zip/node_modules/fresh/", - "packageDependencies": [ - ["fresh", "npm:0.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["from2", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/from2-npm-2.3.0-bd16dc410b-5f1a9bbff0.zip/node_modules/from2/", - "packageDependencies": [ - ["from2", "npm:2.3.0"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["fs-constants", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/fs-constants-npm-1.0.0-59576b2177-b8382395f5.zip/node_modules/fs-constants/", - "packageDependencies": [ - ["fs-constants", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["fs-exists-sync", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/fs-exists-sync-npm-0.1.0-c8642ca841-770773ab9e.zip/node_modules/fs-exists-sync/", - "packageDependencies": [ - ["fs-exists-sync", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["fs-extra", [ - ["npm:8.1.0", { - "packageLocation": "./.yarn/cache/fs-extra-npm-8.1.0-197473387f-056a96d4f5.zip/node_modules/fs-extra/", - "packageDependencies": [ - ["fs-extra", "npm:8.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jsonfile", "npm:4.0.0"], - ["universalify", "npm:0.1.2"] - ], - "linkType": "HARD", - }], - ["npm:9.0.1", { - "packageLocation": "./.yarn/cache/fs-extra-npm-9.0.1-2925889105-b7374cb058.zip/node_modules/fs-extra/", - "packageDependencies": [ - ["fs-extra", "npm:9.0.1"], - ["at-least-node", "npm:1.0.0"], - ["graceful-fs", "npm:4.2.4"], - ["jsonfile", "npm:6.0.1"], - ["universalify", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["fs-minipass", [ - ["npm:1.2.7", { - "packageLocation": "./.yarn/cache/fs-minipass-npm-1.2.7-0e18342ce1-eb59a93065.zip/node_modules/fs-minipass/", - "packageDependencies": [ - ["fs-minipass", "npm:1.2.7"], - ["minipass", "npm:2.9.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-e14a490658.zip/node_modules/fs-minipass/", - "packageDependencies": [ - ["fs-minipass", "npm:2.1.0"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["fs-write-stream-atomic", [ - ["npm:1.0.10", { - "packageLocation": "./.yarn/cache/fs-write-stream-atomic-npm-1.0.10-d6efbd9866-1e35e18bdd.zip/node_modules/fs-write-stream-atomic/", - "packageDependencies": [ - ["fs-write-stream-atomic", "npm:1.0.10"], - ["graceful-fs", "npm:4.2.4"], - ["iferr", "npm:0.1.5"], - ["imurmurhash", "npm:0.1.4"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["fs.realpath", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-698a91b169.zip/node_modules/fs.realpath/", - "packageDependencies": [ - ["fs.realpath", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["fsevents", [ - ["patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=11e9ea", { - "packageLocation": "./.yarn/unplugged/fsevents-patch-268c0b888d/node_modules/fsevents/", - "packageDependencies": [ - ["fsevents", "patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=11e9ea"], - ["bindings", "npm:1.5.0"], - ["nan", "npm:2.14.2"] - ], - "linkType": "HARD", - }], - ["patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea", { - "packageLocation": "./.yarn/unplugged/fsevents-patch-5794df231e/node_modules/fsevents/", - "packageDependencies": [ - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"], - ["node-gyp", "npm:7.0.0"] - ], - "linkType": "HARD", - }], - ["patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea", { - "packageLocation": "./.yarn/unplugged/fsevents-patch-3bc6df0d9f/node_modules/fsevents/", - "packageDependencies": [ - ["fsevents", "patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea"], - ["node-gyp", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["fullname", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/fullname-npm-4.0.1-b552506e82-430861b49c.zip/node_modules/fullname/", - "packageDependencies": [ - ["fullname", "npm:4.0.1"], - ["execa", "npm:1.0.0"], - ["filter-obj", "npm:2.0.1"], - ["mem", "npm:5.1.1"], - ["p-any", "npm:2.1.0"], - ["passwd-user", "npm:3.0.0"], - ["rc", "npm:1.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["function-bind", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-ffad86e7d2.zip/node_modules/function-bind/", - "packageDependencies": [ - ["function-bind", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["functional-red-black-tree", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/functional-red-black-tree-npm-1.0.1-ccfe924dcd-477ecaf62d.zip/node_modules/functional-red-black-tree/", - "packageDependencies": [ - ["functional-red-black-tree", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["gauge", [ - ["npm:1.2.7", { - "packageLocation": "./.yarn/cache/gauge-npm-1.2.7-eb40c09da6-c7230d2c81.zip/node_modules/gauge/", - "packageDependencies": [ - ["gauge", "npm:1.2.7"], - ["ansi", "npm:0.3.1"], - ["has-unicode", "npm:2.0.1"], - ["lodash.pad", "npm:4.5.1"], - ["lodash.padend", "npm:4.6.1"], - ["lodash.padstart", "npm:4.6.1"] - ], - "linkType": "HARD", - }], - ["npm:2.7.4", { - "packageLocation": "./.yarn/cache/gauge-npm-2.7.4-2189a73529-b136dbeb8e.zip/node_modules/gauge/", - "packageDependencies": [ - ["gauge", "npm:2.7.4"], - ["aproba", "npm:1.2.0"], - ["console-control-strings", "npm:1.1.0"], - ["has-unicode", "npm:2.0.1"], - ["object-assign", "npm:4.1.1"], - ["signal-exit", "npm:3.0.3"], - ["string-width", "npm:1.0.2"], - ["strip-ansi", "npm:3.0.1"], - ["wide-align", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["generator-code", [ - ["npm:1.2.19", { - "packageLocation": "./.yarn/cache/generator-code-npm-1.2.19-507ede2c99-f79c7cafa2.zip/node_modules/generator-code/", - "packageDependencies": [ - ["generator-code", "npm:1.2.19"], - ["assert-plus", "npm:1.0.0"], - ["cd", "npm:0.3.3"], - ["chalk", "npm:4.1.0"], - ["fast-plist", "npm:0.1.2"], - ["request-light", "npm:0.3.0"], - ["sanitize-filename", "npm:1.6.3"], - ["sax", "npm:1.2.4"], - ["yeoman-generator", "npm:4.11.0"], - ["yosay", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["gensync", [ - ["npm:1.0.0-beta.1", { - "packageLocation": "./.yarn/cache/gensync-npm-1.0.0-beta.1-0bc9838d39-3d14f7c34f.zip/node_modules/gensync/", - "packageDependencies": [ - ["gensync", "npm:1.0.0-beta.1"] - ], - "linkType": "HARD", - }] - ]], - ["get-caller-file", [ - ["npm:2.0.5", { - "packageLocation": "./.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-9dd9e1e259.zip/node_modules/get-caller-file/", - "packageDependencies": [ - ["get-caller-file", "npm:2.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["get-package-type", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-a5b8beaf68.zip/node_modules/get-package-type/", - "packageDependencies": [ - ["get-package-type", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["get-stdin", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/get-stdin-npm-4.0.1-10c6ac0b43-ba122b0569.zip/node_modules/get-stdin/", - "packageDependencies": [ - ["get-stdin", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/get-stdin-npm-6.0.0-22ebabe125-b51d664838.zip/node_modules/get-stdin/", - "packageDependencies": [ - ["get-stdin", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["get-stream", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/get-stream-npm-3.0.0-ca0b13ddbe-83ed722c1b.zip/node_modules/get-stream/", - "packageDependencies": [ - ["get-stream", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/get-stream-npm-4.1.0-314d430a5d-f41bb3c74d.zip/node_modules/get-stream/", - "packageDependencies": [ - ["get-stream", "npm:4.1.0"], - ["pump", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/get-stream-npm-5.1.0-29a3aa3558-599dad0b6b.zip/node_modules/get-stream/", - "packageDependencies": [ - ["get-stream", "npm:5.1.0"], - ["pump", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["get-value", [ - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/get-value-npm-2.0.6-03cd422e0a-f08da32627.zip/node_modules/get-value/", - "packageDependencies": [ - ["get-value", "npm:2.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["getpass", [ - ["npm:0.1.7", { - "packageLocation": "./.yarn/cache/getpass-npm-0.1.7-519164a3be-2650725bc6.zip/node_modules/getpass/", - "packageDependencies": [ - ["getpass", "npm:0.1.7"], - ["assert-plus", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["gh-got", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/gh-got-npm-5.0.0-401e6f2070-fd1d68c3f4.zip/node_modules/gh-got/", - "packageDependencies": [ - ["gh-got", "npm:5.0.0"], - ["got", "npm:6.7.1"], - ["is-plain-obj", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["git-config-path", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/git-config-path-npm-1.0.1-158ab972e4-47a09f3846.zip/node_modules/git-config-path/", - "packageDependencies": [ - ["git-config-path", "npm:1.0.1"], - ["extend-shallow", "npm:2.0.1"], - ["fs-exists-sync", "npm:0.1.0"], - ["homedir-polyfill", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["github-from-package", [ - ["npm:0.0.0", { - "packageLocation": "./.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-9c3bae6015.zip/node_modules/github-from-package/", - "packageDependencies": [ - ["github-from-package", "npm:0.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["github-username", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/github-username-npm-3.0.0-6108009012-3ccaa00861.zip/node_modules/github-username/", - "packageDependencies": [ - ["github-username", "npm:3.0.0"], - ["gh-got", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["gitlab", [ - ["npm:10.2.1", { - "packageLocation": "./.yarn/cache/gitlab-npm-10.2.1-add588f84a-d4cf6153ff.zip/node_modules/gitlab/", - "packageDependencies": [ - ["gitlab", "npm:10.2.1"], - ["form-data", "npm:2.5.1"], - ["humps", "npm:2.0.1"], - ["ky", "npm:0.12.0"], - ["ky-universal", "virtual:add588f84a4ecd8f02492550bb63eb7e87b18983b79581d31fb353368187e30c57f0ccfe7f55e1893cd041e7c7b18ba4ded0ed1efb652afa5c6c1663d676d61b#npm:0.3.0"], - ["li", "npm:1.3.0"], - ["query-string", "npm:6.13.8"], - ["universal-url", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["glob", [ - ["npm:7.1.6", { - "packageLocation": "./.yarn/cache/glob-npm-7.1.6-1ce3a5189a-789977b524.zip/node_modules/glob/", - "packageDependencies": [ - ["glob", "npm:7.1.6"], - ["fs.realpath", "npm:1.0.0"], - ["inflight", "npm:1.0.6"], - ["inherits", "npm:2.0.4"], - ["minimatch", "npm:3.0.4"], - ["once", "npm:1.4.0"], - ["path-is-absolute", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["glob-parent", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/glob-parent-npm-3.1.0-31416ad085-2827ec4405.zip/node_modules/glob-parent/", - "packageDependencies": [ - ["glob-parent", "npm:3.1.0"], - ["is-glob", "npm:3.1.0"], - ["path-dirname", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/glob-parent-npm-5.1.1-57b061cd88-2af6e196fb.zip/node_modules/glob-parent/", - "packageDependencies": [ - ["glob-parent", "npm:5.1.1"], - ["is-glob", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["glob-to-regexp", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/glob-to-regexp-npm-0.3.0-4f55888857-9e6e3f1170.zip/node_modules/glob-to-regexp/", - "packageDependencies": [ - ["glob-to-regexp", "npm:0.3.0"] - ], - "linkType": "HARD", - }], - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-6093c15d9f.zip/node_modules/glob-to-regexp/", - "packageDependencies": [ - ["glob-to-regexp", "npm:0.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["global-agent", [ - ["npm:2.1.12", { - "packageLocation": "./.yarn/cache/global-agent-npm-2.1.12-886227ed9c-ee616a998d.zip/node_modules/global-agent/", - "packageDependencies": [ - ["global-agent", "npm:2.1.12"], - ["boolean", "npm:3.0.1"], - ["core-js", "npm:3.6.5"], - ["es6-error", "npm:4.1.1"], - ["matcher", "npm:3.0.0"], - ["roarr", "npm:2.15.3"], - ["semver", "npm:7.3.2"], - ["serialize-error", "npm:7.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["global-dirs", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/global-dirs-npm-0.1.1-87c167e806-0d46e90b45.zip/node_modules/global-dirs/", - "packageDependencies": [ - ["global-dirs", "npm:0.1.1"], - ["ini", "npm:1.3.5"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/global-dirs-npm-2.0.1-db647d4aca-8dfdc04e84.zip/node_modules/global-dirs/", - "packageDependencies": [ - ["global-dirs", "npm:2.0.1"], - ["ini", "npm:1.3.5"] - ], - "linkType": "HARD", - }] - ]], - ["global-tunnel-ng", [ - ["npm:2.7.1", { - "packageLocation": "./.yarn/cache/global-tunnel-ng-npm-2.7.1-0f22380ecc-9aa6702b55.zip/node_modules/global-tunnel-ng/", - "packageDependencies": [ - ["global-tunnel-ng", "npm:2.7.1"], - ["encodeurl", "npm:1.0.2"], - ["lodash", "npm:4.17.19"], - ["npm-conf", "npm:1.1.3"], - ["tunnel", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["globals", [ - ["npm:11.12.0", { - "packageLocation": "./.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-2563d3306a.zip/node_modules/globals/", - "packageDependencies": [ - ["globals", "npm:11.12.0"] - ], - "linkType": "HARD", - }], - ["npm:12.4.0", { - "packageLocation": "./.yarn/cache/globals-npm-12.4.0-02b5a6ba9c-0b9764bdea.zip/node_modules/globals/", - "packageDependencies": [ - ["globals", "npm:12.4.0"], - ["type-fest", "npm:0.8.1"] - ], - "linkType": "HARD", - }] - ]], - ["globalthis", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/globalthis-npm-1.0.1-d5cb9c6789-031f9e8873.zip/node_modules/globalthis/", - "packageDependencies": [ - ["globalthis", "npm:1.0.1"], - ["define-properties", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["globby", [ - ["npm:10.0.2", { - "packageLocation": "./.yarn/cache/globby-npm-10.0.2-9b274c88d3-53924c2b46.zip/node_modules/globby/", - "packageDependencies": [ - ["globby", "npm:10.0.2"], - ["@types/glob", "npm:7.1.3"], - ["array-union", "npm:2.1.0"], - ["dir-glob", "npm:3.0.1"], - ["fast-glob", "npm:3.2.4"], - ["glob", "npm:7.1.6"], - ["ignore", "npm:5.1.8"], - ["merge2", "npm:1.4.1"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:11.0.1", { - "packageLocation": "./.yarn/cache/globby-npm-11.0.1-b32c0f1cff-e7239e9e46.zip/node_modules/globby/", - "packageDependencies": [ - ["globby", "npm:11.0.1"], - ["array-union", "npm:2.1.0"], - ["dir-glob", "npm:3.0.1"], - ["fast-glob", "npm:3.2.4"], - ["ignore", "npm:5.1.8"], - ["merge2", "npm:1.4.1"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:11.0.2", { - "packageLocation": "./.yarn/cache/globby-npm-11.0.2-7ff8329b4b-d23f2a6b88.zip/node_modules/globby/", - "packageDependencies": [ - ["globby", "npm:11.0.2"], - ["array-union", "npm:2.1.0"], - ["dir-glob", "npm:3.0.1"], - ["fast-glob", "npm:3.2.4"], - ["ignore", "npm:5.1.8"], - ["merge2", "npm:1.4.1"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:8.0.2", { - "packageLocation": "./.yarn/cache/globby-npm-8.0.2-9c4bc6b4e1-de3e13ccbb.zip/node_modules/globby/", - "packageDependencies": [ - ["globby", "npm:8.0.2"], - ["array-union", "npm:1.0.2"], - ["dir-glob", "npm:2.0.0"], - ["fast-glob", "npm:2.2.7"], - ["glob", "npm:7.1.6"], - ["ignore", "npm:3.3.10"], - ["pify", "npm:3.0.0"], - ["slash", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:9.2.0", { - "packageLocation": "./.yarn/cache/globby-npm-9.2.0-686548dc5f-af02094ec1.zip/node_modules/globby/", - "packageDependencies": [ - ["globby", "npm:9.2.0"], - ["@types/glob", "npm:7.1.3"], - ["array-union", "npm:1.0.2"], - ["dir-glob", "npm:2.2.2"], - ["fast-glob", "npm:2.2.7"], - ["glob", "npm:7.1.6"], - ["ignore", "npm:4.0.6"], - ["pify", "npm:4.0.1"], - ["slash", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["got", [ - ["npm:11.5.1", { - "packageLocation": "./.yarn/cache/got-npm-11.5.1-7b30dbe914-a746db1245.zip/node_modules/got/", - "packageDependencies": [ - ["got", "npm:11.5.1"], - ["@sindresorhus/is", "npm:3.1.0"], - ["@szmarczak/http-timer", "npm:4.0.5"], - ["@types/cacheable-request", "npm:6.0.1"], - ["@types/responselike", "npm:1.0.0"], - ["cacheable-lookup", "npm:5.0.3"], - ["cacheable-request", "npm:7.0.1"], - ["decompress-response", "npm:6.0.0"], - ["http2-wrapper", "npm:1.0.0-beta.5.2"], - ["lowercase-keys", "npm:2.0.0"], - ["p-cancelable", "npm:2.0.0"], - ["responselike", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:6.7.1", { - "packageLocation": "./.yarn/cache/got-npm-6.7.1-f61570d59b-bf19ee1cbb.zip/node_modules/got/", - "packageDependencies": [ - ["got", "npm:6.7.1"], - ["@types/keyv", "npm:3.1.1"], - ["@types/responselike", "npm:1.0.0"], - ["create-error-class", "npm:3.0.2"], - ["duplexer3", "npm:0.1.4"], - ["get-stream", "npm:3.0.0"], - ["is-redirect", "npm:1.0.0"], - ["is-retry-allowed", "npm:1.2.0"], - ["is-stream", "npm:1.1.0"], - ["lowercase-keys", "npm:1.0.1"], - ["safe-buffer", "npm:5.1.2"], - ["timed-out", "npm:4.0.1"], - ["unzip-response", "npm:2.0.1"], - ["url-parse-lax", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.1.0", { - "packageLocation": "./.yarn/cache/got-npm-7.1.0-83d1107046-db742d18a8.zip/node_modules/got/", - "packageDependencies": [ - ["got", "npm:7.1.0"], - ["@types/keyv", "npm:3.1.1"], - ["@types/responselike", "npm:1.0.0"], - ["decompress-response", "npm:3.3.0"], - ["duplexer3", "npm:0.1.4"], - ["get-stream", "npm:3.0.0"], - ["is-plain-obj", "npm:1.1.0"], - ["is-retry-allowed", "npm:1.2.0"], - ["is-stream", "npm:1.1.0"], - ["isurl", "npm:1.0.0"], - ["lowercase-keys", "npm:1.0.1"], - ["p-cancelable", "npm:0.3.0"], - ["p-timeout", "npm:1.2.1"], - ["safe-buffer", "npm:5.1.2"], - ["timed-out", "npm:4.0.1"], - ["url-parse-lax", "npm:1.0.0"], - ["url-to-options", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:8.3.2", { - "packageLocation": "./.yarn/cache/got-npm-8.3.2-bed075f916-4f2b15dc9c.zip/node_modules/got/", - "packageDependencies": [ - ["got", "npm:8.3.2"], - ["@sindresorhus/is", "npm:0.7.0"], - ["@types/keyv", "npm:3.1.1"], - ["@types/responselike", "npm:1.0.0"], - ["cacheable-request", "npm:2.1.4"], - ["decompress-response", "npm:3.3.0"], - ["duplexer3", "npm:0.1.4"], - ["get-stream", "npm:3.0.0"], - ["into-stream", "npm:3.1.0"], - ["is-retry-allowed", "npm:1.2.0"], - ["isurl", "npm:1.0.0"], - ["lowercase-keys", "npm:1.0.1"], - ["mimic-response", "npm:1.0.1"], - ["p-cancelable", "npm:0.4.1"], - ["p-timeout", "npm:2.0.1"], - ["pify", "npm:3.0.0"], - ["safe-buffer", "npm:5.1.2"], - ["timed-out", "npm:4.0.1"], - ["url-parse-lax", "npm:3.0.0"], - ["url-to-options", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:9.6.0", { - "packageLocation": "./.yarn/cache/got-npm-9.6.0-80edc15fd0-4cfb862eb7.zip/node_modules/got/", - "packageDependencies": [ - ["got", "npm:9.6.0"], - ["@sindresorhus/is", "npm:0.14.0"], - ["@szmarczak/http-timer", "npm:1.1.2"], - ["@types/keyv", "npm:3.1.1"], - ["@types/responselike", "npm:1.0.0"], - ["cacheable-request", "npm:6.1.0"], - ["decompress-response", "npm:3.3.0"], - ["duplexer3", "npm:0.1.4"], - ["get-stream", "npm:4.1.0"], - ["lowercase-keys", "npm:1.0.1"], - ["mimic-response", "npm:1.0.1"], - ["p-cancelable", "npm:1.1.0"], - ["to-readable-stream", "npm:1.0.0"], - ["url-parse-lax", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["graceful-fs", [ - ["npm:4.2.4", { - "packageLocation": "./.yarn/cache/graceful-fs-npm-4.2.4-734467635f-d095ee4dc6.zip/node_modules/graceful-fs/", - "packageDependencies": [ - ["graceful-fs", "npm:4.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["grapheme-splitter", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/grapheme-splitter-npm-1.0.4-648f2bf509-6875e94add.zip/node_modules/grapheme-splitter/", - "packageDependencies": [ - ["grapheme-splitter", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["graphiql", [ - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/graphiql-npm-1.2.2-5e1f7d8bd3-6c9c024616.zip/node_modules/graphiql/", - "packageDependencies": [ - ["graphiql", "npm:1.2.2"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2", { - "packageLocation": "./.yarn/$$virtual/graphiql-virtual-03cd25c4d9/0/cache/graphiql-npm-1.2.2-5e1f7d8bd3-6c9c024616.zip/node_modules/graphiql/", - "packageDependencies": [ - ["graphiql", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2"], - ["@types/graphql", null], - ["@types/prop-types", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["codemirror", "npm:5.56.0"], - ["codemirror-graphql", "virtual:03cd25c4d9e3c4537fdae1f1d2b87684da41cf9a7df2bdfc043735a2d0dd8a7c14ab6f5cc81216f47340443866e0560e1edfa5d2ff3f7f5e733e1e01f152b4d7#npm:0.14.0"], - ["copy-to-clipboard", "npm:3.3.1"], - ["entities", "npm:2.0.3"], - ["graphql", "npm:15.3.0"], - ["markdown-it", "npm:10.0.0"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"] - ], - "packagePeers": [ - "@types/graphql", - "@types/prop-types", - "@types/react-dom", - "@types/react", - "graphql", - "prop-types", - "react-dom", - "react" - ], - "linkType": "HARD", - }] - ]], - ["graphql", [ - ["npm:14.7.0", { - "packageLocation": "./.yarn/cache/graphql-npm-14.7.0-5e981fc8a0-3b7d50f98f.zip/node_modules/graphql/", - "packageDependencies": [ - ["graphql", "npm:14.7.0"], - ["iterall", "npm:1.3.0"] - ], - "linkType": "HARD", - }], - ["npm:15.3.0", { - "packageLocation": "./.yarn/cache/graphql-npm-15.3.0-37caa96674-f01c05eb91.zip/node_modules/graphql/", - "packageDependencies": [ - ["graphql", "npm:15.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["graphql-language-service-interface", [ - ["npm:2.7.0", { - "packageLocation": "./.yarn/cache/graphql-language-service-interface-npm-2.7.0-e1eadbfefd-d03a48d633.zip/node_modules/graphql-language-service-interface/", - "packageDependencies": [ - ["graphql-language-service-interface", "npm:2.7.0"] - ], - "linkType": "SOFT", - }], - ["virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.7.0", { - "packageLocation": "./.yarn/$$virtual/graphql-language-service-interface-virtual-324dc72f29/0/cache/graphql-language-service-interface-npm-2.7.0-e1eadbfefd-d03a48d633.zip/node_modules/graphql-language-service-interface/", - "packageDependencies": [ - ["graphql-language-service-interface", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.7.0"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["graphql-language-service-parser", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0"], - ["graphql-language-service-types", "virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0"], - ["graphql-language-service-utils", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4"], - ["vscode-languageserver-types", "npm:3.15.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["graphql-language-service-parser", [ - ["npm:1.8.0", { - "packageLocation": "./.yarn/cache/graphql-language-service-parser-npm-1.8.0-58711c16f2-3059a07c11.zip/node_modules/graphql-language-service-parser/", - "packageDependencies": [ - ["graphql-language-service-parser", "npm:1.8.0"] - ], - "linkType": "SOFT", - }], - ["virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0", { - "packageLocation": "./.yarn/$$virtual/graphql-language-service-parser-virtual-a898aa2641/0/cache/graphql-language-service-parser-npm-1.8.0-58711c16f2-3059a07c11.zip/node_modules/graphql-language-service-parser/", - "packageDependencies": [ - ["graphql-language-service-parser", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["graphql-language-service-types", "virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["graphql-language-service-types", [ - ["npm:1.7.0", { - "packageLocation": "./.yarn/cache/graphql-language-service-types-npm-1.7.0-c2fd38fd07-ee93d5b428.zip/node_modules/graphql-language-service-types/", - "packageDependencies": [ - ["graphql-language-service-types", "npm:1.7.0"] - ], - "linkType": "SOFT", - }], - ["virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0", { - "packageLocation": "./.yarn/$$virtual/graphql-language-service-types-virtual-b889eb2dd1/0/cache/graphql-language-service-types-npm-1.7.0-c2fd38fd07-ee93d5b428.zip/node_modules/graphql-language-service-types/", - "packageDependencies": [ - ["graphql-language-service-types", "virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["graphql-language-service-utils", [ - ["npm:2.4.4", { - "packageLocation": "./.yarn/cache/graphql-language-service-utils-npm-2.4.4-b61957bd76-9cf51ccbba.zip/node_modules/graphql-language-service-utils/", - "packageDependencies": [ - ["graphql-language-service-utils", "npm:2.4.4"] - ], - "linkType": "SOFT", - }], - ["virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4", { - "packageLocation": "./.yarn/$$virtual/graphql-language-service-utils-virtual-02b28dacd1/0/cache/graphql-language-service-utils-npm-2.4.4-b61957bd76-9cf51ccbba.zip/node_modules/graphql-language-service-utils/", - "packageDependencies": [ - ["graphql-language-service-utils", "virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["graphql-language-service-types", "virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["graphql-tag", [ - ["npm:2.10.4", { - "packageLocation": "./.yarn/cache/graphql-tag-npm-2.10.4-6cee82501e-19c20d48c2.zip/node_modules/graphql-tag/", - "packageDependencies": [ - ["graphql-tag", "npm:2.10.4"] - ], - "linkType": "SOFT", - }], - ["npm:2.11.0", { - "packageLocation": "./.yarn/cache/graphql-tag-npm-2.11.0-d505ecf590-4003555901.zip/node_modules/graphql-tag/", - "packageDependencies": [ - ["graphql-tag", "npm:2.11.0"] - ], - "linkType": "SOFT", - }], - ["virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:2.10.4", { - "packageLocation": "./.yarn/$$virtual/graphql-tag-virtual-196dcd58ab/0/cache/graphql-tag-npm-2.10.4-6cee82501e-19c20d48c2.zip/node_modules/graphql-tag/", - "packageDependencies": [ - ["graphql-tag", "virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:2.10.4"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0", { - "packageLocation": "./.yarn/$$virtual/graphql-tag-virtual-7e66e638c6/0/cache/graphql-tag-npm-2.11.0-d505ecf590-4003555901.zip/node_modules/graphql-tag/", - "packageDependencies": [ - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["graphql-tools", [ - ["npm:6.2.1", { - "packageLocation": "./.yarn/cache/graphql-tools-npm-6.2.1-fcfaac98d1-839abf3722.zip/node_modules/graphql-tools/", - "packageDependencies": [ - ["graphql-tools", "npm:6.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1", { - "packageLocation": "./.yarn/$$virtual/graphql-tools-virtual-80141ff236/0/cache/graphql-tools-npm-6.2.1-fcfaac98d1-839abf3722.zip/node_modules/graphql-tools/", - "packageDependencies": [ - ["graphql-tools", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/batch-delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/code-file-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/delegate", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/git-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/github-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/graphql-file-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/graphql-tag-pluck", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/import", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/json-file-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/links", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/load", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/load-files", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/merge", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/mock", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/module-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/relay-operation-optimizer", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/resolvers-composition", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@graphql-tools/stitch", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/url-loader", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@graphql-tools/utils", "virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1"], - ["@graphql-tools/wrap", "virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"], - ["tslib", "npm:2.0.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["graphql-type-json", [ - ["npm:0.3.2", { - "packageLocation": "./.yarn/cache/graphql-type-json-npm-0.3.2-05debc01d8-dbc2ca9b00.zip/node_modules/graphql-type-json/", - "packageDependencies": [ - ["graphql-type-json", "npm:0.3.2"] - ], - "linkType": "SOFT", - }], - ["virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.3.2", { - "packageLocation": "./.yarn/$$virtual/graphql-type-json-virtual-e60ce49fa8/0/cache/graphql-type-json-npm-0.3.2-05debc01d8-dbc2ca9b00.zip/node_modules/graphql-type-json/", - "packageDependencies": [ - ["graphql-type-json", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.3.2"], - ["@types/graphql", null], - ["graphql", "npm:15.3.0"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["gray-matter", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/gray-matter-npm-4.0.2-fbbccdd025-a4e24f74db.zip/node_modules/gray-matter/", - "packageDependencies": [ - ["gray-matter", "npm:4.0.2"], - ["js-yaml", "npm:3.14.0"], - ["kind-of", "npm:6.0.3"], - ["section-matter", "npm:1.0.0"], - ["strip-bom-string", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["grouped-queue", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/grouped-queue-npm-1.1.0-4784f3398e-cf0c40a057.zip/node_modules/grouped-queue/", - "packageDependencies": [ - ["grouped-queue", "npm:1.1.0"], - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }] - ]], - ["growly", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/growly-npm-1.3.0-b3a02d4d2a-c87f7e8c78.zip/node_modules/growly/", - "packageDependencies": [ - ["growly", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["handlebars", [ - ["npm:4.7.6", { - "packageLocation": "./.yarn/cache/handlebars-npm-4.7.6-f64e7514e4-50276715da.zip/node_modules/handlebars/", - "packageDependencies": [ - ["handlebars", "npm:4.7.6"], - ["minimist", "npm:1.2.5"], - ["neo-async", "npm:2.6.1"], - ["source-map", "npm:0.6.1"], - ["uglify-js", "npm:3.10.4"], - ["wordwrap", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["har-schema", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-e27ac33a96.zip/node_modules/har-schema/", - "packageDependencies": [ - ["har-schema", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["har-validator", [ - ["npm:5.1.3", { - "packageLocation": "./.yarn/cache/har-validator-npm-5.1.3-f192d43c41-64cb2294c1.zip/node_modules/har-validator/", - "packageDependencies": [ - ["har-validator", "npm:5.1.3"], - ["ajv", "npm:6.12.3"], - ["har-schema", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["has", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/has-npm-1.0.3-b7f00631c1-c686e15300.zip/node_modules/has/", - "packageDependencies": [ - ["has", "npm:1.0.3"], - ["function-bind", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["has-ansi", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/has-ansi-npm-2.0.0-9bf0cff2af-c6805f5d01.zip/node_modules/has-ansi/", - "packageDependencies": [ - ["has-ansi", "npm:2.0.0"], - ["ansi-regex", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["has-flag", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/has-flag-npm-1.0.0-9e0c397172-556423170e.zip/node_modules/has-flag/", - "packageDependencies": [ - ["has-flag", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/has-flag-npm-2.0.0-afbe649c60-bdc20630df.zip/node_modules/has-flag/", - "packageDependencies": [ - ["has-flag", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-63aade480d.zip/node_modules/has-flag/", - "packageDependencies": [ - ["has-flag", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/has-flag-npm-4.0.0-32af9f0536-2e5391139d.zip/node_modules/has-flag/", - "packageDependencies": [ - ["has-flag", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["has-own-prop", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/has-own-prop-npm-2.0.0-d895adfe8c-8513ff9052.zip/node_modules/has-own-prop/", - "packageDependencies": [ - ["has-own-prop", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["has-symbol-support-x", [ - ["npm:1.4.2", { - "packageLocation": "./.yarn/cache/has-symbol-support-x-npm-1.4.2-185b8a260c-d75110e7e3.zip/node_modules/has-symbol-support-x/", - "packageDependencies": [ - ["has-symbol-support-x", "npm:1.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["has-symbols", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/has-symbols-npm-1.0.1-b783bc25ec-84e2a03ada.zip/node_modules/has-symbols/", - "packageDependencies": [ - ["has-symbols", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["has-to-string-tag-x", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/has-to-string-tag-x-npm-1.4.1-205861f243-fbbd620826.zip/node_modules/has-to-string-tag-x/", - "packageDependencies": [ - ["has-to-string-tag-x", "npm:1.4.1"], - ["has-symbol-support-x", "npm:1.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["has-unicode", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/has-unicode-npm-2.0.1-893adb4747-ed3719f95c.zip/node_modules/has-unicode/", - "packageDependencies": [ - ["has-unicode", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["has-value", [ - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/has-value-npm-0.3.1-4a15b6c29f-d78fab4523.zip/node_modules/has-value/", - "packageDependencies": [ - ["has-value", "npm:0.3.1"], - ["get-value", "npm:2.0.6"], - ["has-values", "npm:0.1.4"], - ["isobject", "npm:2.1.0"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/has-value-npm-1.0.0-19d82fd04b-e05422bce9.zip/node_modules/has-value/", - "packageDependencies": [ - ["has-value", "npm:1.0.0"], - ["get-value", "npm:2.0.6"], - ["has-values", "npm:1.0.0"], - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["has-values", [ - ["npm:0.1.4", { - "packageLocation": "./.yarn/cache/has-values-npm-0.1.4-6b4397786d-df7ac830e4.zip/node_modules/has-values/", - "packageDependencies": [ - ["has-values", "npm:0.1.4"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/has-values-npm-1.0.0-890c077bbd-b69c45d513.zip/node_modules/has-values/", - "packageDependencies": [ - ["has-values", "npm:1.0.0"], - ["is-number", "npm:3.0.0"], - ["kind-of", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["has-yarn", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/has-yarn-npm-2.1.0-b73f6750d9-105682f263.zip/node_modules/has-yarn/", - "packageDependencies": [ - ["has-yarn", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["hash-base", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/hash-base-npm-3.1.0-26fc5711dd-9f4b0d183d.zip/node_modules/hash-base/", - "packageDependencies": [ - ["hash-base", "npm:3.1.0"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:3.6.0"], - ["safe-buffer", "npm:5.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["hash.js", [ - ["npm:1.1.7", { - "packageLocation": "./.yarn/cache/hash.js-npm-1.1.7-f1ad187358-fceb7fb87e.zip/node_modules/hash.js/", - "packageDependencies": [ - ["hash.js", "npm:1.1.7"], - ["inherits", "npm:2.0.4"], - ["minimalistic-assert", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-embedded", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/hast-util-embedded-npm-1.0.5-ba4cc23c00-2208c8e00d.zip/node_modules/hast-util-embedded/", - "packageDependencies": [ - ["hast-util-embedded", "npm:1.0.5"], - ["hast-util-is-element", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-has-property", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/hast-util-has-property-npm-1.0.4-a09b607810-c9b8dcf181.zip/node_modules/hast-util-has-property/", - "packageDependencies": [ - ["hast-util-has-property", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-is-body-ok-link", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/hast-util-is-body-ok-link-npm-1.0.4-7d0327a924-93b1c8d6d4.zip/node_modules/hast-util-is-body-ok-link/", - "packageDependencies": [ - ["hast-util-is-body-ok-link", "npm:1.0.4"], - ["hast-util-has-property", "npm:1.0.4"], - ["hast-util-is-element", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-is-element", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/hast-util-is-element-npm-1.1.0-be10e62fa7-fb8241c9a0.zip/node_modules/hast-util-is-element/", - "packageDependencies": [ - ["hast-util-is-element", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-phrasing", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/hast-util-phrasing-npm-1.0.5-9c550faa2d-53ece8fc56.zip/node_modules/hast-util-phrasing/", - "packageDependencies": [ - ["hast-util-phrasing", "npm:1.0.5"], - ["hast-util-embedded", "npm:1.0.5"], - ["hast-util-has-property", "npm:1.0.4"], - ["hast-util-is-body-ok-link", "npm:1.0.4"], - ["hast-util-is-element", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-to-html", [ - ["npm:7.1.1", { - "packageLocation": "./.yarn/cache/hast-util-to-html-npm-7.1.1-088b4f4781-6087ccca17.zip/node_modules/hast-util-to-html/", - "packageDependencies": [ - ["hast-util-to-html", "npm:7.1.1"], - ["ccount", "npm:1.0.5"], - ["comma-separated-tokens", "npm:1.0.8"], - ["hast-util-is-element", "npm:1.1.0"], - ["hast-util-whitespace", "npm:1.0.4"], - ["html-void-elements", "npm:1.0.5"], - ["property-information", "npm:5.6.0"], - ["space-separated-tokens", "npm:1.1.5"], - ["stringify-entities", "npm:3.0.1"], - ["unist-util-is", "npm:4.0.2"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["hast-util-whitespace", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/hast-util-whitespace-npm-1.0.4-43bb1ff3d0-4acef9a83d.zip/node_modules/hast-util-whitespace/", - "packageDependencies": [ - ["hast-util-whitespace", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["hasurl", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/hasurl-npm-1.0.0-198002760a-523cb8fc4d.zip/node_modules/hasurl/", - "packageDependencies": [ - ["hasurl", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["he", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/he-npm-1.1.1-441b4d33c6-b2b167171c.zip/node_modules/he/", - "packageDependencies": [ - ["he", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/he-npm-1.2.0-3b73a2ff07-212122003c.zip/node_modules/he/", - "packageDependencies": [ - ["he", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["hex-color-regex", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/hex-color-regex-npm-1.1.0-35ec780c11-89899f5f74.zip/node_modules/hex-color-regex/", - "packageDependencies": [ - ["hex-color-regex", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["hex-rgb", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/hex-rgb-npm-4.1.0-e9373742a2-38b46c4b71.zip/node_modules/hex-rgb/", - "packageDependencies": [ - ["hex-rgb", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["highlight.js", [ - ["npm:10.2.0", { - "packageLocation": "./.yarn/cache/highlight.js-npm-10.2.0-c7b0b930ee-249ae2aa45.zip/node_modules/highlight.js/", - "packageDependencies": [ - ["highlight.js", "npm:10.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["hmac-drbg", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/hmac-drbg-npm-1.0.1-3499ad31cd-729d5a55bf.zip/node_modules/hmac-drbg/", - "packageDependencies": [ - ["hmac-drbg", "npm:1.0.1"], - ["hash.js", "npm:1.1.7"], - ["minimalistic-assert", "npm:1.0.1"], - ["minimalistic-crypto-utils", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["hoist-non-react-statics", [ - ["npm:3.3.2", { - "packageLocation": "./.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-d3e3791d6e.zip/node_modules/hoist-non-react-statics/", - "packageDependencies": [ - ["hoist-non-react-statics", "npm:3.3.2"], - ["react-is", "npm:16.13.1"] - ], - "linkType": "HARD", - }] - ]], - ["homedir-polyfill", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/homedir-polyfill-npm-1.0.3-da1a29ce00-86a4e544ca.zip/node_modules/homedir-polyfill/", - "packageDependencies": [ - ["homedir-polyfill", "npm:1.0.3"], - ["parse-passwd", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["hosted-git-info", [ - ["npm:2.8.8", { - "packageLocation": "./.yarn/cache/hosted-git-info-npm-2.8.8-94a3928c03-3ecc389dc6.zip/node_modules/hosted-git-info/", - "packageDependencies": [ - ["hosted-git-info", "npm:2.8.8"] - ], - "linkType": "HARD", - }] - ]], - ["hsl-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/hsl-regex-npm-1.0.0-49e975d55c-b04a50c6c7.zip/node_modules/hsl-regex/", - "packageDependencies": [ - ["hsl-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["hsla-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/hsla-regex-npm-1.0.0-f9d795def9-2460f935b5.zip/node_modules/hsla-regex/", - "packageDependencies": [ - ["hsla-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["html-comment-regex", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/html-comment-regex-npm-1.1.2-3f748b74f9-f3bf135002.zip/node_modules/html-comment-regex/", - "packageDependencies": [ - ["html-comment-regex", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["html-encoding-sniffer", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-6f49e83a2e.zip/node_modules/html-encoding-sniffer/", - "packageDependencies": [ - ["html-encoding-sniffer", "npm:2.0.1"], - ["whatwg-encoding", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["html-escaper", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-a216ae96fa.zip/node_modules/html-escaper/", - "packageDependencies": [ - ["html-escaper", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["html-to-react", [ - ["npm:1.4.3", { - "packageLocation": "./.yarn/cache/html-to-react-npm-1.4.3-1046be01f1-7a1545316a.zip/node_modules/html-to-react/", - "packageDependencies": [ - ["html-to-react", "npm:1.4.3"] - ], - "linkType": "SOFT", - }], - ["virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3", { - "packageLocation": "./.yarn/$$virtual/html-to-react-virtual-8c0c4a4459/0/cache/html-to-react-npm-1.4.3-1046be01f1-7a1545316a.zip/node_modules/html-to-react/", - "packageDependencies": [ - ["html-to-react", "virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3"], - ["@types/react", "npm:16.9.43"], - ["domhandler", "npm:3.0.0"], - ["htmlparser2", "npm:4.1.0"], - ["lodash.camelcase", "npm:4.3.0"], - ["ramda", "npm:0.27.0"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["html-void-elements", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/html-void-elements-npm-1.0.5-64f7ffca37-62cb426bd3.zip/node_modules/html-void-elements/", - "packageDependencies": [ - ["html-void-elements", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["html-whitespace-sensitive-tag-names", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/html-whitespace-sensitive-tag-names-npm-1.0.3-a68ebcf264-b928448aa3.zip/node_modules/html-whitespace-sensitive-tag-names/", - "packageDependencies": [ - ["html-whitespace-sensitive-tag-names", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["htmlparser2", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/htmlparser2-npm-4.1.0-484402b323-4a5d9ecbe3.zip/node_modules/htmlparser2/", - "packageDependencies": [ - ["htmlparser2", "npm:4.1.0"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.0.0"], - ["domutils", "npm:2.0.0"], - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/htmlparser2-npm-5.0.1-d50ebd0fbb-c3564b7d26.zip/node_modules/htmlparser2/", - "packageDependencies": [ - ["htmlparser2", "npm:5.0.1"], - ["domelementtype", "npm:2.0.1"], - ["domhandler", "npm:3.3.0"], - ["domutils", "npm:2.6.0"], - ["entities", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["http-cache-semantics", [ - ["npm:3.8.1", { - "packageLocation": "./.yarn/cache/http-cache-semantics-npm-3.8.1-9d037f563e-715784dc20.zip/node_modules/http-cache-semantics/", - "packageDependencies": [ - ["http-cache-semantics", "npm:3.8.1"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-451df9784a.zip/node_modules/http-cache-semantics/", - "packageDependencies": [ - ["http-cache-semantics", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["http-errors", [ - ["npm:1.7.2", { - "packageLocation": "./.yarn/cache/http-errors-npm-1.7.2-67163ae1df-8ce4a4af05.zip/node_modules/http-errors/", - "packageDependencies": [ - ["http-errors", "npm:1.7.2"], - ["depd", "npm:1.1.2"], - ["inherits", "npm:2.0.3"], - ["setprototypeof", "npm:1.1.1"], - ["statuses", "npm:1.5.0"], - ["toidentifier", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:1.7.3", { - "packageLocation": "./.yarn/cache/http-errors-npm-1.7.3-f6dc83b082-563ae4a3f1.zip/node_modules/http-errors/", - "packageDependencies": [ - ["http-errors", "npm:1.7.3"], - ["depd", "npm:1.1.2"], - ["inherits", "npm:2.0.4"], - ["setprototypeof", "npm:1.1.1"], - ["statuses", "npm:1.5.0"], - ["toidentifier", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:1.8.0", { - "packageLocation": "./.yarn/cache/http-errors-npm-1.8.0-4399ea3b8d-95ad78508b.zip/node_modules/http-errors/", - "packageDependencies": [ - ["http-errors", "npm:1.8.0"], - ["depd", "npm:1.1.2"], - ["inherits", "npm:2.0.4"], - ["setprototypeof", "npm:1.2.0"], - ["statuses", "npm:1.5.0"], - ["toidentifier", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["http-proxy", [ - ["npm:1.18.1", { - "packageLocation": "./.yarn/cache/http-proxy-npm-1.18.1-a313c479c5-fc2062718d.zip/node_modules/http-proxy/", - "packageDependencies": [ - ["http-proxy", "npm:1.18.1"], - ["eventemitter3", "npm:4.0.4"], - ["follow-redirects", "npm:1.12.1"], - ["requires-port", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["http-proxy-agent", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/http-proxy-agent-npm-2.1.0-6618ab6046-627c6a7437.zip/node_modules/http-proxy-agent/", - "packageDependencies": [ - ["http-proxy-agent", "npm:2.1.0"], - ["agent-base", "npm:4.3.0"], - ["debug", "virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["http-signature", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/http-signature-npm-1.2.0-ee92426f34-d28227eed3.zip/node_modules/http-signature/", - "packageDependencies": [ - ["http-signature", "npm:1.2.0"], - ["assert-plus", "npm:1.0.0"], - ["jsprim", "npm:1.4.1"], - ["sshpk", "npm:1.16.1"] - ], - "linkType": "HARD", - }] - ]], - ["http2-wrapper", [ - ["npm:1.0.0-beta.5.2", { - "packageLocation": "./.yarn/cache/http2-wrapper-npm-1.0.0-beta.5.2-3ea360ab61-74db457c83.zip/node_modules/http2-wrapper/", - "packageDependencies": [ - ["http2-wrapper", "npm:1.0.0-beta.5.2"], - ["quick-lru", "npm:5.1.1"], - ["resolve-alpn", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["https-browserify", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/https-browserify-npm-1.0.0-7d6b10abbc-9746a4ef02.zip/node_modules/https-browserify/", - "packageDependencies": [ - ["https-browserify", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["https-proxy-agent", [ - ["npm:2.2.4", { - "packageLocation": "./.yarn/cache/https-proxy-agent-npm-2.2.4-8bb97bed48-4e42bed005.zip/node_modules/https-proxy-agent/", - "packageDependencies": [ - ["https-proxy-agent", "npm:2.2.4"], - ["agent-base", "npm:4.3.0"], - ["debug", "virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-18aa04ea08.zip/node_modules/https-proxy-agent/", - "packageDependencies": [ - ["https-proxy-agent", "npm:5.0.0"], - ["agent-base", "npm:6.0.2"], - ["debug", "virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["human-signals", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/human-signals-npm-1.1.1-616b2586c2-cac115f635.zip/node_modules/human-signals/", - "packageDependencies": [ - ["human-signals", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["humanize-string", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/humanize-string-npm-1.0.2-e8024b948d-d455bcdbf8.zip/node_modules/humanize-string/", - "packageDependencies": [ - ["humanize-string", "npm:1.0.2"], - ["decamelize", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["humps", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/humps-npm-2.0.1-268b3f430d-d7758bccbb.zip/node_modules/humps/", - "packageDependencies": [ - ["humps", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["hyperlinker", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/hyperlinker-npm-1.0.0-c2e60c3b2a-80273573e9.zip/node_modules/hyperlinker/", - "packageDependencies": [ - ["hyperlinker", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["iconv-lite", [ - ["npm:0.4.24", { - "packageLocation": "./.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-a9b9521066.zip/node_modules/iconv-lite/", - "packageDependencies": [ - ["iconv-lite", "npm:0.4.24"], - ["safer-buffer", "npm:2.1.2"] - ], - "linkType": "HARD", - }], - ["npm:0.6.2", { - "packageLocation": "./.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-0785670120.zip/node_modules/iconv-lite/", - "packageDependencies": [ - ["iconv-lite", "npm:0.6.2"], - ["safer-buffer", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["icss-utils", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/icss-utils-npm-4.1.1-9d588ebc46-437ba4f7c9.zip/node_modules/icss-utils/", - "packageDependencies": [ - ["icss-utils", "npm:4.1.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["ieee754", [ - ["npm:1.1.13", { - "packageLocation": "./.yarn/cache/ieee754-npm-1.1.13-a57522ba12-9ef12932e8.zip/node_modules/ieee754/", - "packageDependencies": [ - ["ieee754", "npm:1.1.13"] - ], - "linkType": "HARD", - }], - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-6c1cfab995.zip/node_modules/ieee754/", - "packageDependencies": [ - ["ieee754", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["iferr", [ - ["npm:0.1.5", { - "packageLocation": "./.yarn/cache/iferr-npm-0.1.5-c49f4a3fbc-9d366dcc63.zip/node_modules/iferr/", - "packageDependencies": [ - ["iferr", "npm:0.1.5"] - ], - "linkType": "HARD", - }] - ]], - ["ignore", [ - ["npm:3.3.10", { - "packageLocation": "./.yarn/cache/ignore-npm-3.3.10-baaf3519b5-eda1ee5716.zip/node_modules/ignore/", - "packageDependencies": [ - ["ignore", "npm:3.3.10"] - ], - "linkType": "HARD", - }], - ["npm:4.0.6", { - "packageLocation": "./.yarn/cache/ignore-npm-4.0.6-66c0d6543e-8f7b7f7c26.zip/node_modules/ignore/", - "packageDependencies": [ - ["ignore", "npm:4.0.6"] - ], - "linkType": "HARD", - }], - ["npm:5.1.8", { - "packageLocation": "./.yarn/cache/ignore-npm-5.1.8-aa9a49ada4-b08e3d5b5d.zip/node_modules/ignore/", - "packageDependencies": [ - ["ignore", "npm:5.1.8"] - ], - "linkType": "HARD", - }] - ]], - ["ignore-by-default", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/ignore-by-default-npm-1.0.1-78ea10bc54-c5c70afd7c.zip/node_modules/ignore-by-default/", - "packageDependencies": [ - ["ignore-by-default", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["immutable", [ - ["npm:3.7.6", { - "packageLocation": "./.yarn/cache/immutable-npm-3.7.6-1c13b39359-33fb106a33.zip/node_modules/immutable/", - "packageDependencies": [ - ["immutable", "npm:3.7.6"] - ], - "linkType": "HARD", - }] - ]], - ["import-cwd", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/import-cwd-npm-3.0.0-2f801f964d-5689cfc5d2.zip/node_modules/import-cwd/", - "packageDependencies": [ - ["import-cwd", "npm:3.0.0"], - ["import-from", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["import-fresh", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/import-fresh-npm-2.0.0-8b4e6073aa-c95204ecfb.zip/node_modules/import-fresh/", - "packageDependencies": [ - ["import-fresh", "npm:2.0.0"], - ["caller-path", "npm:2.0.0"], - ["resolve-from", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.2.1", { - "packageLocation": "./.yarn/cache/import-fresh-npm-3.2.1-b4f6711244-5ace950631.zip/node_modules/import-fresh/", - "packageDependencies": [ - ["import-fresh", "npm:3.2.1"], - ["parent-module", "npm:1.0.1"], - ["resolve-from", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-3ff624f001.zip/node_modules/import-fresh/", - "packageDependencies": [ - ["import-fresh", "npm:3.3.0"], - ["parent-module", "npm:1.0.1"], - ["resolve-from", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["import-from", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/import-from-npm-3.0.0-8656bfd330-ba66d42da5.zip/node_modules/import-from/", - "packageDependencies": [ - ["import-from", "npm:3.0.0"], - ["resolve-from", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["import-lazy", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/import-lazy-npm-2.1.0-b128ce6959-4907a2ddbe.zip/node_modules/import-lazy/", - "packageDependencies": [ - ["import-lazy", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["import-local", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-9ba5f1697b.zip/node_modules/import-local/", - "packageDependencies": [ - ["import-local", "npm:3.0.2"], - ["pkg-dir", "npm:4.2.0"], - ["resolve-cwd", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["imurmurhash", [ - ["npm:0.1.4", { - "packageLocation": "./.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-34d414d789.zip/node_modules/imurmurhash/", - "packageDependencies": [ - ["imurmurhash", "npm:0.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["indent-string", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/indent-string-npm-2.1.0-fe23253c76-5c6bc6548e.zip/node_modules/indent-string/", - "packageDependencies": [ - ["indent-string", "npm:2.1.0"], - ["repeating", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/indent-string-npm-3.2.0-9930503310-00d5200e3a.zip/node_modules/indent-string/", - "packageDependencies": [ - ["indent-string", "npm:3.2.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/indent-string-npm-4.0.0-7b717435b2-3e54996c6e.zip/node_modules/indent-string/", - "packageDependencies": [ - ["indent-string", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["indexes-of", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/indexes-of-npm-1.0.1-5ce8500941-e1c232a326.zip/node_modules/indexes-of/", - "packageDependencies": [ - ["indexes-of", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["infer-owner", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-56aa1d87b0.zip/node_modules/infer-owner/", - "packageDependencies": [ - ["infer-owner", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["inflight", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/inflight-npm-1.0.6-ccedb4b908-17c53fc42c.zip/node_modules/inflight/", - "packageDependencies": [ - ["inflight", "npm:1.0.6"], - ["once", "npm:1.4.0"], - ["wrappy", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["inherits", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/inherits-npm-2.0.1-0011554c03-6f59f627a6.zip/node_modules/inherits/", - "packageDependencies": [ - ["inherits", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/inherits-npm-2.0.3-401e64b080-9488f9433e.zip/node_modules/inherits/", - "packageDependencies": [ - ["inherits", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/inherits-npm-2.0.4-c66b3957a0-98426da247.zip/node_modules/inherits/", - "packageDependencies": [ - ["inherits", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["ini", [ - ["npm:1.3.5", { - "packageLocation": "./.yarn/cache/ini-npm-1.3.5-c4f62924bc-304a78d1e0.zip/node_modules/ini/", - "packageDependencies": [ - ["ini", "npm:1.3.5"] - ], - "linkType": "HARD", - }] - ]], - ["inquirer", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/inquirer-npm-1.2.3-a9065a86ba-189a0fb7c7.zip/node_modules/inquirer/", - "packageDependencies": [ - ["inquirer", "npm:1.2.3"], - ["ansi-escapes", "npm:1.4.0"], - ["chalk", "npm:1.1.3"], - ["cli-cursor", "npm:1.0.2"], - ["cli-width", "npm:2.2.1"], - ["external-editor", "npm:1.1.1"], - ["figures", "npm:1.7.0"], - ["lodash", "npm:4.17.19"], - ["mute-stream", "npm:0.0.6"], - ["pinkie-promise", "npm:2.0.1"], - ["run-async", "npm:2.4.1"], - ["rx", "npm:4.1.0"], - ["string-width", "npm:1.0.2"], - ["strip-ansi", "npm:3.0.1"], - ["through", "npm:2.3.8"] - ], - "linkType": "HARD", - }], - ["npm:6.5.2", { - "packageLocation": "./.yarn/cache/inquirer-npm-6.5.2-4f6408c247-f3185658ee.zip/node_modules/inquirer/", - "packageDependencies": [ - ["inquirer", "npm:6.5.2"], - ["ansi-escapes", "npm:3.2.0"], - ["chalk", "npm:2.4.2"], - ["cli-cursor", "npm:2.1.0"], - ["cli-width", "npm:2.2.1"], - ["external-editor", "npm:3.1.0"], - ["figures", "npm:2.0.0"], - ["lodash", "npm:4.17.19"], - ["mute-stream", "npm:0.0.7"], - ["run-async", "npm:2.4.1"], - ["rxjs", "npm:6.6.0"], - ["string-width", "npm:2.1.1"], - ["strip-ansi", "npm:5.2.0"], - ["through", "npm:2.3.8"] - ], - "linkType": "HARD", - }], - ["npm:7.3.3", { - "packageLocation": "./.yarn/cache/inquirer-npm-7.3.3-9e86782610-fa0cbd9594.zip/node_modules/inquirer/", - "packageDependencies": [ - ["inquirer", "npm:7.3.3"], - ["ansi-escapes", "npm:4.3.1"], - ["chalk", "npm:4.1.0"], - ["cli-cursor", "npm:3.1.0"], - ["cli-width", "npm:3.0.0"], - ["external-editor", "npm:3.1.0"], - ["figures", "npm:3.2.0"], - ["lodash", "npm:4.17.19"], - ["mute-stream", "npm:0.0.8"], - ["run-async", "npm:2.4.1"], - ["rxjs", "npm:6.6.0"], - ["string-width", "npm:4.2.0"], - ["strip-ansi", "npm:6.0.0"], - ["through", "npm:2.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["insight", [ - ["npm:0.10.3", { - "packageLocation": "./.yarn/cache/insight-npm-0.10.3-6de547d728-dbd7e97257.zip/node_modules/insight/", - "packageDependencies": [ - ["insight", "npm:0.10.3"], - ["async", "npm:2.6.3"], - ["chalk", "npm:2.4.2"], - ["conf", "npm:1.4.0"], - ["inquirer", "npm:6.5.2"], - ["lodash.debounce", "npm:4.0.8"], - ["os-name", "npm:3.1.0"], - ["request", "npm:2.88.2"], - ["tough-cookie", "npm:3.0.1"], - ["uuid", "npm:3.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["interpret", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/interpret-npm-1.4.0-17b4b5b0a4-f15725d762.zip/node_modules/interpret/", - "packageDependencies": [ - ["interpret", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["into-stream", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/into-stream-npm-3.1.0-56f8d76349-c3af9c2ee7.zip/node_modules/into-stream/", - "packageDependencies": [ - ["into-stream", "npm:3.1.0"], - ["from2", "npm:2.3.0"], - ["p-is-promise", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["invariant", [ - ["npm:2.2.4", { - "packageLocation": "./.yarn/cache/invariant-npm-2.2.4-717fbdb119-96d8a2a4f0.zip/node_modules/invariant/", - "packageDependencies": [ - ["invariant", "npm:2.2.4"], - ["loose-envify", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["ip-regex", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/ip-regex-npm-2.1.0-7eb0f6c4ab-2fd2190ada.zip/node_modules/ip-regex/", - "packageDependencies": [ - ["ip-regex", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["ipaddr.js", [ - ["npm:1.9.1", { - "packageLocation": "./.yarn/cache/ipaddr.js-npm-1.9.1-19ae7878b4-de15bc7e63.zip/node_modules/ipaddr.js/", - "packageDependencies": [ - ["ipaddr.js", "npm:1.9.1"] - ], - "linkType": "HARD", - }] - ]], - ["is", [ - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/is-npm-3.3.0-90b1d93580-191293ded7.zip/node_modules/is/", - "packageDependencies": [ - ["is", "npm:3.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-absolute", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-absolute-npm-1.0.0-2525cf00c8-4b8ebda658.zip/node_modules/is-absolute/", - "packageDependencies": [ - ["is-absolute", "npm:1.0.0"], - ["is-relative", "npm:1.0.0"], - ["is-windows", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-absolute-url", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/is-absolute-url-npm-2.1.0-f1cdafe3db-f9d193d86b.zip/node_modules/is-absolute-url/", - "packageDependencies": [ - ["is-absolute-url", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-accessor-descriptor", [ - ["npm:0.1.6", { - "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-0.1.6-41c495d517-7a7fca2185.zip/node_modules/is-accessor-descriptor/", - "packageDependencies": [ - ["is-accessor-descriptor", "npm:0.1.6"], - ["kind-of", "npm:3.2.2"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-accessor-descriptor-npm-1.0.0-d8ce016e98-3973215c2e.zip/node_modules/is-accessor-descriptor/", - "packageDependencies": [ - ["is-accessor-descriptor", "npm:1.0.0"], - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["is-alphabetical", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-alphabetical-npm-1.0.4-94e2e7f984-a4a2afcf65.zip/node_modules/is-alphabetical/", - "packageDependencies": [ - ["is-alphabetical", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-alphanumeric", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-alphanumeric-npm-1.0.0-d58b7d3fab-f00fa59efc.zip/node_modules/is-alphanumeric/", - "packageDependencies": [ - ["is-alphanumeric", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-alphanumerical", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-alphanumerical-npm-1.0.4-c96dc6d674-d97ec38a74.zip/node_modules/is-alphanumerical/", - "packageDependencies": [ - ["is-alphanumerical", "npm:1.0.4"], - ["is-alphabetical", "npm:1.0.4"], - ["is-decimal", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-arrayish", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-fc2bbe14db.zip/node_modules/is-arrayish/", - "packageDependencies": [ - ["is-arrayish", "npm:0.2.1"] - ], - "linkType": "HARD", - }], - ["npm:0.3.2", { - "packageLocation": "./.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-0687b6b8f2.zip/node_modules/is-arrayish/", - "packageDependencies": [ - ["is-arrayish", "npm:0.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-binary-path", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-binary-path-npm-1.0.1-9af74a6099-25a2cda1e5.zip/node_modules/is-binary-path/", - "packageDependencies": [ - ["is-binary-path", "npm:1.0.1"], - ["binary-extensions", "npm:1.13.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-49a1446a3c.zip/node_modules/is-binary-path/", - "packageDependencies": [ - ["is-binary-path", "npm:2.1.0"], - ["binary-extensions", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-buffer", [ - ["npm:1.1.6", { - "packageLocation": "./.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-336ec78f00.zip/node_modules/is-buffer/", - "packageDependencies": [ - ["is-buffer", "npm:1.1.6"] - ], - "linkType": "HARD", - }], - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/is-buffer-npm-2.0.4-ce097f06a1-cd1cbc19e5.zip/node_modules/is-buffer/", - "packageDependencies": [ - ["is-buffer", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-callable", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/is-callable-npm-1.2.0-65cf88fe60-8a5e68b7c3.zip/node_modules/is-callable/", - "packageDependencies": [ - ["is-callable", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-ci", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/is-ci-npm-1.2.1-6a67118112-cdcdeba942.zip/node_modules/is-ci/", - "packageDependencies": [ - ["is-ci", "npm:1.2.1"], - ["ci-info", "npm:1.6.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/is-ci-npm-2.0.0-8662a0f445-09083018ed.zip/node_modules/is-ci/", - "packageDependencies": [ - ["is-ci", "npm:2.0.0"], - ["ci-info", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-color-stop", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-color-stop-npm-1.1.0-4235280dc5-0e3d46b1e1.zip/node_modules/is-color-stop/", - "packageDependencies": [ - ["is-color-stop", "npm:1.1.0"], - ["css-color-names", "npm:0.0.4"], - ["hex-color-regex", "npm:1.1.0"], - ["hsl-regex", "npm:1.0.0"], - ["hsla-regex", "npm:1.0.0"], - ["rgb-regex", "npm:1.0.1"], - ["rgba-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-core-module", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/is-core-module-npm-2.2.0-497065e3b0-2344744de9.zip/node_modules/is-core-module/", - "packageDependencies": [ - ["is-core-module", "npm:2.2.0"], - ["has", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["is-data-descriptor", [ - ["npm:0.1.4", { - "packageLocation": "./.yarn/cache/is-data-descriptor-npm-0.1.4-6f53f71c67-51db89bb46.zip/node_modules/is-data-descriptor/", - "packageDependencies": [ - ["is-data-descriptor", "npm:0.1.4"], - ["kind-of", "npm:3.2.2"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-data-descriptor-npm-1.0.0-f7d2e852ca-0297518899.zip/node_modules/is-data-descriptor/", - "packageDependencies": [ - ["is-data-descriptor", "npm:1.0.0"], - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["is-date-object", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/is-date-object-npm-1.0.2-461fbe93c0-0e32269946.zip/node_modules/is-date-object/", - "packageDependencies": [ - ["is-date-object", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-decimal", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-decimal-npm-1.0.4-e67dbd40dd-57a0e1a87f.zip/node_modules/is-decimal/", - "packageDependencies": [ - ["is-decimal", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-descriptor", [ - ["npm:0.1.6", { - "packageLocation": "./.yarn/cache/is-descriptor-npm-0.1.6-15c7346839-cab6979fb6.zip/node_modules/is-descriptor/", - "packageDependencies": [ - ["is-descriptor", "npm:0.1.6"], - ["is-accessor-descriptor", "npm:0.1.6"], - ["is-data-descriptor", "npm:0.1.4"], - ["kind-of", "npm:5.1.0"] - ], - "linkType": "HARD", - }], - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/is-descriptor-npm-1.0.2-5cfc02c444-be8004010e.zip/node_modules/is-descriptor/", - "packageDependencies": [ - ["is-descriptor", "npm:1.0.2"], - ["is-accessor-descriptor", "npm:1.0.0"], - ["is-data-descriptor", "npm:1.0.0"], - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["is-directory", [ - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/is-directory-npm-0.3.1-e835db28ed-e921dc1817.zip/node_modules/is-directory/", - "packageDependencies": [ - ["is-directory", "npm:0.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-docker", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-docker-npm-1.1.0-3a06b7148b-9762929738.zip/node_modules/is-docker/", - "packageDependencies": [ - ["is-docker", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/is-docker-npm-2.0.0-e998f9161a-9972935f7d.zip/node_modules/is-docker/", - "packageDependencies": [ - ["is-docker", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-extendable", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-9d051e68c3.zip/node_modules/is-extendable/", - "packageDependencies": [ - ["is-extendable", "npm:0.1.1"] - ], - "linkType": "HARD", - }], - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-extendable-npm-1.0.1-7095ad8b16-2bf711afe6.zip/node_modules/is-extendable/", - "packageDependencies": [ - ["is-extendable", "npm:1.0.1"], - ["is-plain-object", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-extglob", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-ca623e2c56.zip/node_modules/is-extglob/", - "packageDependencies": [ - ["is-extglob", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-finite", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-finite-npm-1.1.0-c6324c0f8f-d2ea9746ec.zip/node_modules/is-finite/", - "packageDependencies": [ - ["is-finite", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-fullwidth-code-point", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-1.0.0-0e436ba1ef-fc3d51ef08.zip/node_modules/is-fullwidth-code-point/", - "packageDependencies": [ - ["is-fullwidth-code-point", "npm:1.0.0"], - ["number-is-nan", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-e1e5284f84.zip/node_modules/is-fullwidth-code-point/", - "packageDependencies": [ - ["is-fullwidth-code-point", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-a01a19ecac.zip/node_modules/is-fullwidth-code-point/", - "packageDependencies": [ - ["is-fullwidth-code-point", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-generator-fn", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-9639f81679.zip/node_modules/is-generator-fn/", - "packageDependencies": [ - ["is-generator-fn", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-glob", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/is-glob-npm-3.1.0-ea0bd3271e-9911e04e28.zip/node_modules/is-glob/", - "packageDependencies": [ - ["is-glob", "npm:3.1.0"], - ["is-extglob", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/is-glob-npm-4.0.1-341760116f-98cd4f715f.zip/node_modules/is-glob/", - "packageDependencies": [ - ["is-glob", "npm:4.0.1"], - ["is-extglob", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-hexadecimal", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-hexadecimal-npm-1.0.4-b4091da09e-653c1d0115.zip/node_modules/is-hexadecimal/", - "packageDependencies": [ - ["is-hexadecimal", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-installed-globally", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/is-installed-globally-npm-0.1.0-c4b41928c9-99de529fc6.zip/node_modules/is-installed-globally/", - "packageDependencies": [ - ["is-installed-globally", "npm:0.1.0"], - ["global-dirs", "npm:0.1.1"], - ["is-path-inside", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:0.3.2", { - "packageLocation": "./.yarn/cache/is-installed-globally-npm-0.3.2-a593acf078-10fc4fb09f.zip/node_modules/is-installed-globally/", - "packageDependencies": [ - ["is-installed-globally", "npm:0.3.2"], - ["global-dirs", "npm:2.0.1"], - ["is-path-inside", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-interactive", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-interactive-npm-1.0.0-7ff7c6e04a-d79b435e51.zip/node_modules/is-interactive/", - "packageDependencies": [ - ["is-interactive", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-module", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-module-npm-1.0.0-79ba918283-2cbd41e276.zip/node_modules/is-module/", - "packageDependencies": [ - ["is-module", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-npm", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-npm-npm-1.0.0-3797354863-b562218ef0.zip/node_modules/is-npm/", - "packageDependencies": [ - ["is-npm", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/is-npm-npm-4.0.0-86d312340b-94ab2edae3.zip/node_modules/is-npm/", - "packageDependencies": [ - ["is-npm", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-number", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/is-number-npm-3.0.0-9088035ade-ae03986ded.zip/node_modules/is-number/", - "packageDependencies": [ - ["is-number", "npm:3.0.0"], - ["kind-of", "npm:3.2.2"] - ], - "linkType": "HARD", - }], - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/is-number-npm-7.0.0-060086935c-eec6e506c6.zip/node_modules/is-number/", - "packageDependencies": [ - ["is-number", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-obj", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-obj-npm-1.0.1-7d391539d7-0913a3bb64.zip/node_modules/is-obj/", - "packageDependencies": [ - ["is-obj", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-ffa67ed5df.zip/node_modules/is-obj/", - "packageDependencies": [ - ["is-obj", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-object", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-object-npm-1.0.1-a3c5154f6f-deb32fdb99.zip/node_modules/is-object/", - "packageDependencies": [ - ["is-object", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-observable", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-observable-npm-1.1.0-fd19f68a6c-6c40892788.zip/node_modules/is-observable/", - "packageDependencies": [ - ["is-observable", "npm:1.1.0"], - ["symbol-observable", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-path-inside", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-path-inside-npm-1.0.1-cd0d417091-7ccbc0bedf.zip/node_modules/is-path-inside/", - "packageDependencies": [ - ["is-path-inside", "npm:1.0.1"], - ["path-is-inside", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/is-path-inside-npm-3.0.2-e675e113cb-709ba85a71.zip/node_modules/is-path-inside/", - "packageDependencies": [ - ["is-path-inside", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-plain-obj", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-d2eb5a32ea.zip/node_modules/is-plain-obj/", - "packageDependencies": [ - ["is-plain-obj", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/is-plain-obj-npm-2.1.0-8dffd7ae9c-2314302f91.zip/node_modules/is-plain-obj/", - "packageDependencies": [ - ["is-plain-obj", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-plain-object", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2f32322673.zip/node_modules/is-plain-object/", - "packageDependencies": [ - ["is-plain-object", "npm:2.0.4"], - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-92bd87f095.zip/node_modules/is-plain-object/", - "packageDependencies": [ - ["is-plain-object", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-potential-custom-element-name", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-potential-custom-element-name-npm-1.0.0-0000641861-55b1ae44cf.zip/node_modules/is-potential-custom-element-name/", - "packageDependencies": [ - ["is-potential-custom-element-name", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-promise", [ - ["npm:2.2.2", { - "packageLocation": "./.yarn/cache/is-promise-npm-2.2.2-afbf94db67-6fe84293b8.zip/node_modules/is-promise/", - "packageDependencies": [ - ["is-promise", "npm:2.2.2"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/is-promise-npm-4.0.0-1e3c05420c-7085bdc4ea.zip/node_modules/is-promise/", - "packageDependencies": [ - ["is-promise", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-redirect", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-redirect-npm-1.0.0-0ff2c21753-24c2aef7db.zip/node_modules/is-redirect/", - "packageDependencies": [ - ["is-redirect", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-regex", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-regex-npm-1.1.0-3c0bd70230-8fe7ae8c06.zip/node_modules/is-regex/", - "packageDependencies": [ - ["is-regex", "npm:1.1.0"], - ["has-symbols", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-regexp", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-regexp-npm-1.0.0-8f95f51a0c-b6c3ea4f40.zip/node_modules/is-regexp/", - "packageDependencies": [ - ["is-regexp", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-relative", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-relative-npm-1.0.0-af71733ca6-a93a7b57d8.zip/node_modules/is-relative/", - "packageDependencies": [ - ["is-relative", "npm:1.0.0"], - ["is-unc-path", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-resolvable", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-resolvable-npm-1.1.0-c03fa806bf-ef1a289c54.zip/node_modules/is-resolvable/", - "packageDependencies": [ - ["is-resolvable", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-retry-allowed", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/is-retry-allowed-npm-1.2.0-730be11f6c-739384d266.zip/node_modules/is-retry-allowed/", - "packageDependencies": [ - ["is-retry-allowed", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-root", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-root-npm-1.0.0-f0e75e9688-ec099a88eb.zip/node_modules/is-root/", - "packageDependencies": [ - ["is-root", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-scoped", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-scoped-npm-1.0.0-f485e8ba50-05329dc061.zip/node_modules/is-scoped/", - "packageDependencies": [ - ["is-scoped", "npm:1.0.0"], - ["scoped-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-stream", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-39843ee9ff.zip/node_modules/is-stream/", - "packageDependencies": [ - ["is-stream", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-f92ba04a8b.zip/node_modules/is-stream/", - "packageDependencies": [ - ["is-stream", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-supported-regexp-flag", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/is-supported-regexp-flag-npm-1.0.1-28b6c95ae1-da366eb98e.zip/node_modules/is-supported-regexp-flag/", - "packageDependencies": [ - ["is-supported-regexp-flag", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-svg", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/is-svg-npm-3.0.0-405580f5e7-7dd3f5f18d.zip/node_modules/is-svg/", - "packageDependencies": [ - ["is-svg", "npm:3.0.0"], - ["html-comment-regex", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-symbol", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/is-symbol-npm-1.0.3-6bebca15dc-753aa0cf95.zip/node_modules/is-symbol/", - "packageDependencies": [ - ["is-symbol", "npm:1.0.3"], - ["has-symbols", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-typedarray", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4e21156e73.zip/node_modules/is-typedarray/", - "packageDependencies": [ - ["is-typedarray", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-unc-path", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/is-unc-path-npm-1.0.0-9cee24d85f-ee43c89aa0.zip/node_modules/is-unc-path/", - "packageDependencies": [ - ["is-unc-path", "npm:1.0.0"], - ["unc-path-regex", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-utf8", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/is-utf8-npm-0.2.1-46ab364e2f-c72f604d72.zip/node_modules/is-utf8/", - "packageDependencies": [ - ["is-utf8", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["is-whitespace-character", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-whitespace-character-npm-1.0.4-02d39af907-fd6dbced04.zip/node_modules/is-whitespace-character/", - "packageDependencies": [ - ["is-whitespace-character", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-windows", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-dd1ed8339a.zip/node_modules/is-windows/", - "packageDependencies": [ - ["is-windows", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["is-word-character", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/is-word-character-npm-1.0.4-eeb59c97bc-84da3b0a2c.zip/node_modules/is-word-character/", - "packageDependencies": [ - ["is-word-character", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["is-wsl", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/is-wsl-npm-1.1.0-136e2b7c74-0f15cf5d5f.zip/node_modules/is-wsl/", - "packageDependencies": [ - ["is-wsl", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/is-wsl-npm-2.2.0-2ba10d6393-3dcc4073d4.zip/node_modules/is-wsl/", - "packageDependencies": [ - ["is-wsl", "npm:2.2.0"], - ["is-docker", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["is-yarn-global", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/is-yarn-global-npm-0.3.0-18cad00879-5a66f706f2.zip/node_modules/is-yarn-global/", - "packageDependencies": [ - ["is-yarn-global", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["isarray", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/isarray-npm-1.0.0-db4f547720-b0ff31a290.zip/node_modules/isarray/", - "packageDependencies": [ - ["isarray", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["isbinaryfile", [ - ["npm:4.0.6", { - "packageLocation": "./.yarn/cache/isbinaryfile-npm-4.0.6-0ca92621fe-23d94f36fb.zip/node_modules/isbinaryfile/", - "packageDependencies": [ - ["isbinaryfile", "npm:4.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["isexe", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7b437980bb.zip/node_modules/isexe/", - "packageDependencies": [ - ["isexe", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["isobject", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/isobject-npm-2.1.0-2798cf0d94-2e7d7dd8d5.zip/node_modules/isobject/", - "packageDependencies": [ - ["isobject", "npm:2.1.0"], - ["isarray", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/isobject-npm-3.0.1-8145901fd2-b537a9ccdd.zip/node_modules/isobject/", - "packageDependencies": [ - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["isomorphic-fetch", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/isomorphic-fetch-npm-2.2.1-46b4db5d7b-a4174e332a.zip/node_modules/isomorphic-fetch/", - "packageDependencies": [ - ["isomorphic-fetch", "npm:2.2.1"], - ["node-fetch", "npm:1.7.3"], - ["whatwg-fetch", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["isomorphic-unfetch", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/isomorphic-unfetch-npm-3.0.0-78ab1ced12-c095a48045.zip/node_modules/isomorphic-unfetch/", - "packageDependencies": [ - ["isomorphic-unfetch", "npm:3.0.0"], - ["node-fetch", "npm:2.6.0"], - ["unfetch", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["isstream", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/isstream-npm-0.1.2-8581c75385-8e6e5c4cf1.zip/node_modules/isstream/", - "packageDependencies": [ - ["isstream", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["istanbul-lib-coverage", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-c8effc09ae.zip/node_modules/istanbul-lib-coverage/", - "packageDependencies": [ - ["istanbul-lib-coverage", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["istanbul-lib-instrument", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/istanbul-lib-instrument-npm-4.0.3-4d4c2263f8-478e43e75d.zip/node_modules/istanbul-lib-instrument/", - "packageDependencies": [ - ["istanbul-lib-instrument", "npm:4.0.3"], - ["@babel/core", "npm:7.10.5"], - ["@istanbuljs/schema", "npm:0.1.2"], - ["istanbul-lib-coverage", "npm:3.0.0"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["istanbul-lib-report", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-aada59dfce.zip/node_modules/istanbul-lib-report/", - "packageDependencies": [ - ["istanbul-lib-report", "npm:3.0.0"], - ["istanbul-lib-coverage", "npm:3.0.0"], - ["make-dir", "npm:3.1.0"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["istanbul-lib-source-maps", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-018b5feeb4.zip/node_modules/istanbul-lib-source-maps/", - "packageDependencies": [ - ["istanbul-lib-source-maps", "npm:4.0.0"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["istanbul-lib-coverage", "npm:3.0.0"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["istanbul-reports", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/istanbul-reports-npm-3.0.2-6ccd67e17e-d4ed416e13.zip/node_modules/istanbul-reports/", - "packageDependencies": [ - ["istanbul-reports", "npm:3.0.2"], - ["html-escaper", "npm:2.0.2"], - ["istanbul-lib-report", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["istextorbinary", [ - ["npm:2.6.0", { - "packageLocation": "./.yarn/cache/istextorbinary-npm-2.6.0-0d1776e9aa-4ba5e89d7e.zip/node_modules/istextorbinary/", - "packageDependencies": [ - ["istextorbinary", "npm:2.6.0"], - ["binaryextensions", "npm:2.3.0"], - ["editions", "npm:2.3.1"], - ["textextensions", "npm:2.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["isurl", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/isurl-npm-1.0.0-51543986df-2c63877b4e.zip/node_modules/isurl/", - "packageDependencies": [ - ["isurl", "npm:1.0.0"], - ["has-to-string-tag-x", "npm:1.4.1"], - ["is-object", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["iterall", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/iterall-npm-1.3.0-a2cb04809f-25ae2d07cf.zip/node_modules/iterall/", - "packageDependencies": [ - ["iterall", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["jake", [ - ["npm:10.8.2", { - "packageLocation": "./.yarn/cache/jake-npm-10.8.2-e211473cb9-c60d3f491c.zip/node_modules/jake/", - "packageDependencies": [ - ["jake", "npm:10.8.2"], - ["async", "npm:0.9.2"], - ["chalk", "npm:2.4.2"], - ["filelist", "npm:1.0.1"], - ["minimatch", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["jest", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-npm-26.1.0-bd255a3889-95638b5947.zip/node_modules/jest/", - "packageDependencies": [ - ["jest", "npm:26.1.0"], - ["@jest/core", "npm:26.1.0"], - ["import-local", "npm:3.0.2"], - ["jest-cli", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-npm-26.6.3-dafe93d52f-4ffcfefa2b.zip/node_modules/jest/", - "packageDependencies": [ - ["jest", "npm:26.6.3"], - ["@jest/core", "npm:26.6.3"], - ["import-local", "npm:3.0.2"], - ["jest-cli", "npm:26.6.3"] - ], - "linkType": "HARD", - }] - ]], - ["jest-changed-files", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-changed-files-npm-26.1.0-625cf9820c-6dbf530993.zip/node_modules/jest-changed-files/", - "packageDependencies": [ - ["jest-changed-files", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["execa", "npm:4.0.3"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-changed-files-npm-26.6.2-f511617ef2-b15a1c524b.zip/node_modules/jest-changed-files/", - "packageDependencies": [ - ["jest-changed-files", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["execa", "npm:4.0.3"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-cli", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-cli-npm-26.1.0-91142dcbda-c520c0040d.zip/node_modules/jest-cli/", - "packageDependencies": [ - ["jest-cli", "npm:26.1.0"], - ["@jest/core", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.4"], - ["import-local", "npm:3.0.2"], - ["is-ci", "npm:2.0.0"], - ["jest-config", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-validate", "npm:26.1.0"], - ["prompts", "npm:2.3.2"], - ["yargs", "npm:15.4.1"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-cli-npm-26.6.3-983e1fcf7f-2d32e7e4b2.zip/node_modules/jest-cli/", - "packageDependencies": [ - ["jest-cli", "npm:26.6.3"], - ["@jest/core", "npm:26.6.3"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.4"], - ["import-local", "npm:3.0.2"], - ["is-ci", "npm:2.0.0"], - ["jest-config", "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"], - ["jest-util", "npm:26.6.2"], - ["jest-validate", "npm:26.6.2"], - ["prompts", "npm:2.3.2"], - ["yargs", "npm:15.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["jest-config", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-config-npm-26.1.0-9abf384bc4-4859acb358.zip/node_modules/jest-config/", - "packageDependencies": [ - ["jest-config", "npm:26.1.0"], - ["@babel/core", "npm:7.10.5"], - ["@jest/test-sequencer", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["babel-jest", "virtual:9abf384bc41cada52db19b9b690df683e74e43291fe7be017740370df8c21131394ddb5930427e3bd01a491f851022382666efb31eac63220e76176492722e2c#npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["deepmerge", "npm:4.2.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["jest-environment-jsdom", "npm:26.1.0"], - ["jest-environment-node", "npm:26.1.0"], - ["jest-get-type", "npm:26.0.0"], - ["jest-jasmine2", "npm:26.1.0"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-resolve", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-validate", "npm:26.1.0"], - ["micromatch", "npm:4.0.2"], - ["pretty-format", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-config-npm-26.6.3-ac5d27f4ad-974e7690ba.zip/node_modules/jest-config/", - "packageDependencies": [ - ["jest-config", "npm:26.6.3"] - ], - "linkType": "SOFT", - }], - ["virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3", { - "packageLocation": "./.yarn/$$virtual/jest-config-virtual-caddf51df4/0/cache/jest-config-npm-26.6.3-ac5d27f4ad-974e7690ba.zip/node_modules/jest-config/", - "packageDependencies": [ - ["jest-config", "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"], - ["@babel/core", "npm:7.10.5"], - ["@jest/test-sequencer", "npm:26.6.3"], - ["@jest/types", "npm:26.6.2"], - ["@types/ts-node", null], - ["babel-jest", "virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3"], - ["chalk", "npm:4.1.0"], - ["deepmerge", "npm:4.2.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["jest-environment-jsdom", "npm:26.6.2"], - ["jest-environment-node", "npm:26.6.2"], - ["jest-get-type", "npm:26.3.0"], - ["jest-jasmine2", "npm:26.6.3"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-resolve", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jest-validate", "npm:26.6.2"], - ["micromatch", "npm:4.0.2"], - ["pretty-format", "npm:26.6.2"], - ["ts-node", null] - ], - "packagePeers": [ - "@types/ts-node", - "ts-node" - ], - "linkType": "HARD", - }] - ]], - ["jest-diff", [ - ["npm:25.5.0", { - "packageLocation": "./.yarn/cache/jest-diff-npm-25.5.0-dfbc320001-14a2634ecb.zip/node_modules/jest-diff/", - "packageDependencies": [ - ["jest-diff", "npm:25.5.0"], - ["chalk", "npm:3.0.0"], - ["diff-sequences", "npm:25.2.6"], - ["jest-get-type", "npm:25.2.6"], - ["pretty-format", "npm:25.5.0"] - ], - "linkType": "HARD", - }], - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-diff-npm-26.1.0-702cb0bc74-2acfa0cde6.zip/node_modules/jest-diff/", - "packageDependencies": [ - ["jest-diff", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["diff-sequences", "npm:26.0.0"], - ["jest-get-type", "npm:26.0.0"], - ["pretty-format", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.4.2", { - "packageLocation": "./.yarn/cache/jest-diff-npm-26.4.2-f97bd236d8-c7ece95bb1.zip/node_modules/jest-diff/", - "packageDependencies": [ - ["jest-diff", "npm:26.4.2"], - ["chalk", "npm:4.1.0"], - ["diff-sequences", "npm:26.3.0"], - ["jest-get-type", "npm:26.3.0"], - ["pretty-format", "npm:26.4.2"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-diff-npm-26.6.2-06ca2a96ca-05d0f1bdba.zip/node_modules/jest-diff/", - "packageDependencies": [ - ["jest-diff", "npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["diff-sequences", "npm:26.6.2"], - ["jest-get-type", "npm:26.3.0"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-docblock", [ - ["npm:26.0.0", { - "packageLocation": "./.yarn/cache/jest-docblock-npm-26.0.0-7d0129b0be-54b8ea1c84.zip/node_modules/jest-docblock/", - "packageDependencies": [ - ["jest-docblock", "npm:26.0.0"], - ["detect-newline", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-each", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-each-npm-26.1.0-ed7b36b5b8-0f5999b22f.zip/node_modules/jest-each/", - "packageDependencies": [ - ["jest-each", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["jest-get-type", "npm:26.0.0"], - ["jest-util", "npm:26.1.0"], - ["pretty-format", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-each-npm-26.6.2-651078df67-628eaeca64.zip/node_modules/jest-each/", - "packageDependencies": [ - ["jest-each", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["jest-get-type", "npm:26.3.0"], - ["jest-util", "npm:26.6.2"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-environment-jsdom", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-environment-jsdom-npm-26.1.0-46ef47a8bd-3bafe59eaf.zip/node_modules/jest-environment-jsdom/", - "packageDependencies": [ - ["jest-environment-jsdom", "npm:26.1.0"], - ["@jest/environment", "npm:26.1.0"], - ["@jest/fake-timers", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["jest-mock", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jsdom", "virtual:46ef47a8bdd09c3f26c8c86875a3c0d0f1b857abb009bcf3f2db8a3ce62c19b7af3703fcafb363412f98fde63a3cfe630016ad0835e10a4067edade81449f6f1#npm:16.3.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-environment-jsdom-npm-26.6.2-defa486869-70af4860b7.zip/node_modules/jest-environment-jsdom/", - "packageDependencies": [ - ["jest-environment-jsdom", "npm:26.6.2"], - ["@jest/environment", "npm:26.6.2"], - ["@jest/fake-timers", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["jest-mock", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jsdom", "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-environment-node", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-environment-node-npm-26.1.0-6b8fa4a815-f2a2227c36.zip/node_modules/jest-environment-node/", - "packageDependencies": [ - ["jest-environment-node", "npm:26.1.0"], - ["@jest/environment", "npm:26.1.0"], - ["@jest/fake-timers", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["jest-mock", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-environment-node-npm-26.6.2-9030128a2f-68ea035d62.zip/node_modules/jest-environment-node/", - "packageDependencies": [ - ["jest-environment-node", "npm:26.6.2"], - ["@jest/environment", "npm:26.6.2"], - ["@jest/fake-timers", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["jest-mock", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-get-type", [ - ["npm:25.2.6", { - "packageLocation": "./.yarn/cache/jest-get-type-npm-25.2.6-7abd790493-6051fcb75c.zip/node_modules/jest-get-type/", - "packageDependencies": [ - ["jest-get-type", "npm:25.2.6"] - ], - "linkType": "HARD", - }], - ["npm:26.0.0", { - "packageLocation": "./.yarn/cache/jest-get-type-npm-26.0.0-32f433dd67-df81e05d3e.zip/node_modules/jest-get-type/", - "packageDependencies": [ - ["jest-get-type", "npm:26.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.3.0", { - "packageLocation": "./.yarn/cache/jest-get-type-npm-26.3.0-a481f14d96-fc3e2d2b90.zip/node_modules/jest-get-type/", - "packageDependencies": [ - ["jest-get-type", "npm:26.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-haste-map", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-haste-map-npm-26.1.0-f7602760cd-bbdc8e203d.zip/node_modules/jest-haste-map/", - "packageDependencies": [ - ["jest-haste-map", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["@types/graceful-fs", "npm:4.1.3"], - ["anymatch", "npm:3.1.1"], - ["fb-watchman", "npm:2.0.1"], - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"], - ["graceful-fs", "npm:4.2.4"], - ["jest-serializer", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-worker", "npm:26.1.0"], - ["micromatch", "npm:4.0.2"], - ["sane", "npm:4.1.0"], - ["walker", "npm:1.0.7"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-haste-map-npm-26.6.2-16ea967617-5c9e3a1e3f.zip/node_modules/jest-haste-map/", - "packageDependencies": [ - ["jest-haste-map", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/graceful-fs", "npm:4.1.3"], - ["@types/node", "npm:14.0.27"], - ["anymatch", "npm:3.1.1"], - ["fb-watchman", "npm:2.0.1"], - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"], - ["graceful-fs", "npm:4.2.4"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-serializer", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jest-worker", "npm:26.6.2"], - ["micromatch", "npm:4.0.2"], - ["sane", "npm:4.1.0"], - ["walker", "npm:1.0.7"] - ], - "linkType": "HARD", - }] - ]], - ["jest-jasmine2", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-jasmine2-npm-26.1.0-94172b05a9-b574b0d475.zip/node_modules/jest-jasmine2/", - "packageDependencies": [ - ["jest-jasmine2", "npm:26.1.0"], - ["@babel/traverse", "npm:7.10.5"], - ["@jest/environment", "npm:26.1.0"], - ["@jest/source-map", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["co", "npm:4.6.0"], - ["expect", "npm:26.1.0"], - ["is-generator-fn", "npm:2.1.0"], - ["jest-each", "npm:26.1.0"], - ["jest-matcher-utils", "npm:26.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-runtime", "npm:26.1.0"], - ["jest-snapshot", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["pretty-format", "npm:26.1.0"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-jasmine2-npm-26.6.3-aba0c11c28-18b15901f8.zip/node_modules/jest-jasmine2/", - "packageDependencies": [ - ["jest-jasmine2", "npm:26.6.3"], - ["@babel/traverse", "npm:7.10.5"], - ["@jest/environment", "npm:26.6.2"], - ["@jest/source-map", "npm:26.6.2"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["chalk", "npm:4.1.0"], - ["co", "npm:4.6.0"], - ["expect", "npm:26.6.2"], - ["is-generator-fn", "npm:2.1.0"], - ["jest-each", "npm:26.6.2"], - ["jest-matcher-utils", "npm:26.6.2"], - ["jest-message-util", "npm:26.6.2"], - ["jest-runtime", "npm:26.6.3"], - ["jest-snapshot", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["pretty-format", "npm:26.6.2"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-leak-detector", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-leak-detector-npm-26.1.0-608dbb4a0c-32113e73a5.zip/node_modules/jest-leak-detector/", - "packageDependencies": [ - ["jest-leak-detector", "npm:26.1.0"], - ["jest-get-type", "npm:26.0.0"], - ["pretty-format", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-leak-detector-npm-26.6.2-3b253a4eef-08c1bbb628.zip/node_modules/jest-leak-detector/", - "packageDependencies": [ - ["jest-leak-detector", "npm:26.6.2"], - ["jest-get-type", "npm:26.3.0"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-matcher-utils", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-matcher-utils-npm-26.1.0-7c81a6267e-911a73507f.zip/node_modules/jest-matcher-utils/", - "packageDependencies": [ - ["jest-matcher-utils", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["jest-diff", "npm:26.1.0"], - ["jest-get-type", "npm:26.0.0"], - ["pretty-format", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.4.2", { - "packageLocation": "./.yarn/cache/jest-matcher-utils-npm-26.4.2-fe0258e7bc-e368b46a02.zip/node_modules/jest-matcher-utils/", - "packageDependencies": [ - ["jest-matcher-utils", "npm:26.4.2"], - ["chalk", "npm:4.1.0"], - ["jest-diff", "npm:26.4.2"], - ["jest-get-type", "npm:26.3.0"], - ["pretty-format", "npm:26.4.2"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-matcher-utils-npm-26.6.2-90bcfd468b-c6db72f19e.zip/node_modules/jest-matcher-utils/", - "packageDependencies": [ - ["jest-matcher-utils", "npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["jest-diff", "npm:26.6.2"], - ["jest-get-type", "npm:26.3.0"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-message-util", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-message-util-npm-26.1.0-3d58200c40-59557a26a3.zip/node_modules/jest-message-util/", - "packageDependencies": [ - ["jest-message-util", "npm:26.1.0"], - ["@babel/code-frame", "npm:7.10.4"], - ["@jest/types", "npm:26.1.0"], - ["@types/stack-utils", "npm:1.0.1"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["micromatch", "npm:4.0.2"], - ["slash", "npm:3.0.0"], - ["stack-utils", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-message-util-npm-26.6.2-2dd6f71234-7a47773259.zip/node_modules/jest-message-util/", - "packageDependencies": [ - ["jest-message-util", "npm:26.6.2"], - ["@babel/code-frame", "npm:7.10.4"], - ["@jest/types", "npm:26.6.2"], - ["@types/stack-utils", "npm:2.0.0"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["micromatch", "npm:4.0.2"], - ["pretty-format", "npm:26.6.2"], - ["slash", "npm:3.0.0"], - ["stack-utils", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-mock", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-mock-npm-26.1.0-591dd7c852-cc1627cb72.zip/node_modules/jest-mock/", - "packageDependencies": [ - ["jest-mock", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-mock-npm-26.6.2-87f47530a8-98e658beca.zip/node_modules/jest-mock/", - "packageDependencies": [ - ["jest-mock", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"] - ], - "linkType": "HARD", - }] - ]], - ["jest-pnp-resolver", [ - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-d91c86e389.zip/node_modules/jest-pnp-resolver/", - "packageDependencies": [ - ["jest-pnp-resolver", "npm:1.2.2"] - ], - "linkType": "SOFT", - }], - ["virtual:41f6264ab5e6fa768b72f816f151389d041001a75a7fdca7daba08e9f52089bf3976db47d789a49d597094cd6a6527f12b627ce8be453728ee1420526f653d8b#npm:1.2.2", { - "packageLocation": "./.yarn/$$virtual/jest-pnp-resolver-virtual-fae24cabfa/0/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-d91c86e389.zip/node_modules/jest-pnp-resolver/", - "packageDependencies": [ - ["jest-pnp-resolver", "virtual:41f6264ab5e6fa768b72f816f151389d041001a75a7fdca7daba08e9f52089bf3976db47d789a49d597094cd6a6527f12b627ce8be453728ee1420526f653d8b#npm:1.2.2"], - ["@types/jest-resolve", null], - ["jest-resolve", "npm:26.1.0"] - ], - "packagePeers": [ - "@types/jest-resolve", - "jest-resolve" - ], - "linkType": "HARD", - }], - ["virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2", { - "packageLocation": "./.yarn/$$virtual/jest-pnp-resolver-virtual-c95d0051b1/0/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-d91c86e389.zip/node_modules/jest-pnp-resolver/", - "packageDependencies": [ - ["jest-pnp-resolver", "virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2"], - ["@types/jest-resolve", null], - ["jest-resolve", "npm:26.6.2"] - ], - "packagePeers": [ - "@types/jest-resolve", - "jest-resolve" - ], - "linkType": "HARD", - }] - ]], - ["jest-regex-util", [ - ["npm:26.0.0", { - "packageLocation": "./.yarn/cache/jest-regex-util-npm-26.0.0-310f72dd82-a3d08a852a.zip/node_modules/jest-regex-util/", - "packageDependencies": [ - ["jest-regex-util", "npm:26.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-resolve", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-resolve-npm-26.1.0-41f6264ab5-1710ca5b7d.zip/node_modules/jest-resolve/", - "packageDependencies": [ - ["jest-resolve", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jest-pnp-resolver", "virtual:41f6264ab5e6fa768b72f816f151389d041001a75a7fdca7daba08e9f52089bf3976db47d789a49d597094cd6a6527f12b627ce8be453728ee1420526f653d8b#npm:1.2.2"], - ["jest-util", "npm:26.1.0"], - ["read-pkg-up", "npm:7.0.1"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-resolve-npm-26.6.2-6ad3c87f85-61e8884462.zip/node_modules/jest-resolve/", - "packageDependencies": [ - ["jest-resolve", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jest-pnp-resolver", "virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2"], - ["jest-util", "npm:26.6.2"], - ["read-pkg-up", "npm:7.0.1"], - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-resolve-dependencies", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-resolve-dependencies-npm-26.1.0-b1e62aad59-2323ec088b.zip/node_modules/jest-resolve-dependencies/", - "packageDependencies": [ - ["jest-resolve-dependencies", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-snapshot", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-resolve-dependencies-npm-26.6.3-e36bbb2abc-72e7a200c4.zip/node_modules/jest-resolve-dependencies/", - "packageDependencies": [ - ["jest-resolve-dependencies", "npm:26.6.3"], - ["@jest/types", "npm:26.6.2"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-snapshot", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-runner", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-runner-npm-26.1.0-9593dda0a4-36e34c68ed.zip/node_modules/jest-runner/", - "packageDependencies": [ - ["jest-runner", "npm:26.1.0"], - ["@jest/console", "npm:26.1.0"], - ["@jest/environment", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.4"], - ["jest-config", "npm:26.1.0"], - ["jest-docblock", "npm:26.0.0"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-jasmine2", "npm:26.1.0"], - ["jest-leak-detector", "npm:26.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-resolve", "npm:26.1.0"], - ["jest-runtime", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-worker", "npm:26.1.0"], - ["source-map-support", "npm:0.5.19"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-runner-npm-26.6.3-4a4a361df8-7cac133ccf.zip/node_modules/jest-runner/", - "packageDependencies": [ - ["jest-runner", "npm:26.6.3"], - ["@jest/console", "npm:26.6.2"], - ["@jest/environment", "npm:26.6.2"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["chalk", "npm:4.1.0"], - ["emittery", "npm:0.7.2"], - ["exit", "npm:0.1.2"], - ["graceful-fs", "npm:4.2.4"], - ["jest-config", "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"], - ["jest-docblock", "npm:26.0.0"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-leak-detector", "npm:26.6.2"], - ["jest-message-util", "npm:26.6.2"], - ["jest-resolve", "npm:26.6.2"], - ["jest-runtime", "npm:26.6.3"], - ["jest-util", "npm:26.6.2"], - ["jest-worker", "npm:26.6.2"], - ["source-map-support", "npm:0.5.19"], - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jest-runtime", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-runtime-npm-26.1.0-9823960324-0b87c1bb5b.zip/node_modules/jest-runtime/", - "packageDependencies": [ - ["jest-runtime", "npm:26.1.0"], - ["@jest/console", "npm:26.1.0"], - ["@jest/environment", "npm:26.1.0"], - ["@jest/fake-timers", "npm:26.1.0"], - ["@jest/globals", "npm:26.1.0"], - ["@jest/source-map", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/transform", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["@types/yargs", "npm:15.0.5"], - ["chalk", "npm:4.1.0"], - ["collect-v8-coverage", "npm:1.0.1"], - ["exit", "npm:0.1.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["jest-config", "npm:26.1.0"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-mock", "npm:26.1.0"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-resolve", "npm:26.1.0"], - ["jest-snapshot", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["jest-validate", "npm:26.1.0"], - ["slash", "npm:3.0.0"], - ["strip-bom", "npm:4.0.0"], - ["yargs", "npm:15.4.1"] - ], - "linkType": "HARD", - }], - ["npm:26.6.3", { - "packageLocation": "./.yarn/cache/jest-runtime-npm-26.6.3-bf7a869586-5ef4ceaefb.zip/node_modules/jest-runtime/", - "packageDependencies": [ - ["jest-runtime", "npm:26.6.3"], - ["@jest/console", "npm:26.6.2"], - ["@jest/environment", "npm:26.6.2"], - ["@jest/fake-timers", "npm:26.6.2"], - ["@jest/globals", "npm:26.6.2"], - ["@jest/source-map", "npm:26.6.2"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/transform", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/yargs", "npm:15.0.5"], - ["chalk", "npm:4.1.0"], - ["cjs-module-lexer", "npm:0.6.0"], - ["collect-v8-coverage", "npm:1.0.1"], - ["exit", "npm:0.1.2"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["jest-config", "virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-message-util", "npm:26.6.2"], - ["jest-mock", "npm:26.6.2"], - ["jest-regex-util", "npm:26.0.0"], - ["jest-resolve", "npm:26.6.2"], - ["jest-snapshot", "npm:26.6.2"], - ["jest-util", "npm:26.6.2"], - ["jest-validate", "npm:26.6.2"], - ["slash", "npm:3.0.0"], - ["strip-bom", "npm:4.0.0"], - ["yargs", "npm:15.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["jest-serializer", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-serializer-npm-26.1.0-e2e28723e9-140f613d45.zip/node_modules/jest-serializer/", - "packageDependencies": [ - ["jest-serializer", "npm:26.1.0"], - ["graceful-fs", "npm:4.2.4"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-serializer-npm-26.6.2-0907990487-62802ac809.zip/node_modules/jest-serializer/", - "packageDependencies": [ - ["jest-serializer", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["graceful-fs", "npm:4.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["jest-snapshot", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-snapshot-npm-26.1.0-4ac73b23ef-627d67488e.zip/node_modules/jest-snapshot/", - "packageDependencies": [ - ["jest-snapshot", "npm:26.1.0"], - ["@babel/types", "npm:7.10.5"], - ["@jest/types", "npm:26.1.0"], - ["@types/prettier", "npm:2.0.2"], - ["chalk", "npm:4.1.0"], - ["expect", "npm:26.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["jest-diff", "npm:26.1.0"], - ["jest-get-type", "npm:26.0.0"], - ["jest-haste-map", "npm:26.1.0"], - ["jest-matcher-utils", "npm:26.1.0"], - ["jest-message-util", "npm:26.1.0"], - ["jest-resolve", "npm:26.1.0"], - ["natural-compare", "npm:1.4.0"], - ["pretty-format", "npm:26.1.0"], - ["semver", "npm:7.3.2"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-snapshot-npm-26.6.2-b91f41a0f2-9cf50bd7b7.zip/node_modules/jest-snapshot/", - "packageDependencies": [ - ["jest-snapshot", "npm:26.6.2"], - ["@babel/types", "npm:7.10.5"], - ["@jest/types", "npm:26.6.2"], - ["@types/babel__traverse", "npm:7.11.0"], - ["@types/prettier", "npm:2.0.2"], - ["chalk", "npm:4.1.0"], - ["expect", "npm:26.6.2"], - ["graceful-fs", "npm:4.2.4"], - ["jest-diff", "npm:26.6.2"], - ["jest-get-type", "npm:26.3.0"], - ["jest-haste-map", "npm:26.6.2"], - ["jest-matcher-utils", "npm:26.6.2"], - ["jest-message-util", "npm:26.6.2"], - ["jest-resolve", "npm:26.6.2"], - ["natural-compare", "npm:1.4.0"], - ["pretty-format", "npm:26.6.2"], - ["semver", "npm:7.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-util", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-util-npm-26.1.0-bba9a3cb6b-5420145596.zip/node_modules/jest-util/", - "packageDependencies": [ - ["jest-util", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["is-ci", "npm:2.0.0"], - ["micromatch", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-util-npm-26.6.2-28a10c2acf-1aef748c82.zip/node_modules/jest-util/", - "packageDependencies": [ - ["jest-util", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["chalk", "npm:4.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["is-ci", "npm:2.0.0"], - ["micromatch", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-validate", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-validate-npm-26.1.0-e91b21e0b8-09ab0be90d.zip/node_modules/jest-validate/", - "packageDependencies": [ - ["jest-validate", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["camelcase", "npm:6.0.0"], - ["chalk", "npm:4.1.0"], - ["jest-get-type", "npm:26.0.0"], - ["leven", "npm:3.1.0"], - ["pretty-format", "npm:26.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-validate-npm-26.6.2-26ab48a006-b19fd33b86.zip/node_modules/jest-validate/", - "packageDependencies": [ - ["jest-validate", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["camelcase", "npm:6.0.0"], - ["chalk", "npm:4.1.0"], - ["jest-get-type", "npm:26.3.0"], - ["leven", "npm:3.1.0"], - ["pretty-format", "npm:26.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["jest-watcher", [ - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-watcher-npm-26.1.0-6d14033086-1c0c9d8ab3.zip/node_modules/jest-watcher/", - "packageDependencies": [ - ["jest-watcher", "npm:26.1.0"], - ["@jest/test-result", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["ansi-escapes", "npm:4.3.1"], - ["chalk", "npm:4.1.0"], - ["jest-util", "npm:26.1.0"], - ["string-length", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-watcher-npm-26.6.2-d4afa66ea5-d4a13c17c7.zip/node_modules/jest-watcher/", - "packageDependencies": [ - ["jest-watcher", "npm:26.6.2"], - ["@jest/test-result", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["ansi-escapes", "npm:4.3.1"], - ["chalk", "npm:4.1.0"], - ["jest-util", "npm:26.6.2"], - ["string-length", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["jest-worker", [ - ["npm:24.9.0", { - "packageLocation": "./.yarn/cache/jest-worker-npm-24.9.0-bcd452e3a8-9740355081.zip/node_modules/jest-worker/", - "packageDependencies": [ - ["jest-worker", "npm:24.9.0"], - ["merge-stream", "npm:2.0.0"], - ["supports-color", "npm:6.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/jest-worker-npm-26.1.0-3b0c4356ef-ef0145e09e.zip/node_modules/jest-worker/", - "packageDependencies": [ - ["jest-worker", "npm:26.1.0"], - ["merge-stream", "npm:2.0.0"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/jest-worker-npm-26.6.2-46cbcd449f-5eb349833b.zip/node_modules/jest-worker/", - "packageDependencies": [ - ["jest-worker", "npm:26.6.2"], - ["@types/node", "npm:14.0.27"], - ["merge-stream", "npm:2.0.0"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["joycon", [ - ["npm:2.2.5", { - "packageLocation": "./.yarn/cache/joycon-npm-2.2.5-fff23ab519-7908f551e0.zip/node_modules/joycon/", - "packageDependencies": [ - ["joycon", "npm:2.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["js-cookie", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/js-cookie-npm-2.2.1-e879cd2148-c110f78427.zip/node_modules/js-cookie/", - "packageDependencies": [ - ["js-cookie", "npm:2.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["js-tokens", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/js-tokens-npm-3.0.2-fe6fb334bd-81e634d5a9.zip/node_modules/js-tokens/", - "packageDependencies": [ - ["js-tokens", "npm:3.0.2"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-1fc4e4667a.zip/node_modules/js-tokens/", - "packageDependencies": [ - ["js-tokens", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["js-yaml", [ - ["npm:3.14.0", { - "packageLocation": "./.yarn/cache/js-yaml-npm-3.14.0-7ecf74b3d2-2eb95464e5.zip/node_modules/js-yaml/", - "packageDependencies": [ - ["js-yaml", "npm:3.14.0"], - ["argparse", "npm:1.0.10"], - ["esprima", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/js-yaml-npm-4.0.0-3ac8e950bb-ee9b16cdbb.zip/node_modules/js-yaml/", - "packageDependencies": [ - ["js-yaml", "npm:4.0.0"], - ["argparse", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["jsbn", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/jsbn-npm-0.1.1-0eb7132404-b530d48a64.zip/node_modules/jsbn/", - "packageDependencies": [ - ["jsbn", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["jsdom", [ - ["npm:16.3.0", { - "packageLocation": "./.yarn/cache/jsdom-npm-16.3.0-55bd8b11f1-8136e06866.zip/node_modules/jsdom/", - "packageDependencies": [ - ["jsdom", "npm:16.3.0"] - ], - "linkType": "SOFT", - }], - ["npm:16.5.0", { - "packageLocation": "./.yarn/cache/jsdom-npm-16.5.0-4759c6adec-651e1f01ea.zip/node_modules/jsdom/", - "packageDependencies": [ - ["jsdom", "npm:16.5.0"] - ], - "linkType": "SOFT", - }], - ["virtual:46ef47a8bdd09c3f26c8c86875a3c0d0f1b857abb009bcf3f2db8a3ce62c19b7af3703fcafb363412f98fde63a3cfe630016ad0835e10a4067edade81449f6f1#npm:16.3.0", { - "packageLocation": "./.yarn/$$virtual/jsdom-virtual-011ff9495d/0/cache/jsdom-npm-16.3.0-55bd8b11f1-8136e06866.zip/node_modules/jsdom/", - "packageDependencies": [ - ["jsdom", "virtual:46ef47a8bdd09c3f26c8c86875a3c0d0f1b857abb009bcf3f2db8a3ce62c19b7af3703fcafb363412f98fde63a3cfe630016ad0835e10a4067edade81449f6f1#npm:16.3.0"], - ["@types/canvas", null], - ["abab", "npm:2.0.3"], - ["acorn", "npm:7.3.1"], - ["acorn-globals", "npm:6.0.0"], - ["canvas", null], - ["cssom", "npm:0.4.4"], - ["cssstyle", "npm:2.3.0"], - ["data-urls", "npm:2.0.0"], - ["decimal.js", "npm:10.2.0"], - ["domexception", "npm:2.0.1"], - ["escodegen", "npm:1.14.3"], - ["html-encoding-sniffer", "npm:2.0.1"], - ["is-potential-custom-element-name", "npm:1.0.0"], - ["nwsapi", "npm:2.2.0"], - ["parse5", "npm:5.1.1"], - ["request", "npm:2.88.2"], - ["request-promise-native", "virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9"], - ["saxes", "npm:5.0.1"], - ["symbol-tree", "npm:3.2.4"], - ["tough-cookie", "npm:3.0.1"], - ["w3c-hr-time", "npm:1.0.2"], - ["w3c-xmlserializer", "npm:2.0.0"], - ["webidl-conversions", "npm:6.1.0"], - ["whatwg-encoding", "npm:1.0.5"], - ["whatwg-mimetype", "npm:2.3.0"], - ["whatwg-url", "npm:8.1.0"], - ["ws", "virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1"], - ["xml-name-validator", "npm:3.0.0"] - ], - "packagePeers": [ - "@types/canvas", - "canvas" - ], - "linkType": "HARD", - }], - ["virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.0", { - "packageLocation": "./.yarn/$$virtual/jsdom-virtual-6a57145ae3/0/cache/jsdom-npm-16.5.0-4759c6adec-651e1f01ea.zip/node_modules/jsdom/", - "packageDependencies": [ - ["jsdom", "virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.0"], - ["@types/canvas", null], - ["abab", "npm:2.0.5"], - ["acorn", "npm:8.1.0"], - ["acorn-globals", "npm:6.0.0"], - ["canvas", null], - ["cssom", "npm:0.4.4"], - ["cssstyle", "npm:2.3.0"], - ["data-urls", "npm:2.0.0"], - ["decimal.js", "npm:10.2.1"], - ["domexception", "npm:2.0.1"], - ["escodegen", "npm:2.0.0"], - ["html-encoding-sniffer", "npm:2.0.1"], - ["is-potential-custom-element-name", "npm:1.0.0"], - ["nwsapi", "npm:2.2.0"], - ["parse5", "npm:6.0.1"], - ["request", "npm:2.88.2"], - ["request-promise-native", "virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9"], - ["saxes", "npm:5.0.1"], - ["symbol-tree", "npm:3.2.4"], - ["tough-cookie", "npm:4.0.0"], - ["w3c-hr-time", "npm:1.0.2"], - ["w3c-xmlserializer", "npm:2.0.0"], - ["webidl-conversions", "npm:6.1.0"], - ["whatwg-encoding", "npm:1.0.5"], - ["whatwg-mimetype", "npm:2.3.0"], - ["whatwg-url", "npm:8.1.0"], - ["ws", "virtual:6a57145ae363bb2f8a80076838317f779b911b58a6fdc784436689f4fc9a322b39f6f7e8a3aef742ffc5f8f7155890a4bb43ad7ac6c86073071726501001d707#npm:7.4.4"], - ["xml-name-validator", "npm:3.0.0"] - ], - "packagePeers": [ - "@types/canvas", - "canvas" - ], - "linkType": "HARD", - }] - ]], - ["jsesc", [ - ["npm:0.5.0", { - "packageLocation": "./.yarn/cache/jsesc-npm-0.5.0-6827074492-1e4574920d.zip/node_modules/jsesc/", - "packageDependencies": [ - ["jsesc", "npm:0.5.0"] - ], - "linkType": "HARD", - }], - ["npm:2.5.2", { - "packageLocation": "./.yarn/cache/jsesc-npm-2.5.2-c5acb78804-ca91ec33d7.zip/node_modules/jsesc/", - "packageDependencies": [ - ["jsesc", "npm:2.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["json-buffer", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/json-buffer-npm-3.0.0-21c267a314-09b53ecc8f.zip/node_modules/json-buffer/", - "packageDependencies": [ - ["json-buffer", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-78011309cb.zip/node_modules/json-buffer/", - "packageDependencies": [ - ["json-buffer", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["json-file-plus", [ - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/json-file-plus-npm-3.3.1-7166c0c0e0-91d5ea4871.zip/node_modules/json-file-plus/", - "packageDependencies": [ - ["json-file-plus", "npm:3.3.1"], - ["is", "npm:3.3.0"], - ["node.extend", "npm:2.0.2"], - ["object.assign", "npm:4.1.0"], - ["promiseback", "npm:2.0.3"], - ["safer-buffer", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["json-parse-better-errors", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-b4c4f0e43b.zip/node_modules/json-parse-better-errors/", - "packageDependencies": [ - ["json-parse-better-errors", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["json-schema", [ - ["npm:0.2.3", { - "packageLocation": "./.yarn/cache/json-schema-npm-0.2.3-018ee3dfc9-d382ea841f.zip/node_modules/json-schema/", - "packageDependencies": [ - ["json-schema", "npm:0.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["json-schema-traverse", [ - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-6f71bddba3.zip/node_modules/json-schema-traverse/", - "packageDependencies": [ - ["json-schema-traverse", "npm:0.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["json-stable-stringify-without-jsonify", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-a01b6c6541.zip/node_modules/json-stable-stringify-without-jsonify/", - "packageDependencies": [ - ["json-stable-stringify-without-jsonify", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["json-stringify-safe", [ - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-261dfb8eb3.zip/node_modules/json-stringify-safe/", - "packageDependencies": [ - ["json-stringify-safe", "npm:5.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["json5", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/json5-npm-1.0.1-647fc8794b-df41624f9f.zip/node_modules/json5/", - "packageDependencies": [ - ["json5", "npm:1.0.1"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }], - ["npm:2.1.3", { - "packageLocation": "./.yarn/cache/json5-npm-2.1.3-b71ec6bcca-957e493710.zip/node_modules/json5/", - "packageDependencies": [ - ["json5", "npm:2.1.3"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["jsonfile", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-a40b7b64da.zip/node_modules/jsonfile/", - "packageDependencies": [ - ["jsonfile", "npm:4.0.0"], - ["graceful-fs", "npm:4.2.4"] - ], - "linkType": "HARD", - }], - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/jsonfile-npm-6.0.1-989c3a9870-ebd6932424.zip/node_modules/jsonfile/", - "packageDependencies": [ - ["jsonfile", "npm:6.0.1"], - ["graceful-fs", "npm:4.2.4"], - ["universalify", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["jsonparse", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/jsonparse-npm-1.3.1-b6fde74828-6669acd7b3.zip/node_modules/jsonparse/", - "packageDependencies": [ - ["jsonparse", "npm:1.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["jsonpointer", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/jsonpointer-npm-4.1.0-212fb6b677-90724d8a84.zip/node_modules/jsonpointer/", - "packageDependencies": [ - ["jsonpointer", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["jsonwebtoken", [ - ["npm:8.5.1", { - "packageLocation": "./.yarn/cache/jsonwebtoken-npm-8.5.1-c007670b76-ea44bbb7a7.zip/node_modules/jsonwebtoken/", - "packageDependencies": [ - ["jsonwebtoken", "npm:8.5.1"], - ["jws", "npm:3.2.2"], - ["lodash.includes", "npm:4.3.0"], - ["lodash.isboolean", "npm:3.0.3"], - ["lodash.isinteger", "npm:4.0.4"], - ["lodash.isnumber", "npm:3.0.3"], - ["lodash.isplainobject", "npm:4.0.6"], - ["lodash.isstring", "npm:4.0.1"], - ["lodash.once", "npm:4.1.1"], - ["ms", "npm:2.1.2"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["jsprim", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/jsprim-npm-1.4.1-948d2c9ec3-ee0177b7ef.zip/node_modules/jsprim/", - "packageDependencies": [ - ["jsprim", "npm:1.4.1"], - ["assert-plus", "npm:1.0.0"], - ["extsprintf", "npm:1.3.0"], - ["json-schema", "npm:0.2.3"], - ["verror", "npm:1.10.0"] - ], - "linkType": "HARD", - }] - ]], - ["jwa", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/jwa-npm-1.4.1-4f19d6572c-e3a6234a3a.zip/node_modules/jwa/", - "packageDependencies": [ - ["jwa", "npm:1.4.1"], - ["buffer-equal-constant-time", "npm:1.0.1"], - ["ecdsa-sig-formatter", "npm:1.0.11"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["jwks-rsa", [ - ["npm:1.8.1", { - "packageLocation": "./.yarn/cache/jwks-rsa-npm-1.8.1-8bf81468b9-eaa4a2d73c.zip/node_modules/jwks-rsa/", - "packageDependencies": [ - ["jwks-rsa", "npm:1.8.1"], - ["@types/express-jwt", "npm:0.0.42"], - ["axios", "npm:0.19.2"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["jsonwebtoken", "npm:8.5.1"], - ["limiter", "npm:1.1.5"], - ["lru-memoizer", "npm:2.1.2"], - ["ms", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["jws", [ - ["npm:3.2.2", { - "packageLocation": "./.yarn/cache/jws-npm-3.2.2-c1ae59c7af-3990b26ebb.zip/node_modules/jws/", - "packageDependencies": [ - ["jws", "npm:3.2.2"], - ["jwa", "npm:1.4.1"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["keyv", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/keyv-npm-3.0.0-31c4735a55-b3e5f5eee0.zip/node_modules/keyv/", - "packageDependencies": [ - ["keyv", "npm:3.0.0"], - ["json-buffer", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/keyv-npm-4.0.1-04a825d708-f4e65024a7.zip/node_modules/keyv/", - "packageDependencies": [ - ["keyv", "npm:4.0.1"], - ["json-buffer", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["kind-of", [ - ["npm:3.2.2", { - "packageLocation": "./.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-e8a1835c4b.zip/node_modules/kind-of/", - "packageDependencies": [ - ["kind-of", "npm:3.2.2"], - ["is-buffer", "npm:1.1.6"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/kind-of-npm-4.0.0-69fd153375-2e7296c614.zip/node_modules/kind-of/", - "packageDependencies": [ - ["kind-of", "npm:4.0.0"], - ["is-buffer", "npm:1.1.6"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/kind-of-npm-5.1.0-ce82f43eaa-c98cfe70c8.zip/node_modules/kind-of/", - "packageDependencies": [ - ["kind-of", "npm:5.1.0"] - ], - "linkType": "HARD", - }], - ["npm:6.0.3", { - "packageLocation": "./.yarn/cache/kind-of-npm-6.0.3-ab15f36220-5de5d65777.zip/node_modules/kind-of/", - "packageDependencies": [ - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["kleur", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/kleur-npm-3.0.3-f6f53649a4-20ef0e37fb.zip/node_modules/kleur/", - "packageDependencies": [ - ["kleur", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["klona", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/klona-npm-2.0.4-6bc4e7cd86-be4a0c7841.zip/node_modules/klona/", - "packageDependencies": [ - ["klona", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["ky", [ - ["npm:0.12.0", { - "packageLocation": "./.yarn/cache/ky-npm-0.12.0-19269162de-a4c8d87002.zip/node_modules/ky/", - "packageDependencies": [ - ["ky", "npm:0.12.0"] - ], - "linkType": "HARD", - }] - ]], - ["ky-universal", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/ky-universal-npm-0.3.0-2f0c42ccef-a84a89db2a.zip/node_modules/ky-universal/", - "packageDependencies": [ - ["ky-universal", "npm:0.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:add588f84a4ecd8f02492550bb63eb7e87b18983b79581d31fb353368187e30c57f0ccfe7f55e1893cd041e7c7b18ba4ded0ed1efb652afa5c6c1663d676d61b#npm:0.3.0", { - "packageLocation": "./.yarn/$$virtual/ky-universal-virtual-62e84b48db/0/cache/ky-universal-npm-0.3.0-2f0c42ccef-a84a89db2a.zip/node_modules/ky-universal/", - "packageDependencies": [ - ["ky-universal", "virtual:add588f84a4ecd8f02492550bb63eb7e87b18983b79581d31fb353368187e30c57f0ccfe7f55e1893cd041e7c7b18ba4ded0ed1efb652afa5c6c1663d676d61b#npm:0.3.0"], - ["@types/ky", null], - ["abort-controller", "npm:3.0.0"], - ["ky", "npm:0.12.0"], - ["node-fetch", "npm:2.6.0"] - ], - "packagePeers": [ - "@types/ky", - "ky" - ], - "linkType": "HARD", - }] - ]], - ["latest-version", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/latest-version-npm-3.1.0-deb049c563-117b4a315a.zip/node_modules/latest-version/", - "packageDependencies": [ - ["latest-version", "npm:3.1.0"], - ["package-json", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/latest-version-npm-5.1.0-ddb9b0eb39-63c1f22435.zip/node_modules/latest-version/", - "packageDependencies": [ - ["latest-version", "npm:5.1.0"], - ["package-json", "npm:6.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["lazy-cache", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/lazy-cache-npm-2.0.2-6f6bc0b22b-27bc7d08d4.zip/node_modules/lazy-cache/", - "packageDependencies": [ - ["lazy-cache", "npm:2.0.2"], - ["set-getter", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["leven", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/leven-npm-3.1.0-b7697736a3-6ebca75298.zip/node_modules/leven/", - "packageDependencies": [ - ["leven", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["levenary", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/levenary-npm-1.1.1-10ba3797a5-6d3b78e395.zip/node_modules/levenary/", - "packageDependencies": [ - ["levenary", "npm:1.1.1"], - ["leven", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["levn", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/levn-npm-0.3.0-48d774b1c2-775861da38.zip/node_modules/levn/", - "packageDependencies": [ - ["levn", "npm:0.3.0"], - ["prelude-ls", "npm:1.1.2"], - ["type-check", "npm:0.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["li", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/li-npm-1.3.0-52325ed9c4-f4737d4deb.zip/node_modules/li/", - "packageDependencies": [ - ["li", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["limiter", [ - ["npm:1.1.5", { - "packageLocation": "./.yarn/cache/limiter-npm-1.1.5-aa11b1b2de-83f7aa20fe.zip/node_modules/limiter/", - "packageDependencies": [ - ["limiter", "npm:1.1.5"] - ], - "linkType": "HARD", - }] - ]], - ["line-column", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/line-column-npm-1.0.2-bdeb1193f9-e6fa785b0c.zip/node_modules/line-column/", - "packageDependencies": [ - ["line-column", "npm:1.0.2"], - ["isarray", "npm:1.0.0"], - ["isobject", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["lines-and-columns", [ - ["npm:1.1.6", { - "packageLocation": "./.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-798b80ed7a.zip/node_modules/lines-and-columns/", - "packageDependencies": [ - ["lines-and-columns", "npm:1.1.6"] - ], - "linkType": "HARD", - }] - ]], - ["linkify-it", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/linkify-it-npm-2.2.0-3eb4775d11-7905b34078.zip/node_modules/linkify-it/", - "packageDependencies": [ - ["linkify-it", "npm:2.2.0"], - ["uc.micro", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["listr", [ - ["npm:0.14.3", { - "packageLocation": "./.yarn/cache/listr-npm-0.14.3-f9030beb58-97a194b6ad.zip/node_modules/listr/", - "packageDependencies": [ - ["listr", "npm:0.14.3"], - ["@samverschueren/stream-to-observable", "virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.3.0"], - ["is-observable", "npm:1.1.0"], - ["is-promise", "npm:2.2.2"], - ["is-stream", "npm:1.1.0"], - ["listr-silent-renderer", "npm:1.1.1"], - ["listr-update-renderer", "virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.5.0"], - ["listr-verbose-renderer", "npm:0.5.0"], - ["p-map", "npm:2.1.0"], - ["rxjs", "npm:6.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["listr-silent-renderer", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/listr-silent-renderer-npm-1.1.1-01f9e73935-ea91806bd0.zip/node_modules/listr-silent-renderer/", - "packageDependencies": [ - ["listr-silent-renderer", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["listr-update-renderer", [ - ["npm:0.5.0", { - "packageLocation": "./.yarn/cache/listr-update-renderer-npm-0.5.0-3e539fc2df-0219b8752f.zip/node_modules/listr-update-renderer/", - "packageDependencies": [ - ["listr-update-renderer", "npm:0.5.0"] - ], - "linkType": "SOFT", - }], - ["virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.5.0", { - "packageLocation": "./.yarn/$$virtual/listr-update-renderer-virtual-28f8a2d38d/0/cache/listr-update-renderer-npm-0.5.0-3e539fc2df-0219b8752f.zip/node_modules/listr-update-renderer/", - "packageDependencies": [ - ["listr-update-renderer", "virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.5.0"], - ["@types/listr", null], - ["chalk", "npm:1.1.3"], - ["cli-truncate", "npm:0.2.1"], - ["elegant-spinner", "npm:1.0.1"], - ["figures", "npm:1.7.0"], - ["indent-string", "npm:3.2.0"], - ["listr", "npm:0.14.3"], - ["log-symbols", "npm:1.0.2"], - ["log-update", "npm:2.3.0"], - ["strip-ansi", "npm:3.0.1"] - ], - "packagePeers": [ - "@types/listr", - "listr" - ], - "linkType": "HARD", - }] - ]], - ["listr-verbose-renderer", [ - ["npm:0.5.0", { - "packageLocation": "./.yarn/cache/listr-verbose-renderer-npm-0.5.0-e15abcfcc9-83aec28ed1.zip/node_modules/listr-verbose-renderer/", - "packageDependencies": [ - ["listr-verbose-renderer", "npm:0.5.0"], - ["chalk", "npm:2.4.2"], - ["cli-cursor", "npm:2.1.0"], - ["date-fns", "npm:1.30.1"], - ["figures", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["load-json-file", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/load-json-file-npm-1.1.0-455d5470c2-3966dbc0c4.zip/node_modules/load-json-file/", - "packageDependencies": [ - ["load-json-file", "npm:1.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["parse-json", "npm:2.2.0"], - ["pify", "npm:2.3.0"], - ["pinkie-promise", "npm:2.0.1"], - ["strip-bom", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-692f33387b.zip/node_modules/load-json-file/", - "packageDependencies": [ - ["load-json-file", "npm:4.0.0"], - ["graceful-fs", "npm:4.2.4"], - ["parse-json", "npm:4.0.0"], - ["pify", "npm:3.0.0"], - ["strip-bom", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["loader-runner", [ - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/loader-runner-npm-2.4.0-c414104c2f-9173b602e8.zip/node_modules/loader-runner/", - "packageDependencies": [ - ["loader-runner", "npm:2.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["loader-utils", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/loader-utils-npm-1.2.3-d5bb1b4e08-61b44f2d30.zip/node_modules/loader-utils/", - "packageDependencies": [ - ["loader-utils", "npm:1.2.3"], - ["big.js", "npm:5.2.2"], - ["emojis-list", "npm:2.1.0"], - ["json5", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/loader-utils-npm-2.0.0-cf7d5aadbf-a1c2e48781.zip/node_modules/loader-utils/", - "packageDependencies": [ - ["loader-utils", "npm:2.0.0"], - ["big.js", "npm:5.2.2"], - ["emojis-list", "npm:3.0.0"], - ["json5", "npm:2.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["locate-path", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/locate-path-npm-2.0.0-673d28b0ea-ee5a888d68.zip/node_modules/locate-path/", - "packageDependencies": [ - ["locate-path", "npm:2.0.0"], - ["p-locate", "npm:2.0.0"], - ["path-exists", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/locate-path-npm-3.0.0-991671ae9f-0b6bf0c1bb.zip/node_modules/locate-path/", - "packageDependencies": [ - ["locate-path", "npm:3.0.0"], - ["p-locate", "npm:3.0.0"], - ["path-exists", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/locate-path-npm-5.0.0-46580c43e4-c58f49d45c.zip/node_modules/locate-path/", - "packageDependencies": [ - ["locate-path", "npm:5.0.0"], - ["p-locate", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["locutus", [ - ["npm:2.0.11", { - "packageLocation": "./.yarn/cache/locutus-npm-2.0.11-6e5823f3ea-a52d885011.zip/node_modules/locutus/", - "packageDependencies": [ - ["locutus", "npm:2.0.11"], - ["es6-promise", "npm:4.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["lodash", [ - ["npm:4.17.19", { - "packageLocation": "./.yarn/cache/lodash-npm-4.17.19-fa87a8e838-ff2b7a95f0.zip/node_modules/lodash/", - "packageDependencies": [ - ["lodash", "npm:4.17.19"] - ], - "linkType": "HARD", - }], - ["npm:4.17.20", { - "packageLocation": "./.yarn/cache/lodash-npm-4.17.20-c0db62021c-c62101d250.zip/node_modules/lodash/", - "packageDependencies": [ - ["lodash", "npm:4.17.20"] - ], - "linkType": "HARD", - }], - ["npm:4.17.21", { - "packageLocation": "./.yarn/cache/lodash-npm-4.17.21-6382451519-4983720b9a.zip/node_modules/lodash/", - "packageDependencies": [ - ["lodash", "npm:4.17.21"] - ], - "linkType": "HARD", - }] - ]], - ["lodash-es", [ - ["npm:4.17.15", { - "packageLocation": "./.yarn/cache/lodash-es-npm-4.17.15-ad31f98cc6-ee2871b76d.zip/node_modules/lodash-es/", - "packageDependencies": [ - ["lodash-es", "npm:4.17.15"] - ], - "linkType": "HARD", - }], - ["npm:4.17.21", { - "packageLocation": "./.yarn/cache/lodash-es-npm-4.17.21-b45832dfce-ff0e7bb959.zip/node_modules/lodash-es/", - "packageDependencies": [ - ["lodash-es", "npm:4.17.21"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.camelcase", [ - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-3cb674ed3b.zip/node_modules/lodash.camelcase/", - "packageDependencies": [ - ["lodash.camelcase", "npm:4.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.clonedeep", [ - ["npm:4.5.0", { - "packageLocation": "./.yarn/cache/lodash.clonedeep-npm-4.5.0-fbc3cda4e5-41e2fe4c57.zip/node_modules/lodash.clonedeep/", - "packageDependencies": [ - ["lodash.clonedeep", "npm:4.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.debounce", [ - ["npm:4.0.8", { - "packageLocation": "./.yarn/cache/lodash.debounce-npm-4.0.8-f1d6e09799-b6042bd8c0.zip/node_modules/lodash.debounce/", - "packageDependencies": [ - ["lodash.debounce", "npm:4.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.find", [ - ["npm:4.6.0", { - "packageLocation": "./.yarn/cache/lodash.find-npm-4.6.0-dd2db8c53f-a6188ffe8d.zip/node_modules/lodash.find/", - "packageDependencies": [ - ["lodash.find", "npm:4.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.get", [ - ["npm:4.4.2", { - "packageLocation": "./.yarn/cache/lodash.get-npm-4.4.2-7bda64ed87-447e575e3c.zip/node_modules/lodash.get/", - "packageDependencies": [ - ["lodash.get", "npm:4.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.has", [ - ["npm:4.5.2", { - "packageLocation": "./.yarn/cache/lodash.has-npm-4.5.2-0a10673e08-ed2cbed6f3.zip/node_modules/lodash.has/", - "packageDependencies": [ - ["lodash.has", "npm:4.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.includes", [ - ["npm:4.3.0", { - "packageLocation": "./.yarn/cache/lodash.includes-npm-4.3.0-3a2f6fa22c-20d6b1bf78.zip/node_modules/lodash.includes/", - "packageDependencies": [ - ["lodash.includes", "npm:4.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.isboolean", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/lodash.isboolean-npm-3.0.3-b575b41488-e5b7a921f4.zip/node_modules/lodash.isboolean/", - "packageDependencies": [ - ["lodash.isboolean", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.isinteger", [ - ["npm:4.0.4", { - "packageLocation": "./.yarn/cache/lodash.isinteger-npm-4.0.4-42add9f4e1-a29551cc9a.zip/node_modules/lodash.isinteger/", - "packageDependencies": [ - ["lodash.isinteger", "npm:4.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.isnumber", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/lodash.isnumber-npm-3.0.3-b3bb5f7347-a33b10bf57.zip/node_modules/lodash.isnumber/", - "packageDependencies": [ - ["lodash.isnumber", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.isobject", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/lodash.isobject-npm-3.0.2-ec19461220-650d6689f3.zip/node_modules/lodash.isobject/", - "packageDependencies": [ - ["lodash.isobject", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.isplainobject", [ - ["npm:4.0.6", { - "packageLocation": "./.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-72a114b610.zip/node_modules/lodash.isplainobject/", - "packageDependencies": [ - ["lodash.isplainobject", "npm:4.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.isstring", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/lodash.isstring-npm-4.0.1-721fee791c-20c46960b7.zip/node_modules/lodash.isstring/", - "packageDependencies": [ - ["lodash.isstring", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.kebabcase", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/lodash.kebabcase-npm-4.1.1-89ffca7e1f-cee7b365bf.zip/node_modules/lodash.kebabcase/", - "packageDependencies": [ - ["lodash.kebabcase", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.keys", [ - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/lodash.keys-npm-4.2.0-0fc9ed9da3-d6cedf4942.zip/node_modules/lodash.keys/", - "packageDependencies": [ - ["lodash.keys", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.mapvalues", [ - ["npm:4.6.0", { - "packageLocation": "./.yarn/cache/lodash.mapvalues-npm-4.6.0-4664380119-84399826cc.zip/node_modules/lodash.mapvalues/", - "packageDependencies": [ - ["lodash.mapvalues", "npm:4.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.memoize", [ - ["npm:4.1.2", { - "packageLocation": "./.yarn/cache/lodash.memoize-npm-4.1.2-0e6250041f-080c1095b7.zip/node_modules/lodash.memoize/", - "packageDependencies": [ - ["lodash.memoize", "npm:4.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.merge", [ - ["npm:4.6.2", { - "packageLocation": "./.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-4e2bb42a87.zip/node_modules/lodash.merge/", - "packageDependencies": [ - ["lodash.merge", "npm:4.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.once", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/lodash.once-npm-4.1.1-d8ba329ead-236e00ca5f.zip/node_modules/lodash.once/", - "packageDependencies": [ - ["lodash.once", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.pad", [ - ["npm:4.5.1", { - "packageLocation": "./.yarn/cache/lodash.pad-npm-4.5.1-814297ce35-0e2251711f.zip/node_modules/lodash.pad/", - "packageDependencies": [ - ["lodash.pad", "npm:4.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.padend", [ - ["npm:4.6.1", { - "packageLocation": "./.yarn/cache/lodash.padend-npm-4.6.1-6a28392d72-95e8a9cfdf.zip/node_modules/lodash.padend/", - "packageDependencies": [ - ["lodash.padend", "npm:4.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.padstart", [ - ["npm:4.6.1", { - "packageLocation": "./.yarn/cache/lodash.padstart-npm-4.6.1-c905d3b705-c1fffb1c84.zip/node_modules/lodash.padstart/", - "packageDependencies": [ - ["lodash.padstart", "npm:4.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.set", [ - ["npm:4.3.2", { - "packageLocation": "./.yarn/cache/lodash.set-npm-4.3.2-7586c942c2-4dfedacae1.zip/node_modules/lodash.set/", - "packageDependencies": [ - ["lodash.set", "npm:4.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.snakecase", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/lodash.snakecase-npm-4.1.1-b12cdbecb4-3b3d145759.zip/node_modules/lodash.snakecase/", - "packageDependencies": [ - ["lodash.snakecase", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.sortby", [ - ["npm:4.7.0", { - "packageLocation": "./.yarn/cache/lodash.sortby-npm-4.7.0-fda8ab950d-43cde11276.zip/node_modules/lodash.sortby/", - "packageDependencies": [ - ["lodash.sortby", "npm:4.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.toarray", [ - ["npm:4.4.0", { - "packageLocation": "./.yarn/cache/lodash.toarray-npm-4.4.0-e7e700a242-f2b8de1812.zip/node_modules/lodash.toarray/", - "packageDependencies": [ - ["lodash.toarray", "npm:4.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.uniq", [ - ["npm:4.5.0", { - "packageLocation": "./.yarn/cache/lodash.uniq-npm-4.5.0-7c270dca85-47cb25b59b.zip/node_modules/lodash.uniq/", - "packageDependencies": [ - ["lodash.uniq", "npm:4.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["lodash.upperfirst", [ - ["npm:4.3.1", { - "packageLocation": "./.yarn/cache/lodash.upperfirst-npm-4.3.1-e3b7c364ba-2d9fc60a1f.zip/node_modules/lodash.upperfirst/", - "packageDependencies": [ - ["lodash.upperfirst", "npm:4.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["log-symbols", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/log-symbols-npm-1.0.2-2224ede6fd-69ba19d52b.zip/node_modules/log-symbols/", - "packageDependencies": [ - ["log-symbols", "npm:1.0.2"], - ["chalk", "npm:1.1.3"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/log-symbols-npm-2.2.0-9541ad4da6-e2dfd255f3.zip/node_modules/log-symbols/", - "packageDependencies": [ - ["log-symbols", "npm:2.2.0"], - ["chalk", "npm:2.4.2"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/log-symbols-npm-3.0.0-b9d1446657-bfa7cceaea.zip/node_modules/log-symbols/", - "packageDependencies": [ - ["log-symbols", "npm:3.0.0"], - ["chalk", "npm:2.4.2"] - ], - "linkType": "HARD", - }] - ]], - ["log-update", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/log-update-npm-2.3.0-2ab0d1b479-9b28467861.zip/node_modules/log-update/", - "packageDependencies": [ - ["log-update", "npm:2.3.0"], - ["ansi-escapes", "npm:3.2.0"], - ["cli-cursor", "npm:2.1.0"], - ["wrap-ansi", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["logic-solver", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/logic-solver-npm-2.0.1-3f092e9b27-48458c6771.zip/node_modules/logic-solver/", - "packageDependencies": [ - ["logic-solver", "npm:2.0.1"], - ["underscore", "npm:1.8.3"] - ], - "linkType": "HARD", - }] - ]], - ["longest-streak", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/longest-streak-npm-2.0.4-a83545ec19-ba5ebac147.zip/node_modules/longest-streak/", - "packageDependencies": [ - ["longest-streak", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["loose-envify", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-5c3b47bbe5.zip/node_modules/loose-envify/", - "packageDependencies": [ - ["loose-envify", "npm:1.4.0"], - ["js-tokens", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["loud-rejection", [ - ["npm:1.6.0", { - "packageLocation": "./.yarn/cache/loud-rejection-npm-1.6.0-1d4b7666c5-9d57f7bc81.zip/node_modules/loud-rejection/", - "packageDependencies": [ - ["loud-rejection", "npm:1.6.0"], - ["currently-unhandled", "npm:0.4.1"], - ["signal-exit", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["lower-case", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/lower-case-npm-2.0.1-f34f50c78b-52a55327ea.zip/node_modules/lower-case/", - "packageDependencies": [ - ["lower-case", "npm:2.0.1"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["lowercase-keys", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/lowercase-keys-npm-1.0.0-b65e7708c5-9f082209f9.zip/node_modules/lowercase-keys/", - "packageDependencies": [ - ["lowercase-keys", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/lowercase-keys-npm-1.0.1-0979e653b8-ac9d79c47d.zip/node_modules/lowercase-keys/", - "packageDependencies": [ - ["lowercase-keys", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/lowercase-keys-npm-2.0.0-1876065a32-4da67f4186.zip/node_modules/lowercase-keys/", - "packageDependencies": [ - ["lowercase-keys", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["lru-cache", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/lru-cache-npm-4.0.2-5e365dbc4a-503a21816b.zip/node_modules/lru-cache/", - "packageDependencies": [ - ["lru-cache", "npm:4.0.2"], - ["pseudomap", "npm:1.0.2"], - ["yallist", "npm:2.1.2"] - ], - "linkType": "HARD", - }], - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/lru-cache-npm-5.1.1-f475882a51-ffd9a280fa.zip/node_modules/lru-cache/", - "packageDependencies": [ - ["lru-cache", "npm:5.1.1"], - ["yallist", "npm:3.1.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-b8b78353d2.zip/node_modules/lru-cache/", - "packageDependencies": [ - ["lru-cache", "npm:6.0.0"], - ["yallist", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["lru-memoizer", [ - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/lru-memoizer-npm-2.1.2-7b03f0ca3d-cef6810e8f.zip/node_modules/lru-memoizer/", - "packageDependencies": [ - ["lru-memoizer", "npm:2.1.2"], - ["lodash.clonedeep", "npm:4.5.0"], - ["lru-cache", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["lunr", [ - ["npm:2.3.9", { - "packageLocation": "./.yarn/cache/lunr-npm-2.3.9-fa3aa9c2d6-a2b66320c2.zip/node_modules/lunr/", - "packageDependencies": [ - ["lunr", "npm:2.3.9"] - ], - "linkType": "HARD", - }] - ]], - ["macos-release", [ - ["npm:2.4.1", { - "packageLocation": "./.yarn/cache/macos-release-npm-2.4.1-4856441ab1-0d15f4b163.zip/node_modules/macos-release/", - "packageDependencies": [ - ["macos-release", "npm:2.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["make-dir", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/make-dir-npm-1.3.0-692810d225-20a14043c6.zip/node_modules/make-dir/", - "packageDependencies": [ - ["make-dir", "npm:1.3.0"], - ["pify", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/make-dir-npm-2.1.0-1ddaf205e7-94e2ab9dda.zip/node_modules/make-dir/", - "packageDependencies": [ - ["make-dir", "npm:2.1.0"], - ["pify", "npm:4.0.1"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/make-dir-npm-3.1.0-d1d7505142-54b6f186c2.zip/node_modules/make-dir/", - "packageDependencies": [ - ["make-dir", "npm:3.1.0"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["make-error", [ - ["npm:1.3.6", { - "packageLocation": "./.yarn/cache/make-error-npm-1.3.6-ccb85d9458-2c780bab84.zip/node_modules/make-error/", - "packageDependencies": [ - ["make-error", "npm:1.3.6"] - ], - "linkType": "HARD", - }] - ]], - ["makeerror", [ - ["npm:1.0.11", { - "packageLocation": "./.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-582016a5e8.zip/node_modules/makeerror/", - "packageDependencies": [ - ["makeerror", "npm:1.0.11"], - ["tmpl", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["map-age-cleaner", [ - ["npm:0.1.3", { - "packageLocation": "./.yarn/cache/map-age-cleaner-npm-0.1.3-fd9e4b4aff-0f0b811492.zip/node_modules/map-age-cleaner/", - "packageDependencies": [ - ["map-age-cleaner", "npm:0.1.3"], - ["p-defer", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["map-cache", [ - ["npm:0.2.2", { - "packageLocation": "./.yarn/cache/map-cache-npm-0.2.2-1620199b05-3d205d20e0.zip/node_modules/map-cache/", - "packageDependencies": [ - ["map-cache", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["map-obj", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/map-obj-npm-1.0.1-fa55100fac-e68b20e4fa.zip/node_modules/map-obj/", - "packageDependencies": [ - ["map-obj", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["map-visit", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/map-visit-npm-1.0.0-33a7988a9d-9e85e6d802.zip/node_modules/map-visit/", - "packageDependencies": [ - ["map-visit", "npm:1.0.0"], - ["object-visit", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["markdown-escapes", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/markdown-escapes-npm-1.0.4-6f56c61420-eea95364ec.zip/node_modules/markdown-escapes/", - "packageDependencies": [ - ["markdown-escapes", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["markdown-it", [ - ["npm:10.0.0", { - "packageLocation": "./.yarn/cache/markdown-it-npm-10.0.0-5f034e780e-f052906744.zip/node_modules/markdown-it/", - "packageDependencies": [ - ["markdown-it", "npm:10.0.0"], - ["argparse", "npm:1.0.10"], - ["entities", "npm:2.0.3"], - ["linkify-it", "npm:2.2.0"], - ["mdurl", "npm:1.0.1"], - ["uc.micro", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["markdown-table", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/markdown-table-npm-2.0.0-a9c10c8e83-48492b01bc.zip/node_modules/markdown-table/", - "packageDependencies": [ - ["markdown-table", "npm:2.0.0"], - ["repeat-string", "npm:1.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["marked", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/marked-npm-1.1.1-94b9332cf8-4fb077a99c.zip/node_modules/marked/", - "packageDependencies": [ - ["marked", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["matcher", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/matcher-npm-3.0.0-d32d29365e-4b54c0a8ed.zip/node_modules/matcher/", - "packageDependencies": [ - ["matcher", "npm:3.0.0"], - ["escape-string-regexp", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["material-colors", [ - ["npm:1.2.6", { - "packageLocation": "./.yarn/cache/material-colors-npm-1.2.6-38f7e3d1c1-15883150a3.zip/node_modules/material-colors/", - "packageDependencies": [ - ["material-colors", "npm:1.2.6"] - ], - "linkType": "HARD", - }] - ]], - ["md5.js", [ - ["npm:1.3.5", { - "packageLocation": "./.yarn/cache/md5.js-npm-1.3.5-130901125a-ca0b260ea2.zip/node_modules/md5.js/", - "packageDependencies": [ - ["md5.js", "npm:1.3.5"], - ["hash-base", "npm:3.1.0"], - ["inherits", "npm:2.0.4"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-add-list-metadata", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/mdast-add-list-metadata-npm-1.0.1-af1e386973-1aa118b3c3.zip/node_modules/mdast-add-list-metadata/", - "packageDependencies": [ - ["mdast-add-list-metadata", "npm:1.0.1"], - ["unist-util-visit-parents", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-compact", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/mdast-util-compact-npm-2.0.1-a807b39cc4-0f1d42a28b.zip/node_modules/mdast-util-compact/", - "packageDependencies": [ - ["mdast-util-compact", "npm:2.0.1"], - ["unist-util-visit", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-definitions", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/mdast-util-definitions-npm-4.0.0-207d18be98-a6ef899727.zip/node_modules/mdast-util-definitions/", - "packageDependencies": [ - ["mdast-util-definitions", "npm:4.0.0"], - ["unist-util-visit", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-from-markdown", [ - ["npm:0.8.0", { - "packageLocation": "./.yarn/cache/mdast-util-from-markdown-npm-0.8.0-92070304d3-9bd1733de2.zip/node_modules/mdast-util-from-markdown/", - "packageDependencies": [ - ["mdast-util-from-markdown", "npm:0.8.0"], - ["@types/mdast", "npm:3.0.3"], - ["mdast-util-to-string", "npm:1.1.0"], - ["micromark", "npm:2.10.1"], - ["parse-entities", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-frontmatter", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/mdast-util-frontmatter-npm-0.2.0-c07c93d080-7ad4406e45.zip/node_modules/mdast-util-frontmatter/", - "packageDependencies": [ - ["mdast-util-frontmatter", "npm:0.2.0"], - ["micromark-extension-frontmatter", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-to-hast", [ - ["npm:10.0.0", { - "packageLocation": "./.yarn/cache/mdast-util-to-hast-npm-10.0.0-8f92042e63-30098259ad.zip/node_modules/mdast-util-to-hast/", - "packageDependencies": [ - ["mdast-util-to-hast", "npm:10.0.0"], - ["@types/mdast", "npm:3.0.3"], - ["@types/unist", "npm:2.0.3"], - ["mdast-util-definitions", "npm:4.0.0"], - ["mdurl", "npm:1.0.1"], - ["unist-builder", "npm:2.0.3"], - ["unist-util-generated", "npm:1.1.5"], - ["unist-util-position", "npm:3.1.0"], - ["unist-util-visit", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-to-markdown", [ - ["npm:0.5.3", { - "packageLocation": "./.yarn/cache/mdast-util-to-markdown-npm-0.5.3-eeab404b56-87b196a807.zip/node_modules/mdast-util-to-markdown/", - "packageDependencies": [ - ["mdast-util-to-markdown", "npm:0.5.3"], - ["@types/unist", "npm:2.0.3"], - ["longest-streak", "npm:2.0.4"], - ["mdast-util-to-string", "npm:1.1.0"], - ["parse-entities", "npm:2.0.0"], - ["repeat-string", "npm:1.6.1"], - ["zwitch", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["mdast-util-to-string", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/mdast-util-to-string-npm-1.1.0-9a11069485-0d5ebe2cb5.zip/node_modules/mdast-util-to-string/", - "packageDependencies": [ - ["mdast-util-to-string", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["mdn-data", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/mdn-data-npm-2.0.4-59a77d1e29-bcecf9ae69.zip/node_modules/mdn-data/", - "packageDependencies": [ - ["mdn-data", "npm:2.0.4"] - ], - "linkType": "HARD", - }], - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/mdn-data-npm-2.0.6-2e8c1b34fd-fc723bad3b.zip/node_modules/mdn-data/", - "packageDependencies": [ - ["mdn-data", "npm:2.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["mdurl", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/mdurl-npm-1.0.1-054d974269-ed5e81efed.zip/node_modules/mdurl/", - "packageDependencies": [ - ["mdurl", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["media-typer", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/media-typer-npm-0.3.0-8674f8f0f5-be1c825782.zip/node_modules/media-typer/", - "packageDependencies": [ - ["media-typer", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["mem", [ - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/mem-npm-5.1.1-2d4979148e-66b6c1a02b.zip/node_modules/mem/", - "packageDependencies": [ - ["mem", "npm:5.1.1"], - ["map-age-cleaner", "npm:0.1.3"], - ["mimic-fn", "npm:2.1.0"], - ["p-is-promise", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["mem-fs", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/mem-fs-npm-1.2.0-2dffc0dd19-5f1e955267.zip/node_modules/mem-fs/", - "packageDependencies": [ - ["mem-fs", "npm:1.2.0"], - ["through2", "npm:3.0.2"], - ["vinyl", "npm:2.2.0"], - ["vinyl-file", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["mem-fs-editor", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/mem-fs-editor-npm-6.0.0-7109215b6c-25d69e5316.zip/node_modules/mem-fs-editor/", - "packageDependencies": [ - ["mem-fs-editor", "npm:6.0.0"], - ["commondir", "npm:1.0.1"], - ["deep-extend", "npm:0.6.0"], - ["ejs", "npm:2.7.4"], - ["glob", "npm:7.1.6"], - ["globby", "npm:9.2.0"], - ["isbinaryfile", "npm:4.0.6"], - ["mkdirp", "npm:0.5.5"], - ["multimatch", "npm:4.0.0"], - ["rimraf", "npm:2.7.1"], - ["through2", "npm:3.0.2"], - ["vinyl", "npm:2.2.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.1", { - "packageLocation": "./.yarn/cache/mem-fs-editor-npm-7.0.1-d25c5bb014-5097632333.zip/node_modules/mem-fs-editor/", - "packageDependencies": [ - ["mem-fs-editor", "npm:7.0.1"], - ["commondir", "npm:1.0.1"], - ["deep-extend", "npm:0.6.0"], - ["ejs", "npm:3.1.3"], - ["glob", "npm:7.1.6"], - ["globby", "npm:9.2.0"], - ["isbinaryfile", "npm:4.0.6"], - ["mkdirp", "npm:1.0.4"], - ["multimatch", "npm:4.0.0"], - ["rimraf", "npm:3.0.2"], - ["through2", "npm:3.0.2"], - ["vinyl", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["memfs-or-file-map-to-github-branch", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/memfs-or-file-map-to-github-branch-npm-1.2.0-3a94978222-0890dc4bfd.zip/node_modules/memfs-or-file-map-to-github-branch/", - "packageDependencies": [ - ["memfs-or-file-map-to-github-branch", "npm:1.2.0"], - ["@octokit/rest", "npm:16.43.2"] - ], - "linkType": "HARD", - }] - ]], - ["memoize-one", [ - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/memoize-one-npm-5.1.1-78136bf522-e7c4a9ccec.zip/node_modules/memoize-one/", - "packageDependencies": [ - ["memoize-one", "npm:5.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["memory-fs", [ - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/memory-fs-npm-0.4.1-0a5f9b8954-ba79207118.zip/node_modules/memory-fs/", - "packageDependencies": [ - ["memory-fs", "npm:0.4.1"], - ["errno", "npm:0.1.7"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }], - ["npm:0.5.0", { - "packageLocation": "./.yarn/cache/memory-fs-npm-0.5.0-8be5938449-deb916f33c.zip/node_modules/memory-fs/", - "packageDependencies": [ - ["memory-fs", "npm:0.5.0"], - ["errno", "npm:0.1.7"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["meow", [ - ["npm:3.7.0", { - "packageLocation": "./.yarn/cache/meow-npm-3.7.0-5653cc98af-f0d4feec40.zip/node_modules/meow/", - "packageDependencies": [ - ["meow", "npm:3.7.0"], - ["camelcase-keys", "npm:2.1.0"], - ["decamelize", "npm:1.2.0"], - ["loud-rejection", "npm:1.6.0"], - ["map-obj", "npm:1.0.1"], - ["minimist", "npm:1.2.5"], - ["normalize-package-data", "npm:2.5.0"], - ["object-assign", "npm:4.1.1"], - ["read-pkg-up", "npm:1.0.1"], - ["redent", "npm:1.0.0"], - ["trim-newlines", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["merge-descriptors", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/merge-descriptors-npm-1.0.1-615287aaa8-2d2a09eaac.zip/node_modules/merge-descriptors/", - "packageDependencies": [ - ["merge-descriptors", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["merge-stream", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-cde834809a.zip/node_modules/merge-stream/", - "packageDependencies": [ - ["merge-stream", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["merge2", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7ad40d8b14.zip/node_modules/merge2/", - "packageDependencies": [ - ["merge2", "npm:1.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["methods", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/methods-npm-1.1.2-92f6fdb39b-450e4ea0fd.zip/node_modules/methods/", - "packageDependencies": [ - ["methods", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["microevent.ts", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/microevent.ts-npm-0.1.1-e4b5ff3a50-fc547fd00a.zip/node_modules/microevent.ts/", - "packageDependencies": [ - ["microevent.ts", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["micromark", [ - ["npm:2.10.1", { - "packageLocation": "./.yarn/cache/micromark-npm-2.10.1-9fc02028c9-26c2148b6f.zip/node_modules/micromark/", - "packageDependencies": [ - ["micromark", "npm:2.10.1"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["parse-entities", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["micromark-extension-frontmatter", [ - ["npm:0.2.2", { - "packageLocation": "./.yarn/cache/micromark-extension-frontmatter-npm-0.2.2-9bd552040c-52715e9240.zip/node_modules/micromark-extension-frontmatter/", - "packageDependencies": [ - ["micromark-extension-frontmatter", "npm:0.2.2"], - ["fault", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["micromatch", [ - ["npm:3.1.10", { - "packageLocation": "./.yarn/cache/micromatch-npm-3.1.10-016e80c79d-a60e73539a.zip/node_modules/micromatch/", - "packageDependencies": [ - ["micromatch", "npm:3.1.10"], - ["arr-diff", "npm:4.0.0"], - ["array-unique", "npm:0.3.2"], - ["braces", "npm:2.3.2"], - ["define-property", "npm:2.0.2"], - ["extend-shallow", "npm:3.0.2"], - ["extglob", "npm:2.0.4"], - ["fragment-cache", "npm:0.2.1"], - ["kind-of", "npm:6.0.3"], - ["nanomatch", "npm:1.2.13"], - ["object.pick", "npm:1.3.0"], - ["regex-not", "npm:1.0.2"], - ["snapdragon", "npm:0.8.2"], - ["to-regex", "npm:3.0.2"] - ], - "linkType": "HARD", - }], - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/micromatch-npm-4.0.2-f059c00e51-0cb0e11d64.zip/node_modules/micromatch/", - "packageDependencies": [ - ["micromatch", "npm:4.0.2"], - ["braces", "npm:3.0.2"], - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["miller-rabin", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/miller-rabin-npm-4.0.1-3426ac0bf7-e9f78a2c83.zip/node_modules/miller-rabin/", - "packageDependencies": [ - ["miller-rabin", "npm:4.0.1"], - ["bn.js", "npm:4.11.9"], - ["brorand", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["mime", [ - ["npm:1.6.0", { - "packageLocation": "./.yarn/cache/mime-npm-1.6.0-60ae95038a-d540c24dd3.zip/node_modules/mime/", - "packageDependencies": [ - ["mime", "npm:1.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["mime-db", [ - ["npm:1.44.0", { - "packageLocation": "./.yarn/cache/mime-db-npm-1.44.0-d6ab7b4e20-b4e3b21414.zip/node_modules/mime-db/", - "packageDependencies": [ - ["mime-db", "npm:1.44.0"] - ], - "linkType": "HARD", - }] - ]], - ["mime-types", [ - ["npm:2.1.27", { - "packageLocation": "./.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-51fe2f2c08.zip/node_modules/mime-types/", - "packageDependencies": [ - ["mime-types", "npm:2.1.27"], - ["mime-db", "npm:1.44.0"] - ], - "linkType": "HARD", - }] - ]], - ["mimic-fn", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/mimic-fn-npm-1.2.0-960bf15ab7-159155e209.zip/node_modules/mimic-fn/", - "packageDependencies": [ - ["mimic-fn", "npm:1.2.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-f7d2d7febe.zip/node_modules/mimic-fn/", - "packageDependencies": [ - ["mimic-fn", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["mimic-response", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-64b43c717e.zip/node_modules/mimic-response/", - "packageDependencies": [ - ["mimic-response", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/mimic-response-npm-2.1.0-037463e454-9c206f3aeb.zip/node_modules/mimic-response/", - "packageDependencies": [ - ["mimic-response", "npm:2.1.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-cfbf19f66d.zip/node_modules/mimic-response/", - "packageDependencies": [ - ["mimic-response", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["min-indent", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/min-indent-npm-1.0.1-77031f50e1-c3aeea46bc.zip/node_modules/min-indent/", - "packageDependencies": [ - ["min-indent", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["mini-css-extract-plugin", [ - ["npm:0.8.0", { - "packageLocation": "./.yarn/cache/mini-css-extract-plugin-npm-0.8.0-38a71cd586-806060c04c.zip/node_modules/mini-css-extract-plugin/", - "packageDependencies": [ - ["mini-css-extract-plugin", "npm:0.8.0"] - ], - "linkType": "SOFT", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.8.0", { - "packageLocation": "./.yarn/$$virtual/mini-css-extract-plugin-virtual-2c38fc6464/0/cache/mini-css-extract-plugin-npm-0.8.0-38a71cd586-806060c04c.zip/node_modules/mini-css-extract-plugin/", - "packageDependencies": [ - ["mini-css-extract-plugin", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.8.0"], - ["@types/webpack", null], - ["loader-utils", "npm:1.2.3"], - ["normalize-url", "npm:1.9.1"], - ["schema-utils", "npm:1.0.0"], - ["webpack", "npm:4.44.0"], - ["webpack-sources", "npm:1.4.3"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:0.8.0", { - "packageLocation": "./.yarn/$$virtual/mini-css-extract-plugin-virtual-4d54494e0f/0/cache/mini-css-extract-plugin-npm-0.8.0-38a71cd586-806060c04c.zip/node_modules/mini-css-extract-plugin/", - "packageDependencies": [ - ["mini-css-extract-plugin", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:0.8.0"], - ["@types/webpack", null], - ["loader-utils", "npm:1.2.3"], - ["normalize-url", "npm:1.9.1"], - ["schema-utils", "npm:1.0.0"], - ["webpack", "npm:4.43.0"], - ["webpack-sources", "npm:1.4.3"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["mini-svg-data-uri", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/mini-svg-data-uri-npm-1.2.3-8ed0f77365-a354646418.zip/node_modules/mini-svg-data-uri/", - "packageDependencies": [ - ["mini-svg-data-uri", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["minimalistic-assert", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/minimalistic-assert-npm-1.0.1-dc8bb23d29-28f1de3cf9.zip/node_modules/minimalistic-assert/", - "packageDependencies": [ - ["minimalistic-assert", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["minimalistic-crypto-utils", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/minimalistic-crypto-utils-npm-1.0.1-e66b10822e-736067bddd.zip/node_modules/minimalistic-crypto-utils/", - "packageDependencies": [ - ["minimalistic-crypto-utils", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["minimatch", [ - ["npm:3.0.4", { - "packageLocation": "./.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-47eab92639.zip/node_modules/minimatch/", - "packageDependencies": [ - ["minimatch", "npm:3.0.4"], - ["brace-expansion", "npm:1.1.11"] - ], - "linkType": "HARD", - }] - ]], - ["minimist", [ - ["npm:1.2.5", { - "packageLocation": "./.yarn/cache/minimist-npm-1.2.5-ced0e1f617-b77b859014.zip/node_modules/minimist/", - "packageDependencies": [ - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["minipass", [ - ["npm:2.9.0", { - "packageLocation": "./.yarn/cache/minipass-npm-2.9.0-6335fbe4af-57a49f9523.zip/node_modules/minipass/", - "packageDependencies": [ - ["minipass", "npm:2.9.0"], - ["safe-buffer", "npm:5.1.2"], - ["yallist", "npm:3.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.3", { - "packageLocation": "./.yarn/cache/minipass-npm-3.1.3-af723e33f3-d12b95a845.zip/node_modules/minipass/", - "packageDependencies": [ - ["minipass", "npm:3.1.3"], - ["yallist", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["minipass-collect", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-529ef62123.zip/node_modules/minipass-collect/", - "packageDependencies": [ - ["minipass-collect", "npm:1.0.2"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["minipass-flush", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-d354ca0da8.zip/node_modules/minipass-flush/", - "packageDependencies": [ - ["minipass-flush", "npm:1.0.5"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["minipass-pipeline", [ - ["npm:1.2.4", { - "packageLocation": "./.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-001d5a4a0c.zip/node_modules/minipass-pipeline/", - "packageDependencies": [ - ["minipass-pipeline", "npm:1.2.4"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["minizlib", [ - ["npm:1.3.3", { - "packageLocation": "./.yarn/cache/minizlib-npm-1.3.3-b590e5bfb8-8d12782dd9.zip/node_modules/minizlib/", - "packageDependencies": [ - ["minizlib", "npm:1.3.3"], - ["minipass", "npm:2.9.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-665346bad8.zip/node_modules/minizlib/", - "packageDependencies": [ - ["minizlib", "npm:2.1.0"], - ["minipass", "npm:3.1.3"], - ["yallist", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["mississippi", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/mississippi-npm-3.0.0-02447e293b-6d30a5ba65.zip/node_modules/mississippi/", - "packageDependencies": [ - ["mississippi", "npm:3.0.0"], - ["concat-stream", "npm:1.6.2"], - ["duplexify", "npm:3.7.1"], - ["end-of-stream", "npm:1.4.4"], - ["flush-write-stream", "npm:1.1.1"], - ["from2", "npm:2.3.0"], - ["parallel-transform", "npm:1.2.0"], - ["pump", "npm:3.0.0"], - ["pumpify", "npm:1.5.1"], - ["stream-each", "npm:1.2.3"], - ["through2", "npm:2.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["mixin-deep", [ - ["npm:1.3.2", { - "packageLocation": "./.yarn/cache/mixin-deep-npm-1.3.2-29b528e571-68da98bc1a.zip/node_modules/mixin-deep/", - "packageDependencies": [ - ["mixin-deep", "npm:1.3.2"], - ["for-in", "npm:1.0.2"], - ["is-extendable", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["mkdirp", [ - ["npm:0.5.3", { - "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.3-2727087057-92d96ba83c.zip/node_modules/mkdirp/", - "packageDependencies": [ - ["mkdirp", "npm:0.5.3"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }], - ["npm:0.5.5", { - "packageLocation": "./.yarn/cache/mkdirp-npm-0.5.5-6bc76534fc-9dd9792e89.zip/node_modules/mkdirp/", - "packageDependencies": [ - ["mkdirp", "npm:0.5.5"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }], - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1aa3a6a2d7.zip/node_modules/mkdirp/", - "packageDependencies": [ - ["mkdirp", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["mkdirp-classic", [ - ["npm:0.5.3", { - "packageLocation": "./.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-b3c46c6284.zip/node_modules/mkdirp-classic/", - "packageDependencies": [ - ["mkdirp-classic", "npm:0.5.3"] - ], - "linkType": "HARD", - }] - ]], - ["moment", [ - ["npm:2.27.0", { - "packageLocation": "./.yarn/cache/moment-npm-2.27.0-0e670d438d-72d9a7d8db.zip/node_modules/moment/", - "packageDependencies": [ - ["moment", "npm:2.27.0"] - ], - "linkType": "HARD", - }] - ]], - ["move-concurrently", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/move-concurrently-npm-1.0.1-e1e3c7e2cf-0761308ddb.zip/node_modules/move-concurrently/", - "packageDependencies": [ - ["move-concurrently", "npm:1.0.1"], - ["aproba", "npm:1.2.0"], - ["copy-concurrently", "npm:1.0.5"], - ["fs-write-stream-atomic", "npm:1.0.10"], - ["mkdirp", "npm:0.5.5"], - ["rimraf", "npm:2.7.1"], - ["run-queue", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["ms", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/ms-npm-2.0.0-9e1101a471-1a230340cc.zip/node_modules/ms/", - "packageDependencies": [ - ["ms", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/ms-npm-2.1.1-5b4fd72c86-81ad38c74d.zip/node_modules/ms/", - "packageDependencies": [ - ["ms", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-9b65fb709b.zip/node_modules/ms/", - "packageDependencies": [ - ["ms", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["multimatch", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/multimatch-npm-4.0.0-8c467f035e-c1ba3c9b68.zip/node_modules/multimatch/", - "packageDependencies": [ - ["multimatch", "npm:4.0.0"], - ["@types/minimatch", "npm:3.0.3"], - ["array-differ", "npm:3.0.0"], - ["array-union", "npm:2.1.0"], - ["arrify", "npm:2.0.1"], - ["minimatch", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["mute-stream", [ - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/mute-stream-npm-0.0.6-afa07e4a56-0fab9c5a25.zip/node_modules/mute-stream/", - "packageDependencies": [ - ["mute-stream", "npm:0.0.6"] - ], - "linkType": "HARD", - }], - ["npm:0.0.7", { - "packageLocation": "./.yarn/cache/mute-stream-npm-0.0.7-22b59a65dd-698fe32d88.zip/node_modules/mute-stream/", - "packageDependencies": [ - ["mute-stream", "npm:0.0.7"] - ], - "linkType": "HARD", - }], - ["npm:0.0.8", { - "packageLocation": "./.yarn/cache/mute-stream-npm-0.0.8-489a7d6c2b-315c40f463.zip/node_modules/mute-stream/", - "packageDependencies": [ - ["mute-stream", "npm:0.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["mz", [ - ["npm:2.7.0", { - "packageLocation": "./.yarn/cache/mz-npm-2.7.0-ec3cef4ec2-063966dd8e.zip/node_modules/mz/", - "packageDependencies": [ - ["mz", "npm:2.7.0"], - ["any-promise", "npm:1.3.0"], - ["object-assign", "npm:4.1.1"], - ["thenify-all", "npm:1.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["nan", [ - ["npm:2.14.2", { - "packageLocation": "./.yarn/unplugged/nan-npm-2.14.2-e3ede8ce5d/node_modules/nan/", - "packageDependencies": [ - ["nan", "npm:2.14.2"], - ["node-gyp", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["nanoclone", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/nanoclone-npm-0.2.1-972ee958a0-f624fe5198.zip/node_modules/nanoclone/", - "packageDependencies": [ - ["nanoclone", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["nanoid", [ - ["npm:3.1.23", { - "packageLocation": "./.yarn/cache/nanoid-npm-3.1.23-5f6acb650d-e6dea1da5a.zip/node_modules/nanoid/", - "packageDependencies": [ - ["nanoid", "npm:3.1.23"] - ], - "linkType": "HARD", - }] - ]], - ["nanomatch", [ - ["npm:1.2.13", { - "packageLocation": "./.yarn/cache/nanomatch-npm-1.2.13-bc9173dbe7-2e1440c570.zip/node_modules/nanomatch/", - "packageDependencies": [ - ["nanomatch", "npm:1.2.13"], - ["arr-diff", "npm:4.0.0"], - ["array-unique", "npm:0.3.2"], - ["define-property", "npm:2.0.2"], - ["extend-shallow", "npm:3.0.2"], - ["fragment-cache", "npm:0.2.1"], - ["is-windows", "npm:1.0.2"], - ["kind-of", "npm:6.0.3"], - ["object.pick", "npm:1.3.0"], - ["regex-not", "npm:1.0.2"], - ["snapdragon", "npm:0.8.2"], - ["to-regex", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["napi-build-utils", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-e4dfbec94d.zip/node_modules/napi-build-utils/", - "packageDependencies": [ - ["napi-build-utils", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["native-url", [ - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/native-url-npm-0.3.1-3618d3c107-b2f86c0d05.zip/node_modules/native-url/", - "packageDependencies": [ - ["native-url", "npm:0.3.1"], - ["querystring", "npm:0.2.0"] - ], - "linkType": "HARD", - }], - ["npm:0.3.4", { - "packageLocation": "./.yarn/cache/native-url-npm-0.3.4-a190c98bfe-26a3716a25.zip/node_modules/native-url/", - "packageDependencies": [ - ["native-url", "npm:0.3.4"], - ["querystring", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["natural-compare", [ - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-2daf93d9bb.zip/node_modules/natural-compare/", - "packageDependencies": [ - ["natural-compare", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["negotiator", [ - ["npm:0.6.2", { - "packageLocation": "./.yarn/cache/negotiator-npm-0.6.2-ba538e167a-4b230bd15f.zip/node_modules/negotiator/", - "packageDependencies": [ - ["negotiator", "npm:0.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["neo-async", [ - ["npm:2.6.1", { - "packageLocation": "./.yarn/cache/neo-async-npm-2.6.1-96bc443be6-b359ccaa5c.zip/node_modules/neo-async/", - "packageDependencies": [ - ["neo-async", "npm:2.6.1"] - ], - "linkType": "HARD", - }], - ["npm:2.6.2", { - "packageLocation": "./.yarn/cache/neo-async-npm-2.6.2-75d6902586-34a8f53091.zip/node_modules/neo-async/", - "packageDependencies": [ - ["neo-async", "npm:2.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["next", [ - ["npm:10.0.5", { - "packageLocation": "./.yarn/cache/next-npm-10.0.5-716eec629b-fa8a4c872b.zip/node_modules/next/", - "packageDependencies": [ - ["next", "npm:10.0.5"] - ], - "linkType": "SOFT", - }], - ["npm:9.4.2", { - "packageLocation": "./.yarn/cache/next-npm-9.4.2-4410e5c57d-17b910dbfe.zip/node_modules/next/", - "packageDependencies": [ - ["next", "npm:9.4.2"] - ], - "linkType": "SOFT", - }], - ["npm:9.5.1", { - "packageLocation": "./.yarn/cache/next-npm-9.5.1-e14f31e6e9-effa9056b8.zip/node_modules/next/", - "packageDependencies": [ - ["next", "npm:9.5.1"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1", { - "packageLocation": "./.yarn/$$virtual/next-virtual-1f9bf2342f/0/cache/next-npm-9.5.1-e14f31e6e9-effa9056b8.zip/node_modules/next/", - "packageDependencies": [ - ["next", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1"], - ["@ampproject/toolbox-optimizer", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:2.5.14"], - ["@babel/code-frame", "npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/plugin-proposal-class-properties", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-proposal-numeric-separator", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/plugin-proposal-optional-chaining", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0"], - ["@babel/plugin-syntax-bigint", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-syntax-dynamic-import", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-transform-modules-commonjs", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/plugin-transform-runtime", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/preset-env", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/preset-modules", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3"], - ["@babel/preset-react", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4"], - ["@babel/preset-typescript", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0"], - ["@babel/runtime", "npm:7.9.6"], - ["@babel/types", "npm:7.9.6"], - ["@next/react-dev-overlay", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1"], - ["@next/react-refresh-utils", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["ast-types", "npm:0.13.2"], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["babel-plugin-transform-define", "npm:2.0.0"], - ["babel-plugin-transform-react-remove-prop-types", "npm:0.4.24"], - ["browserslist", "npm:4.13.0"], - ["buffer", "npm:5.6.0"], - ["cacache", "npm:13.0.1"], - ["chokidar", "npm:2.1.8"], - ["css-loader", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:3.5.3"], - ["cssnano-simple", "npm:1.0.5"], - ["find-cache-dir", "npm:3.3.1"], - ["jest-worker", "npm:24.9.0"], - ["loader-utils", "npm:2.0.0"], - ["mini-css-extract-plugin", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.8.0"], - ["mkdirp", "npm:0.5.3"], - ["native-url", "npm:0.3.4"], - ["neo-async", "npm:2.6.1"], - ["node-html-parser", "npm:1.2.20"], - ["pnp-webpack-plugin", "npm:1.6.4"], - ["postcss", "npm:7.0.32"], - ["process", "npm:0.11.10"], - ["prop-types", "npm:15.7.2"], - ["prop-types-exact", "npm:1.2.0"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["react-refresh", "npm:0.8.3"], - ["resolve-url-loader", "npm:3.1.1"], - ["sass-loader", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:8.0.2"], - ["schema-utils", "npm:2.6.6"], - ["style-loader", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:1.2.1"], - ["styled-jsx", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0"], - ["use-subscription", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1"], - ["watchpack", "npm:2.0.0-beta.13"], - ["web-vitals", "npm:0.2.1"], - ["webpack", "npm:4.44.0"], - ["webpack-sources", "npm:1.4.3"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "react-dom", - "react" - ], - "linkType": "HARD", - }], - ["virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:10.0.5", { - "packageLocation": "./.yarn/$$virtual/next-virtual-077ed4b3e6/0/cache/next-npm-10.0.5-716eec629b-fa8a4c872b.zip/node_modules/next/", - "packageDependencies": [ - ["next", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:10.0.5"], - ["@ampproject/toolbox-optimizer", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:2.7.1-alpha.0"], - ["@babel/runtime", "npm:7.12.5"], - ["@hapi/accept", "npm:5.0.1"], - ["@next/env", "npm:10.0.5"], - ["@next/polyfill-module", "npm:10.0.5"], - ["@next/react-dev-overlay", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5"], - ["@next/react-refresh-utils", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5"], - ["@opentelemetry/api", "npm:0.14.0"], - ["@types/fibers", null], - ["@types/node-sass", null], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/sass", null], - ["ast-types", "npm:0.13.2"], - ["babel-plugin-transform-define", "npm:2.0.0"], - ["babel-plugin-transform-react-remove-prop-types", "npm:0.4.24"], - ["browserslist", "npm:4.14.6"], - ["buffer", "npm:5.6.0"], - ["caniuse-lite", "npm:1.0.30001228"], - ["chalk", "npm:2.4.2"], - ["chokidar", "npm:3.4.3"], - ["crypto-browserify", "npm:3.12.0"], - ["css-loader", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.3.0"], - ["cssnano-simple", "npm:1.2.1"], - ["etag", "npm:1.8.1"], - ["fibers", null], - ["find-cache-dir", "npm:3.3.1"], - ["jest-worker", "npm:24.9.0"], - ["loader-utils", "npm:2.0.0"], - ["native-url", "npm:0.3.4"], - ["node-fetch", "npm:2.6.1"], - ["node-html-parser", "npm:1.4.9"], - ["node-sass", null], - ["p-limit", "npm:3.1.0"], - ["path-browserify", "npm:1.0.1"], - ["pnp-webpack-plugin", "npm:1.6.4"], - ["postcss", "npm:8.1.7"], - ["process", "npm:0.11.10"], - ["prop-types", "npm:15.7.2"], - ["raw-body", "npm:2.4.1"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["react-refresh", "npm:0.8.3"], - ["resolve-url-loader", "npm:3.1.2"], - ["sass", null], - ["sass-loader", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5"], - ["schema-utils", "npm:2.7.1"], - ["sharp", "npm:0.26.3"], - ["stream-browserify", "npm:3.0.0"], - ["style-loader", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.2.1"], - ["styled-jsx", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:3.3.2"], - ["use-subscription", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.5.1"], - ["vm-browserify", "npm:1.1.2"], - ["watchpack", "npm:2.0.0-beta.13"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"], - ["webpack-sources", "npm:1.4.3"] - ], - "packagePeers": [ - "@types/fibers", - "@types/node-sass", - "@types/react-dom", - "@types/react", - "@types/sass", - "fibers", - "node-sass", - "react-dom", - "react", - "sass" - ], - "linkType": "HARD", - }], - ["virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2", { - "packageLocation": "./.yarn/$$virtual/next-virtual-8aee01236f/0/cache/next-npm-9.4.2-4410e5c57d-17b910dbfe.zip/node_modules/next/", - "packageDependencies": [ - ["next", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2"], - ["@ampproject/toolbox-optimizer", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:2.3.1"], - ["@babel/code-frame", "npm:7.8.3"], - ["@babel/core", "npm:7.7.7"], - ["@babel/plugin-proposal-class-properties", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-proposal-nullish-coalescing-operator", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-proposal-numeric-separator", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-proposal-object-rest-spread", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/plugin-proposal-optional-chaining", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0"], - ["@babel/plugin-syntax-bigint", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-syntax-dynamic-import", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3"], - ["@babel/plugin-transform-modules-commonjs", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/plugin-transform-runtime", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/preset-env", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6"], - ["@babel/preset-modules", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3"], - ["@babel/preset-react", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4"], - ["@babel/preset-typescript", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0"], - ["@babel/runtime", "npm:7.9.6"], - ["@babel/types", "npm:7.9.6"], - ["@next/react-dev-overlay", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2"], - ["@next/react-refresh-utils", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["babel-plugin-transform-define", "npm:2.0.0"], - ["babel-plugin-transform-react-remove-prop-types", "npm:0.4.24"], - ["browserslist", "npm:4.12.0"], - ["cacache", "npm:13.0.1"], - ["chokidar", "npm:2.1.8"], - ["css-loader", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.5.3"], - ["find-cache-dir", "npm:3.3.1"], - ["fork-ts-checker-webpack-plugin", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.1.1"], - ["jest-worker", "npm:24.9.0"], - ["loader-utils", "npm:2.0.0"], - ["mini-css-extract-plugin", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:0.8.0"], - ["mkdirp", "npm:0.5.3"], - ["native-url", "npm:0.3.1"], - ["neo-async", "npm:2.6.1"], - ["pnp-webpack-plugin", "npm:1.6.4"], - ["postcss", "npm:7.0.29"], - ["prop-types", "npm:15.7.2"], - ["prop-types-exact", "npm:1.2.0"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["react-refresh", "npm:0.8.2"], - ["resolve-url-loader", "npm:3.1.1"], - ["sass-loader", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:8.0.2"], - ["schema-utils", "npm:2.6.6"], - ["style-loader", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:1.2.1"], - ["styled-jsx", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0"], - ["typescript", "patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e"], - ["use-subscription", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1"], - ["watchpack", "npm:2.0.0-beta.13"], - ["web-vitals", "npm:0.2.1"], - ["webpack", "npm:4.43.0"], - ["webpack-sources", "npm:1.4.3"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "react-dom", - "react" - ], - "linkType": "HARD", - }] - ]], - ["next-tick", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/next-tick-npm-1.0.0-0c0dd4bec1-18db63c447.zip/node_modules/next-tick/", - "packageDependencies": [ - ["next-tick", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["nice-try", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/nice-try-npm-1.0.5-963856b16f-330f190bf6.zip/node_modules/nice-try/", - "packageDependencies": [ - ["nice-try", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["no-case", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/no-case-npm-3.0.3-4918b64cc1-619e0bd00a.zip/node_modules/no-case/", - "packageDependencies": [ - ["no-case", "npm:3.0.3"], - ["lower-case", "npm:2.0.1"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-abi", [ - ["npm:2.26.0", { - "packageLocation": "./.yarn/cache/node-abi-npm-2.26.0-3cef53dbb6-29c7ee7486.zip/node_modules/node-abi/", - "packageDependencies": [ - ["node-abi", "npm:2.26.0"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["node-addon-api", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/unplugged/node-addon-api-npm-3.2.0-061ff0dbab/node_modules/node-addon-api/", - "packageDependencies": [ - ["node-addon-api", "npm:3.2.0"], - ["node-gyp", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-cleanup", [ - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/node-cleanup-npm-2.1.2-adfbc95778-696b6f832d.zip/node_modules/node-cleanup/", - "packageDependencies": [ - ["node-cleanup", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-emoji", [ - ["npm:1.10.0", { - "packageLocation": "./.yarn/cache/node-emoji-npm-1.10.0-3bbb4a73cd-9c73cd0af0.zip/node_modules/node-emoji/", - "packageDependencies": [ - ["node-emoji", "npm:1.10.0"], - ["lodash.toarray", "npm:4.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-fetch", [ - ["npm:1.7.3", { - "packageLocation": "./.yarn/cache/node-fetch-npm-1.7.3-eb8372f991-d04afb2e32.zip/node_modules/node-fetch/", - "packageDependencies": [ - ["node-fetch", "npm:1.7.3"], - ["encoding", "npm:0.1.13"], - ["is-stream", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.6.0", { - "packageLocation": "./.yarn/cache/node-fetch-npm-2.6.0-29c7a53447-dd9f586a9f.zip/node_modules/node-fetch/", - "packageDependencies": [ - ["node-fetch", "npm:2.6.0"] - ], - "linkType": "HARD", - }], - ["npm:2.6.1", { - "packageLocation": "./.yarn/cache/node-fetch-npm-2.6.1-46c670dbc1-cbb171635e.zip/node_modules/node-fetch/", - "packageDependencies": [ - ["node-fetch", "npm:2.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["node-gyp", [ - ["npm:7.0.0", { - "packageLocation": "./.yarn/unplugged/node-gyp-npm-7.0.0-9ae0ecd334/node_modules/node-gyp/", - "packageDependencies": [ - ["node-gyp", "npm:7.0.0"], - ["env-paths", "npm:2.2.0"], - ["glob", "npm:7.1.6"], - ["graceful-fs", "npm:4.2.4"], - ["nopt", "npm:4.0.3"], - ["npmlog", "npm:4.1.2"], - ["request", "npm:2.88.2"], - ["rimraf", "npm:2.7.1"], - ["semver", "npm:7.3.2"], - ["tar", "npm:6.0.2"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-gyp-build", [ - ["npm:3.7.0", { - "packageLocation": "./.yarn/cache/node-gyp-build-npm-3.7.0-1df68f8d43-61c7f2a9e4.zip/node_modules/node-gyp-build/", - "packageDependencies": [ - ["node-gyp-build", "npm:3.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-html-parser", [ - ["npm:1.2.20", { - "packageLocation": "./.yarn/cache/node-html-parser-npm-1.2.20-aa7dedbb40-18ee6caf73.zip/node_modules/node-html-parser/", - "packageDependencies": [ - ["node-html-parser", "npm:1.2.20"], - ["he", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:1.4.9", { - "packageLocation": "./.yarn/cache/node-html-parser-npm-1.4.9-267030a0e0-deb013cdd3.zip/node_modules/node-html-parser/", - "packageDependencies": [ - ["node-html-parser", "npm:1.4.9"], - ["he", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-int64", [ - ["npm:0.4.0", { - "packageLocation": "./.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-8fce4b82d4.zip/node_modules/node-int64/", - "packageDependencies": [ - ["node-int64", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-libs-browser", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/node-libs-browser-npm-2.2.1-ffef534730-8da918a5ef.zip/node_modules/node-libs-browser/", - "packageDependencies": [ - ["node-libs-browser", "npm:2.2.1"], - ["assert", "npm:1.5.0"], - ["browserify-zlib", "npm:0.2.0"], - ["buffer", "npm:4.9.2"], - ["console-browserify", "npm:1.2.0"], - ["constants-browserify", "npm:1.0.0"], - ["crypto-browserify", "npm:3.12.0"], - ["domain-browser", "npm:1.2.0"], - ["events", "npm:3.2.0"], - ["https-browserify", "npm:1.0.0"], - ["os-browserify", "npm:0.3.0"], - ["path-browserify", "npm:0.0.1"], - ["process", "npm:0.11.10"], - ["punycode", "npm:1.4.1"], - ["querystring-es3", "npm:0.2.1"], - ["readable-stream", "npm:2.3.7"], - ["stream-browserify", "npm:2.0.2"], - ["stream-http", "npm:2.8.3"], - ["string_decoder", "npm:1.3.0"], - ["timers-browserify", "npm:2.0.11"], - ["tty-browserify", "npm:0.0.0"], - ["url", "npm:0.11.0"], - ["util", "npm:0.11.1"], - ["vm-browserify", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-modules-regexp", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-90f928a1db.zip/node_modules/node-modules-regexp/", - "packageDependencies": [ - ["node-modules-regexp", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["node-notifier", [ - ["npm:7.0.2", { - "packageLocation": "./.yarn/unplugged/node-notifier-npm-7.0.2-2b8a968093/node_modules/node-notifier/", - "packageDependencies": [ - ["node-notifier", "npm:7.0.2"], - ["growly", "npm:1.3.0"], - ["is-wsl", "npm:2.2.0"], - ["semver", "npm:7.3.2"], - ["shellwords", "npm:0.1.1"], - ["uuid", "npm:8.3.0"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:8.0.2", { - "packageLocation": "./.yarn/unplugged/node-notifier-npm-8.0.2-e8d89b5d6b/node_modules/node-notifier/", - "packageDependencies": [ - ["node-notifier", "npm:8.0.2"], - ["growly", "npm:1.3.0"], - ["is-wsl", "npm:2.2.0"], - ["semver", "npm:7.3.2"], - ["shellwords", "npm:0.1.1"], - ["uuid", "npm:8.3.2"], - ["which", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["node-releases", [ - ["npm:1.1.60", { - "packageLocation": "./.yarn/cache/node-releases-npm-1.1.60-2aa6cd442c-bed3480bd1.zip/node_modules/node-releases/", - "packageDependencies": [ - ["node-releases", "npm:1.1.60"] - ], - "linkType": "HARD", - }], - ["npm:1.1.72", { - "packageLocation": "./.yarn/cache/node-releases-npm-1.1.72-662e905d8e-a9ded860ba.zip/node_modules/node-releases/", - "packageDependencies": [ - ["node-releases", "npm:1.1.72"] - ], - "linkType": "HARD", - }] - ]], - ["node.extend", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/node.extend-npm-2.0.2-91a85f1c30-750516f66b.zip/node_modules/node.extend/", - "packageDependencies": [ - ["node.extend", "npm:2.0.2"], - ["has", "npm:1.0.3"], - ["is", "npm:3.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["nodemon", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/unplugged/nodemon-npm-2.0.4-6cfc557b1b/node_modules/nodemon/", - "packageDependencies": [ - ["nodemon", "npm:2.0.4"], - ["chokidar", "npm:3.4.1"], - ["debug", "virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6"], - ["ignore-by-default", "npm:1.0.1"], - ["minimatch", "npm:3.0.4"], - ["pstree.remy", "npm:1.1.8"], - ["semver", "npm:5.7.1"], - ["supports-color", "npm:5.5.0"], - ["touch", "npm:3.1.0"], - ["undefsafe", "npm:2.0.3"], - ["update-notifier", "npm:4.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.7", { - "packageLocation": "./.yarn/unplugged/nodemon-npm-2.0.7-7b95e46511/node_modules/nodemon/", - "packageDependencies": [ - ["nodemon", "npm:2.0.7"], - ["chokidar", "npm:3.4.1"], - ["debug", "virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6"], - ["ignore-by-default", "npm:1.0.1"], - ["minimatch", "npm:3.0.4"], - ["pstree.remy", "npm:1.1.8"], - ["semver", "npm:5.7.1"], - ["supports-color", "npm:5.5.0"], - ["touch", "npm:3.1.0"], - ["undefsafe", "npm:2.0.3"], - ["update-notifier", "npm:4.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["noop-logger", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/noop-logger-npm-0.1.1-c88441172d-353d31cd08.zip/node_modules/noop-logger/", - "packageDependencies": [ - ["noop-logger", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["nopt", [ - ["npm:1.0.10", { - "packageLocation": "./.yarn/cache/nopt-npm-1.0.10-f3db192976-fb74743e70.zip/node_modules/nopt/", - "packageDependencies": [ - ["nopt", "npm:1.0.10"], - ["abbrev", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/nopt-npm-4.0.3-b35e68a869-bf7b8c15fd.zip/node_modules/nopt/", - "packageDependencies": [ - ["nopt", "npm:4.0.3"], - ["abbrev", "npm:1.1.1"], - ["osenv", "npm:0.1.5"] - ], - "linkType": "HARD", - }] - ]], - ["normalize-html-whitespace", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/normalize-html-whitespace-npm-1.0.0-6c5b20a97a-900cd749dc.zip/node_modules/normalize-html-whitespace/", - "packageDependencies": [ - ["normalize-html-whitespace", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["normalize-package-data", [ - ["npm:2.5.0", { - "packageLocation": "./.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-97d4d6b061.zip/node_modules/normalize-package-data/", - "packageDependencies": [ - ["normalize-package-data", "npm:2.5.0"], - ["hosted-git-info", "npm:2.8.8"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"], - ["semver", "npm:5.7.1"], - ["validate-npm-package-license", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["normalize-path", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/normalize-path-npm-2.1.1-65c4766716-9eb82b2f6a.zip/node_modules/normalize-path/", - "packageDependencies": [ - ["normalize-path", "npm:2.1.1"], - ["remove-trailing-separator", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-215a701b47.zip/node_modules/normalize-path/", - "packageDependencies": [ - ["normalize-path", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["normalize-range", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/normalize-range-npm-0.1.2-bec5e259e2-bca997d800.zip/node_modules/normalize-range/", - "packageDependencies": [ - ["normalize-range", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["normalize-url", [ - ["npm:1.9.1", { - "packageLocation": "./.yarn/cache/normalize-url-npm-1.9.1-41b1f4c9f2-f4ebdd85d7.zip/node_modules/normalize-url/", - "packageDependencies": [ - ["normalize-url", "npm:1.9.1"], - ["object-assign", "npm:4.1.1"], - ["prepend-http", "npm:1.0.4"], - ["query-string", "npm:4.3.4"], - ["sort-keys", "npm:1.1.2"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/normalize-url-npm-2.0.1-4f204748d2-a3491f4401.zip/node_modules/normalize-url/", - "packageDependencies": [ - ["normalize-url", "npm:2.0.1"], - ["prepend-http", "npm:2.0.0"], - ["query-string", "npm:5.1.1"], - ["sort-keys", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/normalize-url-npm-3.3.0-f91cbdff7c-5704115f74.zip/node_modules/normalize-url/", - "packageDependencies": [ - ["normalize-url", "npm:3.3.0"] - ], - "linkType": "HARD", - }], - ["npm:4.5.0", { - "packageLocation": "./.yarn/cache/normalize-url-npm-4.5.0-14a0c5430f-09794941db.zip/node_modules/normalize-url/", - "packageDependencies": [ - ["normalize-url", "npm:4.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["normalize.css", [ - ["npm:8.0.1", { - "packageLocation": "./.yarn/cache/normalize.css-npm-8.0.1-6124fb39b6-de6c137a14.zip/node_modules/normalize.css/", - "packageDependencies": [ - ["normalize.css", "npm:8.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["npm-api", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/npm-api-npm-1.0.0-a12a532ed5-0e6f738991.zip/node_modules/npm-api/", - "packageDependencies": [ - ["npm-api", "npm:1.0.0"], - ["JSONStream", "npm:1.3.5"], - ["clone-deep", "npm:4.0.1"], - ["download-stats", "npm:0.3.4"], - ["moment", "npm:2.27.0"], - ["paged-request", "npm:2.0.1"], - ["request", "npm:2.88.2"] - ], - "linkType": "HARD", - }] - ]], - ["npm-conf", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/npm-conf-npm-1.1.3-e2833445bb-e9e092ed13.zip/node_modules/npm-conf/", - "packageDependencies": [ - ["npm-conf", "npm:1.1.3"], - ["config-chain", "npm:1.1.12"], - ["pify", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["npm-keyword", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/npm-keyword-npm-5.0.0-d87cf446aa-0c70dd9abb.zip/node_modules/npm-keyword/", - "packageDependencies": [ - ["npm-keyword", "npm:5.0.0"], - ["got", "npm:7.1.0"], - ["registry-url", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["npm-run-path", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/npm-run-path-npm-2.0.2-96c8b48857-0a1bc9a1e0.zip/node_modules/npm-run-path/", - "packageDependencies": [ - ["npm-run-path", "npm:2.0.2"], - ["path-key", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-058fd06880.zip/node_modules/npm-run-path/", - "packageDependencies": [ - ["npm-run-path", "npm:4.0.1"], - ["path-key", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["npmlog", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/npmlog-npm-2.0.4-17bff308ca-5d7eb51c09.zip/node_modules/npmlog/", - "packageDependencies": [ - ["npmlog", "npm:2.0.4"], - ["ansi", "npm:0.3.1"], - ["are-we-there-yet", "npm:1.1.5"], - ["gauge", "npm:1.2.7"] - ], - "linkType": "HARD", - }], - ["npm:4.1.2", { - "packageLocation": "./.yarn/cache/npmlog-npm-4.1.2-cfb32957b5-0cd63f127c.zip/node_modules/npmlog/", - "packageDependencies": [ - ["npmlog", "npm:4.1.2"], - ["are-we-there-yet", "npm:1.1.5"], - ["console-control-strings", "npm:1.1.0"], - ["gauge", "npm:2.7.4"], - ["set-blocking", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["nth-check", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/nth-check-npm-1.0.2-3f6d0d22eb-88a58b8b62.zip/node_modules/nth-check/", - "packageDependencies": [ - ["nth-check", "npm:1.0.2"], - ["boolbase", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["nullthrows", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/nullthrows-npm-1.1.1-3d1f817134-47afb80d97.zip/node_modules/nullthrows/", - "packageDependencies": [ - ["nullthrows", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["num2fraction", [ - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/num2fraction-npm-1.2.2-dc0a0a80ad-c9bb3e7c6d.zip/node_modules/num2fraction/", - "packageDependencies": [ - ["num2fraction", "npm:1.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["number-is-nan", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/number-is-nan-npm-1.0.1-845325a0fe-42251b2653.zip/node_modules/number-is-nan/", - "packageDependencies": [ - ["number-is-nan", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["nwsapi", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/nwsapi-npm-2.2.0-8f05590043-fb0f05113a.zip/node_modules/nwsapi/", - "packageDependencies": [ - ["nwsapi", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["oauth-sign", [ - ["npm:0.9.0", { - "packageLocation": "./.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-af1ab60297.zip/node_modules/oauth-sign/", - "packageDependencies": [ - ["oauth-sign", "npm:0.9.0"] - ], - "linkType": "HARD", - }] - ]], - ["object-assign", [ - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-66cf021898.zip/node_modules/object-assign/", - "packageDependencies": [ - ["object-assign", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["object-copy", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/object-copy-npm-0.1.0-e229d02f2b-d91d46e542.zip/node_modules/object-copy/", - "packageDependencies": [ - ["object-copy", "npm:0.1.0"], - ["copy-descriptor", "npm:0.1.1"], - ["define-property", "npm:0.2.5"], - ["kind-of", "npm:3.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["object-inspect", [ - ["npm:1.8.0", { - "packageLocation": "./.yarn/cache/object-inspect-npm-1.8.0-81c2d7cdce-4da23a188b.zip/node_modules/object-inspect/", - "packageDependencies": [ - ["object-inspect", "npm:1.8.0"] - ], - "linkType": "HARD", - }] - ]], - ["object-keys", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-30d72d768b.zip/node_modules/object-keys/", - "packageDependencies": [ - ["object-keys", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["object-path", [ - ["npm:0.11.4", { - "packageLocation": "./.yarn/cache/object-path-npm-0.11.4-d29959e0d1-5e3d4690d0.zip/node_modules/object-path/", - "packageDependencies": [ - ["object-path", "npm:0.11.4"] - ], - "linkType": "HARD", - }] - ]], - ["object-visit", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/object-visit-npm-1.0.1-c5c9057c24-8666727dbf.zip/node_modules/object-visit/", - "packageDependencies": [ - ["object-visit", "npm:1.0.1"], - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["object.assign", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/object.assign-npm-4.1.0-2a284b2bf7-92e20891dd.zip/node_modules/object.assign/", - "packageDependencies": [ - ["object.assign", "npm:4.1.0"], - ["define-properties", "npm:1.1.3"], - ["function-bind", "npm:1.1.1"], - ["has-symbols", "npm:1.0.1"], - ["object-keys", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["object.getownpropertydescriptors", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/object.getownpropertydescriptors-npm-2.1.0-a6ef3a16c2-c33dcc3061.zip/node_modules/object.getownpropertydescriptors/", - "packageDependencies": [ - ["object.getownpropertydescriptors", "npm:2.1.0"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.17.6"] - ], - "linkType": "HARD", - }] - ]], - ["object.pick", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/object.pick-npm-1.3.0-dad8eae8fb-e22d555d3b.zip/node_modules/object.pick/", - "packageDependencies": [ - ["object.pick", "npm:1.3.0"], - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["object.values", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/object.values-npm-1.1.1-f4f0df6a55-33e99ceb5c.zip/node_modules/object.values/", - "packageDependencies": [ - ["object.values", "npm:1.1.1"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.17.6"], - ["function-bind", "npm:1.1.1"], - ["has", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["octokit-pagination-methods", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/octokit-pagination-methods-npm-1.1.0-ce2bd023d6-c3b42406a1.zip/node_modules/octokit-pagination-methods/", - "packageDependencies": [ - ["octokit-pagination-methods", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["on-finished", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/on-finished-npm-2.3.0-4ce92f72c6-362e646082.zip/node_modules/on-finished/", - "packageDependencies": [ - ["on-finished", "npm:2.3.0"], - ["ee-first", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["once", [ - ["npm:1.3.3", { - "packageLocation": "./.yarn/cache/once-npm-1.3.3-595f0882a4-c68086bafe.zip/node_modules/once/", - "packageDependencies": [ - ["once", "npm:1.3.3"], - ["wrappy", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:1.4.0", { - "packageLocation": "./.yarn/cache/once-npm-1.4.0-ccf03ef07a-57afc24653.zip/node_modules/once/", - "packageDependencies": [ - ["once", "npm:1.4.0"], - ["wrappy", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["onetime", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/onetime-npm-1.1.0-cd138fd743-ddf13ecba8.zip/node_modules/onetime/", - "packageDependencies": [ - ["onetime", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/onetime-npm-2.0.1-6c39ecc911-a4f56fdd3a.zip/node_modules/onetime/", - "packageDependencies": [ - ["onetime", "npm:2.0.1"], - ["mimic-fn", "npm:1.2.0"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/onetime-npm-5.1.0-8d9e23c1e0-1781c3cf88.zip/node_modules/onetime/", - "packageDependencies": [ - ["onetime", "npm:5.1.0"], - ["mimic-fn", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["open", [ - ["npm:6.4.0", { - "packageLocation": "./.yarn/cache/open-npm-6.4.0-d2020c939f-53044871e7.zip/node_modules/open/", - "packageDependencies": [ - ["open", "npm:6.4.0"], - ["is-wsl", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["optimism", [ - ["npm:0.12.1", { - "packageLocation": "./.yarn/cache/optimism-npm-0.12.1-ff16b66c13-3e2a62ca68.zip/node_modules/optimism/", - "packageDependencies": [ - ["optimism", "npm:0.12.1"], - ["@wry/context", "npm:0.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["optionator", [ - ["npm:0.8.3", { - "packageLocation": "./.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-a5cdced2c9.zip/node_modules/optionator/", - "packageDependencies": [ - ["optionator", "npm:0.8.3"], - ["deep-is", "npm:0.1.3"], - ["fast-levenshtein", "npm:2.0.6"], - ["levn", "npm:0.3.0"], - ["prelude-ls", "npm:1.1.2"], - ["type-check", "npm:0.3.2"], - ["word-wrap", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["ora", [ - ["npm:4.0.5", { - "packageLocation": "./.yarn/cache/ora-npm-4.0.5-b823f9f73c-f9910d5889.zip/node_modules/ora/", - "packageDependencies": [ - ["ora", "npm:4.0.5"], - ["chalk", "npm:3.0.0"], - ["cli-cursor", "npm:3.1.0"], - ["cli-spinners", "npm:2.4.0"], - ["is-interactive", "npm:1.0.0"], - ["log-symbols", "npm:3.0.0"], - ["mute-stream", "npm:0.0.8"], - ["strip-ansi", "npm:6.0.0"], - ["wcwidth", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["os-browserify", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/os-browserify-npm-0.3.0-cbc91c79a5-f547c03881.zip/node_modules/os-browserify/", - "packageDependencies": [ - ["os-browserify", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["os-homedir", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/os-homedir-npm-1.0.2-01f82faa88-725256246b.zip/node_modules/os-homedir/", - "packageDependencies": [ - ["os-homedir", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["os-name", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/os-name-npm-3.1.0-b5e3fb36cd-b4e5d61010.zip/node_modules/os-name/", - "packageDependencies": [ - ["os-name", "npm:3.1.0"], - ["macos-release", "npm:2.4.1"], - ["windows-release", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["os-shim", [ - ["npm:0.1.3", { - "packageLocation": "./.yarn/cache/os-shim-npm-0.1.3-03d492dbf1-47bee41866.zip/node_modules/os-shim/", - "packageDependencies": [ - ["os-shim", "npm:0.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["os-tmpdir", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/os-tmpdir-npm-1.0.2-e305b0689b-ca158a3c2e.zip/node_modules/os-tmpdir/", - "packageDependencies": [ - ["os-tmpdir", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["osenv", [ - ["npm:0.1.5", { - "packageLocation": "./.yarn/cache/osenv-npm-0.1.5-435137eb60-1c7462808c.zip/node_modules/osenv/", - "packageDependencies": [ - ["osenv", "npm:0.1.5"], - ["os-homedir", "npm:1.0.2"], - ["os-tmpdir", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["override-require", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/override-require-npm-1.1.1-60cb623355-7ce873a0ae.zip/node_modules/override-require/", - "packageDependencies": [ - ["override-require", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["p-any", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/p-any-npm-2.1.0-62b70e163a-69c10711e5.zip/node_modules/p-any/", - "packageDependencies": [ - ["p-any", "npm:2.1.0"], - ["p-cancelable", "npm:2.0.0"], - ["p-some", "npm:4.1.0"], - ["type-fest", "npm:0.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["p-cancelable", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/p-cancelable-npm-0.3.0-abade43096-e2435533c1.zip/node_modules/p-cancelable/", - "packageDependencies": [ - ["p-cancelable", "npm:0.3.0"] - ], - "linkType": "HARD", - }], - ["npm:0.4.1", { - "packageLocation": "./.yarn/cache/p-cancelable-npm-0.4.1-c97cbea85e-a478b54ce0.zip/node_modules/p-cancelable/", - "packageDependencies": [ - ["p-cancelable", "npm:0.4.1"] - ], - "linkType": "HARD", - }], - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/p-cancelable-npm-1.1.0-d147d5996f-01fdd9ac31.zip/node_modules/p-cancelable/", - "packageDependencies": [ - ["p-cancelable", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/p-cancelable-npm-2.0.0-5f988ffca4-966065f056.zip/node_modules/p-cancelable/", - "packageDependencies": [ - ["p-cancelable", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-defer", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/p-defer-npm-1.0.0-4dfd0013f5-ffaabb1613.zip/node_modules/p-defer/", - "packageDependencies": [ - ["p-defer", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-each-series", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/p-each-series-npm-2.1.0-345e6f9034-cc7516dbb8.zip/node_modules/p-each-series/", - "packageDependencies": [ - ["p-each-series", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-finally", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/p-finally-npm-1.0.0-35fbaa57c6-01f49b2d9c.zip/node_modules/p-finally/", - "packageDependencies": [ - ["p-finally", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-is-promise", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/p-is-promise-npm-1.1.0-854b305797-c6e06c4693.zip/node_modules/p-is-promise/", - "packageDependencies": [ - ["p-is-promise", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/p-is-promise-npm-2.1.0-47a48ac6a0-4a15137df9.zip/node_modules/p-is-promise/", - "packageDependencies": [ - ["p-is-promise", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-limit", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/p-limit-npm-1.3.0-fdb471d864-579cbd3d6c.zip/node_modules/p-limit/", - "packageDependencies": [ - ["p-limit", "npm:1.3.0"], - ["p-try", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/p-limit-npm-2.3.0-94a0310039-5f20492a25.zip/node_modules/p-limit/", - "packageDependencies": [ - ["p-limit", "npm:2.3.0"], - ["p-try", "npm:2.2.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/p-limit-npm-3.0.2-cf6c70eb96-1eb23d6ea7.zip/node_modules/p-limit/", - "packageDependencies": [ - ["p-limit", "npm:3.0.2"], - ["p-try", "npm:2.2.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-5301db6a34.zip/node_modules/p-limit/", - "packageDependencies": [ - ["p-limit", "npm:3.1.0"], - ["yocto-queue", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-locate", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/p-locate-npm-2.0.0-3a2ee263dd-b6dabbd855.zip/node_modules/p-locate/", - "packageDependencies": [ - ["p-locate", "npm:2.0.0"], - ["p-limit", "npm:1.3.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/p-locate-npm-3.0.0-74de74f952-3ee9e3ed0b.zip/node_modules/p-locate/", - "packageDependencies": [ - ["p-locate", "npm:3.0.0"], - ["p-limit", "npm:2.3.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/p-locate-npm-4.1.0-eec6872537-57f9abef0b.zip/node_modules/p-locate/", - "packageDependencies": [ - ["p-locate", "npm:4.1.0"], - ["p-limit", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-map", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/p-map-npm-2.1.0-d9e865dc7c-8557e841ed.zip/node_modules/p-map/", - "packageDependencies": [ - ["p-map", "npm:2.1.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/p-map-npm-3.0.0-e4f17c4167-f7ce4709f4.zip/node_modules/p-map/", - "packageDependencies": [ - ["p-map", "npm:3.0.0"], - ["aggregate-error", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["p-some", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/p-some-npm-4.1.0-a80a4c3d32-bf8f094e05.zip/node_modules/p-some/", - "packageDependencies": [ - ["p-some", "npm:4.1.0"], - ["aggregate-error", "npm:3.0.1"], - ["p-cancelable", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-timeout", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/p-timeout-npm-1.2.1-2b480cb517-753ba3cf21.zip/node_modules/p-timeout/", - "packageDependencies": [ - ["p-timeout", "npm:1.2.1"], - ["p-finally", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/p-timeout-npm-2.0.1-cd74d88327-651609ddc7.zip/node_modules/p-timeout/", - "packageDependencies": [ - ["p-timeout", "npm:2.0.1"], - ["p-finally", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["p-try", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/p-try-npm-1.0.0-7373139e40-85739d77b3.zip/node_modules/p-try/", - "packageDependencies": [ - ["p-try", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-20983f3765.zip/node_modules/p-try/", - "packageDependencies": [ - ["p-try", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["package-json", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/package-json-npm-4.0.1-c058f67fbc-9d9be52897.zip/node_modules/package-json/", - "packageDependencies": [ - ["package-json", "npm:4.0.1"], - ["got", "npm:6.7.1"], - ["registry-auth-token", "npm:3.4.0"], - ["registry-url", "npm:3.1.0"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/package-json-npm-5.0.0-edcd1f3507-07f36af63f.zip/node_modules/package-json/", - "packageDependencies": [ - ["package-json", "npm:5.0.0"], - ["got", "npm:8.3.2"], - ["registry-auth-token", "npm:3.4.0"], - ["registry-url", "npm:3.1.0"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }], - ["npm:6.5.0", { - "packageLocation": "./.yarn/cache/package-json-npm-6.5.0-30e58237bb-3023e318de.zip/node_modules/package-json/", - "packageDependencies": [ - ["package-json", "npm:6.5.0"], - ["got", "npm:9.6.0"], - ["registry-auth-token", "npm:4.2.0"], - ["registry-url", "npm:5.1.0"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["pad-component", [ - ["npm:0.0.1", { - "packageLocation": "./.yarn/cache/pad-component-npm-0.0.1-96c929da6f-6d5450f07f.zip/node_modules/pad-component/", - "packageDependencies": [ - ["pad-component", "npm:0.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["paged-request", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/paged-request-npm-2.0.1-963829efc3-cee0b24630.zip/node_modules/paged-request/", - "packageDependencies": [ - ["paged-request", "npm:2.0.1"], - ["axios", "npm:0.18.1"] - ], - "linkType": "HARD", - }] - ]], - ["pako", [ - ["npm:1.0.11", { - "packageLocation": "./.yarn/cache/pako-npm-1.0.11-b8f1b69d3e-71c60150b6.zip/node_modules/pako/", - "packageDependencies": [ - ["pako", "npm:1.0.11"] - ], - "linkType": "HARD", - }] - ]], - ["parallel-transform", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/parallel-transform-npm-1.2.0-4985a87bcf-65170af2e7.zip/node_modules/parallel-transform/", - "packageDependencies": [ - ["parallel-transform", "npm:1.2.0"], - ["cyclist", "npm:1.0.1"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }] - ]], - ["param-case", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/param-case-npm-3.0.3-ab80ea2ba6-ef57facfaf.zip/node_modules/param-case/", - "packageDependencies": [ - ["param-case", "npm:3.0.3"], - ["dot-case", "npm:3.0.3"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["parent-module", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/parent-module-npm-1.0.1-1fae11b095-58714b9699.zip/node_modules/parent-module/", - "packageDependencies": [ - ["parent-module", "npm:1.0.1"], - ["callsites", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["parse-asn1", [ - ["npm:5.1.5", { - "packageLocation": "./.yarn/cache/parse-asn1-npm-5.1.5-6a9e9ce93e-7c76cbaf48.zip/node_modules/parse-asn1/", - "packageDependencies": [ - ["parse-asn1", "npm:5.1.5"], - ["asn1.js", "npm:4.10.1"], - ["browserify-aes", "npm:1.2.0"], - ["create-hash", "npm:1.2.0"], - ["evp_bytestokey", "npm:1.0.3"], - ["pbkdf2", "npm:3.1.1"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["parse-diff", [ - ["npm:0.7.1", { - "packageLocation": "./.yarn/cache/parse-diff-npm-0.7.1-4863d63834-fe1d259228.zip/node_modules/parse-diff/", - "packageDependencies": [ - ["parse-diff", "npm:0.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["parse-entities", [ - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/parse-entities-npm-1.2.2-6be249f6ff-66fb7cb7c8.zip/node_modules/parse-entities/", - "packageDependencies": [ - ["parse-entities", "npm:1.2.2"], - ["character-entities", "npm:1.2.4"], - ["character-entities-legacy", "npm:1.1.4"], - ["character-reference-invalid", "npm:1.1.4"], - ["is-alphanumerical", "npm:1.0.4"], - ["is-decimal", "npm:1.0.4"], - ["is-hexadecimal", "npm:1.0.4"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/parse-entities-npm-2.0.0-b7b4f46ff6-6a9213216b.zip/node_modules/parse-entities/", - "packageDependencies": [ - ["parse-entities", "npm:2.0.0"], - ["character-entities", "npm:1.2.4"], - ["character-entities-legacy", "npm:1.1.4"], - ["character-reference-invalid", "npm:1.1.4"], - ["is-alphanumerical", "npm:1.0.4"], - ["is-decimal", "npm:1.0.4"], - ["is-hexadecimal", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["parse-filepath", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/parse-filepath-npm-1.0.2-7e399b862a-e9843598f4.zip/node_modules/parse-filepath/", - "packageDependencies": [ - ["parse-filepath", "npm:1.0.2"], - ["is-absolute", "npm:1.0.0"], - ["map-cache", "npm:0.2.2"], - ["path-root", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["parse-git-config", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/parse-git-config-npm-2.0.3-20d0a2cb9f-a385d72bb0.zip/node_modules/parse-git-config/", - "packageDependencies": [ - ["parse-git-config", "npm:2.0.3"], - ["expand-tilde", "npm:2.0.2"], - ["git-config-path", "npm:1.0.1"], - ["ini", "npm:1.3.5"] - ], - "linkType": "HARD", - }] - ]], - ["parse-github-url", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/parse-github-url-npm-1.0.2-290c32ecbc-60fa1f025e.zip/node_modules/parse-github-url/", - "packageDependencies": [ - ["parse-github-url", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["parse-help", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/parse-help-npm-1.0.0-646f92e56e-498b9c3555.zip/node_modules/parse-help/", - "packageDependencies": [ - ["parse-help", "npm:1.0.0"], - ["execall", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["parse-json", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/parse-json-npm-2.2.0-f7c91e74a7-920582196a.zip/node_modules/parse-json/", - "packageDependencies": [ - ["parse-json", "npm:2.2.0"], - ["error-ex", "npm:1.3.2"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/parse-json-npm-4.0.0-a6f7771010-fa9d23708f.zip/node_modules/parse-json/", - "packageDependencies": [ - ["parse-json", "npm:4.0.0"], - ["error-ex", "npm:1.3.2"], - ["json-parse-better-errors", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/parse-json-npm-5.0.1-84159e1d7f-051a5ebaed.zip/node_modules/parse-json/", - "packageDependencies": [ - ["parse-json", "npm:5.0.1"], - ["@babel/code-frame", "npm:7.10.4"], - ["error-ex", "npm:1.3.2"], - ["json-parse-better-errors", "npm:1.0.2"], - ["lines-and-columns", "npm:1.1.6"] - ], - "linkType": "HARD", - }] - ]], - ["parse-link-header", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/parse-link-header-npm-1.0.1-d97d946e1f-c69a17e05e.zip/node_modules/parse-link-header/", - "packageDependencies": [ - ["parse-link-header", "npm:1.0.1"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["parse-passwd", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/parse-passwd-npm-1.0.0-ace6effa1d-e196edc373.zip/node_modules/parse-passwd/", - "packageDependencies": [ - ["parse-passwd", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["parse5", [ - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/parse5-npm-5.1.1-8e63d82cff-fad72ff501.zip/node_modules/parse5/", - "packageDependencies": [ - ["parse5", "npm:5.1.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/parse5-npm-6.0.1-70a35a494a-e312014edd.zip/node_modules/parse5/", - "packageDependencies": [ - ["parse5", "npm:6.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["parseurl", [ - ["npm:1.3.3", { - "packageLocation": "./.yarn/cache/parseurl-npm-1.3.3-1542397e00-52c9e86cb5.zip/node_modules/parseurl/", - "packageDependencies": [ - ["parseurl", "npm:1.3.3"] - ], - "linkType": "HARD", - }] - ]], - ["pascal-case", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/pascal-case-npm-3.1.1-1341da3441-56f66aea7f.zip/node_modules/pascal-case/", - "packageDependencies": [ - ["pascal-case", "npm:3.1.1"], - ["no-case", "npm:3.0.3"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["pascalcase", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/pascalcase-npm-0.1.1-d04964fcda-268a9dbf9c.zip/node_modules/pascalcase/", - "packageDependencies": [ - ["pascalcase", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["passwd-user", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/passwd-user-npm-3.0.0-3957b0554b-05f42ec691.zip/node_modules/passwd-user/", - "packageDependencies": [ - ["passwd-user", "npm:3.0.0"], - ["execa", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["path", [ - ["npm:0.12.7", { - "packageLocation": "./.yarn/cache/path-npm-0.12.7-bddabe2e86-0e2d3342ca.zip/node_modules/path/", - "packageDependencies": [ - ["path", "npm:0.12.7"], - ["process", "npm:0.11.10"], - ["util", "npm:0.10.4"] - ], - "linkType": "HARD", - }] - ]], - ["path-browserify", [ - ["npm:0.0.1", { - "packageLocation": "./.yarn/cache/path-browserify-npm-0.0.1-bb8b2a97b1-b7be4bcc03.zip/node_modules/path-browserify/", - "packageDependencies": [ - ["path-browserify", "npm:0.0.1"] - ], - "linkType": "HARD", - }], - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/path-browserify-npm-1.0.1-f975d99a99-45bb738917.zip/node_modules/path-browserify/", - "packageDependencies": [ - ["path-browserify", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["path-dirname", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/path-dirname-npm-1.0.2-d158cba006-4af73745fd.zip/node_modules/path-dirname/", - "packageDependencies": [ - ["path-dirname", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["path-exists", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/path-exists-npm-2.1.0-be4aa2cccc-71664885c5.zip/node_modules/path-exists/", - "packageDependencies": [ - ["path-exists", "npm:2.1.0"], - ["pinkie-promise", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/path-exists-npm-3.0.0-e80371aa68-09683e92ba.zip/node_modules/path-exists/", - "packageDependencies": [ - ["path-exists", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-6ab15000c5.zip/node_modules/path-exists/", - "packageDependencies": [ - ["path-exists", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["path-is-absolute", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-907e1e3e6a.zip/node_modules/path-is-absolute/", - "packageDependencies": [ - ["path-is-absolute", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["path-is-inside", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/path-is-inside-npm-1.0.2-7dd0711668-9c1841199d.zip/node_modules/path-is-inside/", - "packageDependencies": [ - ["path-is-inside", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["path-key", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/path-key-npm-2.0.1-b1a971833d-7dc807a2ba.zip/node_modules/path-key/", - "packageDependencies": [ - ["path-key", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/path-key-npm-3.1.1-0e66ea8321-e44aa3ca9f.zip/node_modules/path-key/", - "packageDependencies": [ - ["path-key", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["path-parse", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/path-parse-npm-1.0.6-4a4c90546c-2eee4b93fb.zip/node_modules/path-parse/", - "packageDependencies": [ - ["path-parse", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["path-root", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/path-root-npm-0.1.1-624088cb93-ccf11d9c9b.zip/node_modules/path-root/", - "packageDependencies": [ - ["path-root", "npm:0.1.1"], - ["path-root-regex", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["path-root-regex", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/path-root-regex-npm-0.1.2-14181162e0-f301f42475.zip/node_modules/path-root-regex/", - "packageDependencies": [ - ["path-root-regex", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["path-to-regexp", [ - ["npm:0.1.7", { - "packageLocation": "./.yarn/cache/path-to-regexp-npm-0.1.7-2605347373-342fdb0ca4.zip/node_modules/path-to-regexp/", - "packageDependencies": [ - ["path-to-regexp", "npm:0.1.7"] - ], - "linkType": "HARD", - }] - ]], - ["path-type", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/path-type-npm-1.1.0-3949afd6c1-c6ac7d4c7d.zip/node_modules/path-type/", - "packageDependencies": [ - ["path-type", "npm:1.1.0"], - ["graceful-fs", "npm:4.2.4"], - ["pify", "npm:2.3.0"], - ["pinkie-promise", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/path-type-npm-3.0.0-252361a0eb-db700bfc22.zip/node_modules/path-type/", - "packageDependencies": [ - ["path-type", "npm:3.0.0"], - ["pify", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/path-type-npm-4.0.0-10d47fc86a-ef5835f2eb.zip/node_modules/path-type/", - "packageDependencies": [ - ["path-type", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["pbkdf2", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/pbkdf2-npm-3.1.1-bd4801f9ae-780dd6d50e.zip/node_modules/pbkdf2/", - "packageDependencies": [ - ["pbkdf2", "npm:3.1.1"], - ["create-hash", "npm:1.2.0"], - ["create-hmac", "npm:1.1.7"], - ["ripemd160", "npm:2.0.2"], - ["safe-buffer", "npm:5.1.2"], - ["sha.js", "npm:2.4.11"] - ], - "linkType": "HARD", - }] - ]], - ["performance-now", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-bb4ebed0b0.zip/node_modules/performance-now/", - "packageDependencies": [ - ["performance-now", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["picomatch", [ - ["npm:2.2.2", { - "packageLocation": "./.yarn/cache/picomatch-npm-2.2.2-1ce736a913-20fa75e0a5.zip/node_modules/picomatch/", - "packageDependencies": [ - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["pify", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/pify-npm-2.3.0-8b63310934-d5758aa570.zip/node_modules/pify/", - "packageDependencies": [ - ["pify", "npm:2.3.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/pify-npm-3.0.0-679ee405c8-18af2b2914.zip/node_modules/pify/", - "packageDependencies": [ - ["pify", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/pify-npm-4.0.1-062756097b-786486a8c9.zip/node_modules/pify/", - "packageDependencies": [ - ["pify", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["pinkie", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/pinkie-npm-2.0.4-cffce4fb09-2cb484c9da.zip/node_modules/pinkie/", - "packageDependencies": [ - ["pinkie", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["pinkie-promise", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/pinkie-promise-npm-2.0.1-095439b8c5-1e32e05ffd.zip/node_modules/pinkie-promise/", - "packageDependencies": [ - ["pinkie-promise", "npm:2.0.1"], - ["pinkie", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["pinpoint", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/pinpoint-npm-1.1.0-a6c03f2e6f-8e608a87b4.zip/node_modules/pinpoint/", - "packageDependencies": [ - ["pinpoint", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["pirates", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/pirates-npm-4.0.1-377058e8fc-21604008c3.zip/node_modules/pirates/", - "packageDependencies": [ - ["pirates", "npm:4.0.1"], - ["node-modules-regexp", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["pkg-dir", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/pkg-dir-npm-3.0.0-16d8d93783-f29a7d0134.zip/node_modules/pkg-dir/", - "packageDependencies": [ - ["pkg-dir", "npm:3.0.0"], - ["find-up", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-1956ebf3cf.zip/node_modules/pkg-dir/", - "packageDependencies": [ - ["pkg-dir", "npm:4.2.0"], - ["find-up", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["pkg-up", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/pkg-up-npm-2.0.0-d011ba70a4-0a8fcbebf0.zip/node_modules/pkg-up/", - "packageDependencies": [ - ["pkg-up", "npm:2.0.0"], - ["find-up", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["platform", [ - ["npm:1.3.3", { - "packageLocation": "./.yarn/cache/platform-npm-1.3.3-8ff4427764-5687db8747.zip/node_modules/platform/", - "packageDependencies": [ - ["platform", "npm:1.3.3"] - ], - "linkType": "HARD", - }], - ["npm:1.3.6", { - "packageLocation": "./.yarn/cache/platform-npm-1.3.6-8c3cef9352-d4d10d5a55.zip/node_modules/platform/", - "packageDependencies": [ - ["platform", "npm:1.3.6"] - ], - "linkType": "HARD", - }] - ]], - ["pluralize", [ - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/pluralize-npm-7.0.0-5e0212129c-d35d8aeda1.zip/node_modules/pluralize/", - "packageDependencies": [ - ["pluralize", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["pnp-webpack-plugin", [ - ["npm:1.6.4", { - "packageLocation": "./.yarn/cache/pnp-webpack-plugin-npm-1.6.4-c497046afc-39a484182f.zip/node_modules/pnp-webpack-plugin/", - "packageDependencies": [ - ["pnp-webpack-plugin", "npm:1.6.4"], - ["ts-pnp", "virtual:c497046afcbefb679e3fe12575088ec12205b913a36c3d158b27e7cd646d448426540ab27ba98e54ddb75b1ed97de7e3ce5dc0158c9ba4e76ce942c87e5d02d8#npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["posix-character-classes", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/posix-character-classes-npm-0.1.1-3e228a6e15-984f83c2d4.zip/node_modules/posix-character-classes/", - "packageDependencies": [ - ["posix-character-classes", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss", [ - ["npm:6.0.23", { - "packageLocation": "./.yarn/cache/postcss-npm-6.0.23-b0e5acc785-9b61abdfb3.zip/node_modules/postcss/", - "packageDependencies": [ - ["postcss", "npm:6.0.23"], - ["chalk", "npm:2.4.2"], - ["source-map", "npm:0.6.1"], - ["supports-color", "npm:5.5.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.21", { - "packageLocation": "./.yarn/cache/postcss-npm-7.0.21-08ff0a9f95-1c8617c220.zip/node_modules/postcss/", - "packageDependencies": [ - ["postcss", "npm:7.0.21"], - ["chalk", "npm:2.4.2"], - ["source-map", "npm:0.6.1"], - ["supports-color", "npm:6.1.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.29", { - "packageLocation": "./.yarn/cache/postcss-npm-7.0.29-00494e26cc-3ed5ba6746.zip/node_modules/postcss/", - "packageDependencies": [ - ["postcss", "npm:7.0.29"], - ["chalk", "npm:2.4.2"], - ["source-map", "npm:0.6.1"], - ["supports-color", "npm:6.1.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.32", { - "packageLocation": "./.yarn/cache/postcss-npm-7.0.32-437a119902-340f4f6ca6.zip/node_modules/postcss/", - "packageDependencies": [ - ["postcss", "npm:7.0.32"], - ["chalk", "npm:2.4.2"], - ["source-map", "npm:0.6.1"], - ["supports-color", "npm:6.1.0"] - ], - "linkType": "HARD", - }], - ["npm:8.1.7", { - "packageLocation": "./.yarn/cache/postcss-npm-8.1.7-55342317d6-45ebaeb281.zip/node_modules/postcss/", - "packageDependencies": [ - ["postcss", "npm:8.1.7"], - ["colorette", "npm:1.2.2"], - ["line-column", "npm:1.0.2"], - ["nanoid", "npm:3.1.23"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-calc", [ - ["npm:7.0.2", { - "packageLocation": "./.yarn/cache/postcss-calc-npm-7.0.2-64ab9fdb31-173aded9a2.zip/node_modules/postcss-calc/", - "packageDependencies": [ - ["postcss-calc", "npm:7.0.2"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:6.0.2"], - ["postcss-value-parser", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-colormin", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/postcss-colormin-npm-4.0.3-21265de8f1-c2632c38a6.zip/node_modules/postcss-colormin/", - "packageDependencies": [ - ["postcss-colormin", "npm:4.0.3"], - ["browserslist", "npm:4.13.0"], - ["color", "npm:3.1.2"], - ["has", "npm:1.0.3"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-convert-values", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-convert-values-npm-4.0.1-64ae54995a-8fc4a78787.zip/node_modules/postcss-convert-values/", - "packageDependencies": [ - ["postcss-convert-values", "npm:4.0.1"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-discard-comments", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-discard-comments-npm-4.0.2-09a2a33168-7b357a3a4b.zip/node_modules/postcss-discard-comments/", - "packageDependencies": [ - ["postcss-discard-comments", "npm:4.0.2"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-discard-duplicates", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-discard-duplicates-npm-4.0.2-075a69a9cf-128342e2b9.zip/node_modules/postcss-discard-duplicates/", - "packageDependencies": [ - ["postcss-discard-duplicates", "npm:4.0.2"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-discard-empty", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-discard-empty-npm-4.0.1-59a5c13419-f06a00331c.zip/node_modules/postcss-discard-empty/", - "packageDependencies": [ - ["postcss-discard-empty", "npm:4.0.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-discard-overridden", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-discard-overridden-npm-4.0.1-c88fad5093-be24bca265.zip/node_modules/postcss-discard-overridden/", - "packageDependencies": [ - ["postcss-discard-overridden", "npm:4.0.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-functions", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/postcss-functions-npm-3.0.0-3708965e5e-e73d086194.zip/node_modules/postcss-functions/", - "packageDependencies": [ - ["postcss-functions", "npm:3.0.0"], - ["glob", "npm:7.1.6"], - ["object-assign", "npm:4.1.1"], - ["postcss", "npm:6.0.23"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-import", [ - ["npm:12.0.1", { - "packageLocation": "./.yarn/cache/postcss-import-npm-12.0.1-1108779ed3-4495dba068.zip/node_modules/postcss-import/", - "packageDependencies": [ - ["postcss-import", "npm:12.0.1"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"], - ["read-cache", "npm:1.0.0"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-js", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/postcss-js-npm-2.0.3-591dbf049f-1adfa411c9.zip/node_modules/postcss-js/", - "packageDependencies": [ - ["postcss-js", "npm:2.0.3"], - ["camelcase-css", "npm:2.0.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-load-config", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/postcss-load-config-npm-3.0.1-c83e0dec3f-e71f181552.zip/node_modules/postcss-load-config/", - "packageDependencies": [ - ["postcss-load-config", "npm:3.0.1"], - ["cosmiconfig", "npm:7.0.0"], - ["import-cwd", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-merge-longhand", [ - ["npm:4.0.11", { - "packageLocation": "./.yarn/cache/postcss-merge-longhand-npm-4.0.11-a4de769005-f6ae3d8f2b.zip/node_modules/postcss-merge-longhand/", - "packageDependencies": [ - ["postcss-merge-longhand", "npm:4.0.11"], - ["css-color-names", "npm:0.0.4"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"], - ["stylehacks", "npm:4.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-merge-rules", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/postcss-merge-rules-npm-4.0.3-73bf0c183e-1890781711.zip/node_modules/postcss-merge-rules/", - "packageDependencies": [ - ["postcss-merge-rules", "npm:4.0.3"], - ["browserslist", "npm:4.13.0"], - ["caniuse-api", "npm:3.0.0"], - ["cssnano-util-same-parent", "npm:4.0.1"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:3.1.2"], - ["vendors", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-minify-font-values", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-minify-font-values-npm-4.0.2-e8107d3a7f-9fc541821f.zip/node_modules/postcss-minify-font-values/", - "packageDependencies": [ - ["postcss-minify-font-values", "npm:4.0.2"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-minify-gradients", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-minify-gradients-npm-4.0.2-d5647bcf0b-4c54f4fa49.zip/node_modules/postcss-minify-gradients/", - "packageDependencies": [ - ["postcss-minify-gradients", "npm:4.0.2"], - ["cssnano-util-get-arguments", "npm:4.0.0"], - ["is-color-stop", "npm:1.1.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-minify-params", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-minify-params-npm-4.0.2-c449dd1044-dbcb82b7b1.zip/node_modules/postcss-minify-params/", - "packageDependencies": [ - ["postcss-minify-params", "npm:4.0.2"], - ["alphanum-sort", "npm:1.0.2"], - ["browserslist", "npm:4.13.0"], - ["cssnano-util-get-arguments", "npm:4.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"], - ["uniqs", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-minify-selectors", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-minify-selectors-npm-4.0.2-16f6851911-8fde92b556.zip/node_modules/postcss-minify-selectors/", - "packageDependencies": [ - ["postcss-minify-selectors", "npm:4.0.2"], - ["alphanum-sort", "npm:1.0.2"], - ["has", "npm:1.0.3"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:3.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-modules-extract-imports", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/postcss-modules-extract-imports-npm-2.0.0-da9714d21f-82e5932581.zip/node_modules/postcss-modules-extract-imports/", - "packageDependencies": [ - ["postcss-modules-extract-imports", "npm:2.0.0"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-modules-local-by-default", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/postcss-modules-local-by-default-npm-3.0.3-c3456a1d54-6d34b3b1dc.zip/node_modules/postcss-modules-local-by-default/", - "packageDependencies": [ - ["postcss-modules-local-by-default", "npm:3.0.3"], - ["icss-utils", "npm:4.1.1"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:6.0.2"], - ["postcss-value-parser", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-modules-scope", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/postcss-modules-scope-npm-2.2.0-e243a2b896-c560d3aa7b.zip/node_modules/postcss-modules-scope/", - "packageDependencies": [ - ["postcss-modules-scope", "npm:2.2.0"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:6.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-modules-values", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/postcss-modules-values-npm-3.0.0-bbe8110e5b-01dc4ea51e.zip/node_modules/postcss-modules-values/", - "packageDependencies": [ - ["postcss-modules-values", "npm:3.0.0"], - ["icss-utils", "npm:4.1.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-nested", [ - ["npm:4.2.3", { - "packageLocation": "./.yarn/cache/postcss-nested-npm-4.2.3-1bb9fea232-73b9e0115c.zip/node_modules/postcss-nested/", - "packageDependencies": [ - ["postcss-nested", "npm:4.2.3"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:6.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-charset", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-normalize-charset-npm-4.0.1-c29816bace-4e40b321c4.zip/node_modules/postcss-normalize-charset/", - "packageDependencies": [ - ["postcss-normalize-charset", "npm:4.0.1"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-display-values", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-normalize-display-values-npm-4.0.2-c0f29897ad-4bd5952f1c.zip/node_modules/postcss-normalize-display-values/", - "packageDependencies": [ - ["postcss-normalize-display-values", "npm:4.0.2"], - ["cssnano-util-get-match", "npm:4.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-positions", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-normalize-positions-npm-4.0.2-eb62f7b2e3-9d7d79703a.zip/node_modules/postcss-normalize-positions/", - "packageDependencies": [ - ["postcss-normalize-positions", "npm:4.0.2"], - ["cssnano-util-get-arguments", "npm:4.0.0"], - ["has", "npm:1.0.3"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-repeat-style", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-normalize-repeat-style-npm-4.0.2-b67bc11e2b-dcb89339fd.zip/node_modules/postcss-normalize-repeat-style/", - "packageDependencies": [ - ["postcss-normalize-repeat-style", "npm:4.0.2"], - ["cssnano-util-get-arguments", "npm:4.0.0"], - ["cssnano-util-get-match", "npm:4.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-string", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-normalize-string-npm-4.0.2-2fedcfab29-91116aa9c6.zip/node_modules/postcss-normalize-string/", - "packageDependencies": [ - ["postcss-normalize-string", "npm:4.0.2"], - ["has", "npm:1.0.3"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-timing-functions", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-normalize-timing-functions-npm-4.0.2-d0675e54df-92bca529aa.zip/node_modules/postcss-normalize-timing-functions/", - "packageDependencies": [ - ["postcss-normalize-timing-functions", "npm:4.0.2"], - ["cssnano-util-get-match", "npm:4.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-unicode", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-normalize-unicode-npm-4.0.1-9cc5bfcb9d-84714ba7c1.zip/node_modules/postcss-normalize-unicode/", - "packageDependencies": [ - ["postcss-normalize-unicode", "npm:4.0.1"], - ["browserslist", "npm:4.13.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-url", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-normalize-url-npm-4.0.1-2626c4ca1a-76d75e27e9.zip/node_modules/postcss-normalize-url/", - "packageDependencies": [ - ["postcss-normalize-url", "npm:4.0.1"], - ["is-absolute-url", "npm:2.1.0"], - ["normalize-url", "npm:3.3.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-normalize-whitespace", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-normalize-whitespace-npm-4.0.2-6339383b96-7093ca8313.zip/node_modules/postcss-normalize-whitespace/", - "packageDependencies": [ - ["postcss-normalize-whitespace", "npm:4.0.2"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-ordered-values", [ - ["npm:4.1.2", { - "packageLocation": "./.yarn/cache/postcss-ordered-values-npm-4.1.2-7eac60699d-6f39464145.zip/node_modules/postcss-ordered-values/", - "packageDependencies": [ - ["postcss-ordered-values", "npm:4.1.2"], - ["cssnano-util-get-arguments", "npm:4.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-reduce-initial", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/postcss-reduce-initial-npm-4.0.3-01cc02f1f4-ed276a8208.zip/node_modules/postcss-reduce-initial/", - "packageDependencies": [ - ["postcss-reduce-initial", "npm:4.0.3"], - ["browserslist", "npm:4.13.0"], - ["caniuse-api", "npm:3.0.0"], - ["has", "npm:1.0.3"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-reduce-transforms", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-reduce-transforms-npm-4.0.2-129de8fec9-2bf993ff44.zip/node_modules/postcss-reduce-transforms/", - "packageDependencies": [ - ["postcss-reduce-transforms", "npm:4.0.2"], - ["cssnano-util-get-match", "npm:4.0.0"], - ["has", "npm:1.0.3"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-safe-parser", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-safe-parser-npm-4.0.2-d1aff2c5bb-3f7f1b83f1.zip/node_modules/postcss-safe-parser/", - "packageDependencies": [ - ["postcss-safe-parser", "npm:4.0.2"], - ["postcss", "npm:7.0.32"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-selector-parser", [ - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-3.1.2-33bf16ea9d-021ffdeef1.zip/node_modules/postcss-selector-parser/", - "packageDependencies": [ - ["postcss-selector-parser", "npm:3.1.2"], - ["dot-prop", "npm:5.2.0"], - ["indexes-of", "npm:1.0.1"], - ["uniq", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.2", { - "packageLocation": "./.yarn/cache/postcss-selector-parser-npm-6.0.2-591ff5e868-0c8bec00e9.zip/node_modules/postcss-selector-parser/", - "packageDependencies": [ - ["postcss-selector-parser", "npm:6.0.2"], - ["cssesc", "npm:3.0.0"], - ["indexes-of", "npm:1.0.1"], - ["uniq", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-svgo", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/postcss-svgo-npm-4.0.2-5585d65908-a2a6e324fc.zip/node_modules/postcss-svgo/", - "packageDependencies": [ - ["postcss-svgo", "npm:4.0.2"], - ["is-svg", "npm:3.0.0"], - ["postcss", "npm:7.0.32"], - ["postcss-value-parser", "npm:3.3.1"], - ["svgo", "npm:1.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-unique-selectors", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/postcss-unique-selectors-npm-4.0.1-dde8d7eda6-1f1fdc1086.zip/node_modules/postcss-unique-selectors/", - "packageDependencies": [ - ["postcss-unique-selectors", "npm:4.0.1"], - ["alphanum-sort", "npm:1.0.2"], - ["postcss", "npm:7.0.32"], - ["uniqs", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["postcss-value-parser", [ - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/postcss-value-parser-npm-3.3.1-24ecbb1b05-834603f6bd.zip/node_modules/postcss-value-parser/", - "packageDependencies": [ - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/postcss-value-parser-npm-4.1.0-4620e3e849-7083140388.zip/node_modules/postcss-value-parser/", - "packageDependencies": [ - ["postcss-value-parser", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["prebuild-install", [ - ["npm:6.1.2", { - "packageLocation": "./.yarn/cache/prebuild-install-npm-6.1.2-5d6abe684c-680fe93dc9.zip/node_modules/prebuild-install/", - "packageDependencies": [ - ["prebuild-install", "npm:6.1.2"], - ["detect-libc", "npm:1.0.3"], - ["expand-template", "npm:2.0.3"], - ["github-from-package", "npm:0.0.0"], - ["minimist", "npm:1.2.5"], - ["mkdirp-classic", "npm:0.5.3"], - ["napi-build-utils", "npm:1.0.2"], - ["node-abi", "npm:2.26.0"], - ["noop-logger", "npm:0.1.1"], - ["npmlog", "npm:4.1.2"], - ["pump", "npm:3.0.0"], - ["rc", "npm:1.2.8"], - ["simple-get", "npm:3.1.0"], - ["tar-fs", "npm:2.1.1"], - ["tunnel-agent", "npm:0.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["prelude-ls", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-189c969c92.zip/node_modules/prelude-ls/", - "packageDependencies": [ - ["prelude-ls", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["prepend-http", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/prepend-http-npm-1.0.4-cd78a41247-f723f34a23.zip/node_modules/prepend-http/", - "packageDependencies": [ - ["prepend-http", "npm:1.0.4"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/prepend-http-npm-2.0.0-e1fc4332f2-d39325775a.zip/node_modules/prepend-http/", - "packageDependencies": [ - ["prepend-http", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["prettier", [ - ["npm:2.0.5", { - "packageLocation": "./.yarn/cache/prettier-npm-2.0.5-f0ee4e15ce-d249d89361.zip/node_modules/prettier/", - "packageDependencies": [ - ["prettier", "npm:2.0.5"] - ], - "linkType": "HARD", - }], - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/prettier-npm-2.2.1-e0670992f8-92c6c9f4b8.zip/node_modules/prettier/", - "packageDependencies": [ - ["prettier", "npm:2.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["pretty-bytes", [ - ["npm:5.3.0", { - "packageLocation": "./.yarn/cache/pretty-bytes-npm-5.3.0-d118630c4c-ecc6b1670f.zip/node_modules/pretty-bytes/", - "packageDependencies": [ - ["pretty-bytes", "npm:5.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["pretty-format", [ - ["npm:25.5.0", { - "packageLocation": "./.yarn/cache/pretty-format-npm-25.5.0-9def2180a5-f7cc631d51.zip/node_modules/pretty-format/", - "packageDependencies": [ - ["pretty-format", "npm:25.5.0"], - ["@jest/types", "npm:25.5.0"], - ["ansi-regex", "npm:5.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["react-is", "npm:16.13.1"] - ], - "linkType": "HARD", - }], - ["npm:26.1.0", { - "packageLocation": "./.yarn/cache/pretty-format-npm-26.1.0-aeda9ecba9-a1cd822bed.zip/node_modules/pretty-format/", - "packageDependencies": [ - ["pretty-format", "npm:26.1.0"], - ["@jest/types", "npm:26.1.0"], - ["ansi-regex", "npm:5.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["react-is", "npm:16.13.1"] - ], - "linkType": "HARD", - }], - ["npm:26.4.2", { - "packageLocation": "./.yarn/cache/pretty-format-npm-26.4.2-ab459511b0-06cdf6684c.zip/node_modules/pretty-format/", - "packageDependencies": [ - ["pretty-format", "npm:26.4.2"], - ["@jest/types", "npm:26.3.0"], - ["ansi-regex", "npm:5.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["react-is", "npm:16.13.1"] - ], - "linkType": "HARD", - }], - ["npm:26.6.2", { - "packageLocation": "./.yarn/cache/pretty-format-npm-26.6.2-6edfcf7149-5ad34fc128.zip/node_modules/pretty-format/", - "packageDependencies": [ - ["pretty-format", "npm:26.6.2"], - ["@jest/types", "npm:26.6.2"], - ["ansi-regex", "npm:5.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["react-is", "npm:17.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["pretty-hrtime", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/pretty-hrtime-npm-1.0.3-32fd75fcbd-efb9d4987e.zip/node_modules/pretty-hrtime/", - "packageDependencies": [ - ["pretty-hrtime", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["prettyjson", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/prettyjson-npm-1.2.1-045c44c3b6-ae6014aaec.zip/node_modules/prettyjson/", - "packageDependencies": [ - ["prettyjson", "npm:1.2.1"], - ["colors", "npm:1.4.0"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["process", [ - ["npm:0.11.10", { - "packageLocation": "./.yarn/cache/process-npm-0.11.10-aeb3b641ae-ed93a85e91.zip/node_modules/process/", - "packageDependencies": [ - ["process", "npm:0.11.10"] - ], - "linkType": "HARD", - }] - ]], - ["process-nextick-args", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-ddeb0f07d0.zip/node_modules/process-nextick-args/", - "packageDependencies": [ - ["process-nextick-args", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["progress", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/progress-npm-2.0.3-d1f87e2ac6-c46ef5a1de.zip/node_modules/progress/", - "packageDependencies": [ - ["progress", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["promise", [ - ["npm:7.3.1", { - "packageLocation": "./.yarn/cache/promise-npm-7.3.1-5d81d474c0-23267a4b07.zip/node_modules/promise/", - "packageDependencies": [ - ["promise", "npm:7.3.1"], - ["asap", "npm:2.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["promise-deferred", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/promise-deferred-npm-2.0.3-0b6eb75898-3135c0fe22.zip/node_modules/promise-deferred/", - "packageDependencies": [ - ["promise-deferred", "npm:2.0.3"], - ["promise", "npm:7.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["promise-inflight", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/", - "packageDependencies": [ - ["promise-inflight", "npm:1.0.1"] - ], - "linkType": "SOFT", - }], - ["virtual:0a601d06b9bb877e28dc3c2bf132b715e8c8db39518cb037053d3e960e698b842f18c4ad29c4dbd116bd79f31c565cbbc9741fa4573e2713fab36fd780658f57#npm:1.0.1", { - "packageLocation": "./.yarn/$$virtual/promise-inflight-virtual-679eed6a0f/0/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/", - "packageDependencies": [ - ["promise-inflight", "virtual:0a601d06b9bb877e28dc3c2bf132b715e8c8db39518cb037053d3e960e698b842f18c4ad29c4dbd116bd79f31c565cbbc9741fa4573e2713fab36fd780658f57#npm:1.0.1"], - ["bluebird", "npm:3.7.2"] - ], - "packagePeers": [ - "bluebird" - ], - "linkType": "HARD", - }], - ["virtual:6b13da0303336244e14777818f99c8dfaed4f4c27cb3f6393c3d5e11d3bb4a4a56fbe8ab1298b00979cc78a3a238458a7a0fab5133ad4c736a2296e23ba86eaa#npm:1.0.1", { - "packageLocation": "./.yarn/$$virtual/promise-inflight-virtual-95dc24eab8/0/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/", - "packageDependencies": [ - ["promise-inflight", "virtual:6b13da0303336244e14777818f99c8dfaed4f4c27cb3f6393c3d5e11d3bb4a4a56fbe8ab1298b00979cc78a3a238458a7a0fab5133ad4c736a2296e23ba86eaa#npm:1.0.1"], - ["bluebird", null] - ], - "packagePeers": [ - "bluebird" - ], - "linkType": "HARD", - }] - ]], - ["promiseback", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/promiseback-npm-2.0.3-1de6df4a1a-3c405394a4.zip/node_modules/promiseback/", - "packageDependencies": [ - ["promiseback", "npm:2.0.3"], - ["is-callable", "npm:1.2.0"], - ["promise-deferred", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["prompts", [ - ["npm:2.3.2", { - "packageLocation": "./.yarn/cache/prompts-npm-2.3.2-c8c33bdfcf-a910ba767e.zip/node_modules/prompts/", - "packageDependencies": [ - ["prompts", "npm:2.3.2"], - ["kleur", "npm:3.0.3"], - ["sisteransi", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["prop-types", [ - ["npm:15.7.2", { - "packageLocation": "./.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-a440dd406c.zip/node_modules/prop-types/", - "packageDependencies": [ - ["prop-types", "npm:15.7.2"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"], - ["react-is", "npm:16.13.1"] - ], - "linkType": "HARD", - }] - ]], - ["prop-types-exact", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/prop-types-exact-npm-1.2.0-4664209648-e88625c05e.zip/node_modules/prop-types-exact/", - "packageDependencies": [ - ["prop-types-exact", "npm:1.2.0"], - ["has", "npm:1.0.3"], - ["object.assign", "npm:4.1.0"], - ["reflect.ownkeys", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["property-expr", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/property-expr-npm-2.0.2-88f6aa5597-c31524b5c2.zip/node_modules/property-expr/", - "packageDependencies": [ - ["property-expr", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/property-expr-npm-2.0.4-dffd410058-fffa6ba8a2.zip/node_modules/property-expr/", - "packageDependencies": [ - ["property-expr", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["property-information", [ - ["npm:5.6.0", { - "packageLocation": "./.yarn/cache/property-information-npm-5.6.0-1322d29e0f-d069696456.zip/node_modules/property-information/", - "packageDependencies": [ - ["property-information", "npm:5.6.0"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["proto-list", [ - ["npm:1.2.4", { - "packageLocation": "./.yarn/cache/proto-list-npm-1.2.4-a96a43df28-e722a11c66.zip/node_modules/proto-list/", - "packageDependencies": [ - ["proto-list", "npm:1.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["proxy-addr", [ - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/proxy-addr-npm-2.0.6-8fafed6ca5-a7dcfd7025.zip/node_modules/proxy-addr/", - "packageDependencies": [ - ["proxy-addr", "npm:2.0.6"], - ["forwarded", "npm:0.1.2"], - ["ipaddr.js", "npm:1.9.1"] - ], - "linkType": "HARD", - }] - ]], - ["prr", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/prr-npm-1.0.1-608d442761-ac5c0986b4.zip/node_modules/prr/", - "packageDependencies": [ - ["prr", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["pseudomap", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/pseudomap-npm-1.0.2-0d0e40fee0-1ad1802645.zip/node_modules/pseudomap/", - "packageDependencies": [ - ["pseudomap", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["psl", [ - ["npm:1.8.0", { - "packageLocation": "./.yarn/cache/psl-npm-1.8.0-226099d70e-92d47c6257.zip/node_modules/psl/", - "packageDependencies": [ - ["psl", "npm:1.8.0"] - ], - "linkType": "HARD", - }] - ]], - ["pstree.remy", [ - ["npm:1.1.8", { - "packageLocation": "./.yarn/cache/pstree.remy-npm-1.1.8-2dd5d55de2-44bad8f697.zip/node_modules/pstree.remy/", - "packageDependencies": [ - ["pstree.remy", "npm:1.1.8"] - ], - "linkType": "HARD", - }] - ]], - ["public-encrypt", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/public-encrypt-npm-4.0.3-b25e19fada-85b1be24b5.zip/node_modules/public-encrypt/", - "packageDependencies": [ - ["public-encrypt", "npm:4.0.3"], - ["bn.js", "npm:4.11.9"], - ["browserify-rsa", "npm:4.0.1"], - ["create-hash", "npm:1.2.0"], - ["parse-asn1", "npm:5.1.5"], - ["randombytes", "npm:2.1.0"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["pump", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/pump-npm-2.0.1-05afac7fc4-25c657a8f6.zip/node_modules/pump/", - "packageDependencies": [ - ["pump", "npm:2.0.1"], - ["end-of-stream", "npm:1.4.4"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/pump-npm-3.0.0-0080bf6a7a-5464d5cf6c.zip/node_modules/pump/", - "packageDependencies": [ - ["pump", "npm:3.0.0"], - ["end-of-stream", "npm:1.4.4"], - ["once", "npm:1.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["pumpify", [ - ["npm:1.5.1", { - "packageLocation": "./.yarn/cache/pumpify-npm-1.5.1-b928bd877f-c143607284.zip/node_modules/pumpify/", - "packageDependencies": [ - ["pumpify", "npm:1.5.1"], - ["duplexify", "npm:3.7.1"], - ["inherits", "npm:2.0.4"], - ["pump", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["punycode", [ - ["npm:1.3.2", { - "packageLocation": "./.yarn/cache/punycode-npm-1.3.2-3727a84cea-e67fddacd8.zip/node_modules/punycode/", - "packageDependencies": [ - ["punycode", "npm:1.3.2"] - ], - "linkType": "HARD", - }], - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/punycode-npm-1.4.1-be4c23e6d2-5ce1e044ce.zip/node_modules/punycode/", - "packageDependencies": [ - ["punycode", "npm:1.4.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-0202dc191c.zip/node_modules/punycode/", - "packageDependencies": [ - ["punycode", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["pupa", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/pupa-npm-2.0.1-c848ed92ed-d03edb9fd7.zip/node_modules/pupa/", - "packageDependencies": [ - ["pupa", "npm:2.0.1"], - ["escape-goat", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["purgecss", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/purgecss-npm-2.3.0-5ea54d8f99-903351123a.zip/node_modules/purgecss/", - "packageDependencies": [ - ["purgecss", "npm:2.3.0"], - ["commander", "npm:5.1.0"], - ["glob", "npm:7.1.6"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:6.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["q", [ - ["npm:1.5.1", { - "packageLocation": "./.yarn/cache/q-npm-1.5.1-a28b3cfeaf-f610c1295a.zip/node_modules/q/", - "packageDependencies": [ - ["q", "npm:1.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["qs", [ - ["npm:6.5.2", { - "packageLocation": "./.yarn/cache/qs-npm-6.5.2-dbf9d8386b-fa0410eff2.zip/node_modules/qs/", - "packageDependencies": [ - ["qs", "npm:6.5.2"] - ], - "linkType": "HARD", - }], - ["npm:6.7.0", { - "packageLocation": "./.yarn/cache/qs-npm-6.7.0-15161a344c-8590470436.zip/node_modules/qs/", - "packageDependencies": [ - ["qs", "npm:6.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["query-string", [ - ["npm:4.3.4", { - "packageLocation": "./.yarn/cache/query-string-npm-4.3.4-58a0c63f6b-fcdbc2e760.zip/node_modules/query-string/", - "packageDependencies": [ - ["query-string", "npm:4.3.4"], - ["object-assign", "npm:4.1.1"], - ["strict-uri-encode", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/query-string-npm-5.1.1-86edac70d6-68d4ad519a.zip/node_modules/query-string/", - "packageDependencies": [ - ["query-string", "npm:5.1.1"], - ["decode-uri-component", "npm:0.2.0"], - ["object-assign", "npm:4.1.1"], - ["strict-uri-encode", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:6.13.8", { - "packageLocation": "./.yarn/cache/query-string-npm-6.13.8-77db681d8d-5d52ccd598.zip/node_modules/query-string/", - "packageDependencies": [ - ["query-string", "npm:6.13.8"], - ["decode-uri-component", "npm:0.2.0"], - ["split-on-first", "npm:1.1.0"], - ["strict-uri-encode", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["querystring", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/querystring-npm-0.2.0-421b870c92-1e76c51462.zip/node_modules/querystring/", - "packageDependencies": [ - ["querystring", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["querystring-es3", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/querystring-es3-npm-0.2.1-f4632f2760-3c388906aa.zip/node_modules/querystring-es3/", - "packageDependencies": [ - ["querystring-es3", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["quick-lru", [ - ["npm:5.1.1", { - "packageLocation": "./.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-fafb2b2fa1.zip/node_modules/quick-lru/", - "packageDependencies": [ - ["quick-lru", "npm:5.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["raf-schd", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/raf-schd-npm-4.0.2-65661014f3-28ad12b288.zip/node_modules/raf-schd/", - "packageDependencies": [ - ["raf-schd", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["ramda", [ - ["npm:0.27.0", { - "packageLocation": "./.yarn/cache/ramda-npm-0.27.0-0ac931b47f-27b2346803.zip/node_modules/ramda/", - "packageDependencies": [ - ["ramda", "npm:0.27.0"] - ], - "linkType": "HARD", - }] - ]], - ["randombytes", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/randombytes-npm-2.1.0-e3da76bccf-ede2693af0.zip/node_modules/randombytes/", - "packageDependencies": [ - ["randombytes", "npm:2.1.0"], - ["safe-buffer", "npm:5.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["randomfill", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/randomfill-npm-1.0.4-a08651a679-24658ce99e.zip/node_modules/randomfill/", - "packageDependencies": [ - ["randomfill", "npm:1.0.4"], - ["randombytes", "npm:2.1.0"], - ["safe-buffer", "npm:5.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["range-parser", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/range-parser-npm-1.2.1-1a470fa390-05074f5b23.zip/node_modules/range-parser/", - "packageDependencies": [ - ["range-parser", "npm:1.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["raw-body", [ - ["npm:2.4.0", { - "packageLocation": "./.yarn/cache/raw-body-npm-2.4.0-14d9d633af-46dc02f8b4.zip/node_modules/raw-body/", - "packageDependencies": [ - ["raw-body", "npm:2.4.0"], - ["bytes", "npm:3.1.0"], - ["http-errors", "npm:1.7.2"], - ["iconv-lite", "npm:0.4.24"], - ["unpipe", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.4.1", { - "packageLocation": "./.yarn/cache/raw-body-npm-2.4.1-e6e30ccf94-dc56e010d2.zip/node_modules/raw-body/", - "packageDependencies": [ - ["raw-body", "npm:2.4.1"], - ["bytes", "npm:3.1.0"], - ["http-errors", "npm:1.7.3"], - ["iconv-lite", "npm:0.4.24"], - ["unpipe", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["rc", [ - ["npm:1.2.8", { - "packageLocation": "./.yarn/cache/rc-npm-1.2.8-d6768ac936-ea2b7f7cee.zip/node_modules/rc/", - "packageDependencies": [ - ["rc", "npm:1.2.8"], - ["deep-extend", "npm:0.6.0"], - ["ini", "npm:1.3.5"], - ["minimist", "npm:1.2.5"], - ["strip-json-comments", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["react", [ - ["npm:16.13.1", { - "packageLocation": "./.yarn/cache/react-npm-16.13.1-56d408860d-13dcc9ba8a.zip/node_modules/react/", - "packageDependencies": [ - ["react", "npm:16.13.1"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"], - ["prop-types", "npm:15.7.2"] - ], - "linkType": "HARD", - }] - ]], - ["react-beautiful-dnd", [ - ["npm:11.0.5", { - "packageLocation": "./.yarn/cache/react-beautiful-dnd-npm-11.0.5-55b213a46a-1842c33e9b.zip/node_modules/react-beautiful-dnd/", - "packageDependencies": [ - ["react-beautiful-dnd", "npm:11.0.5"] - ], - "linkType": "SOFT", - }], - ["virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5", { - "packageLocation": "./.yarn/$$virtual/react-beautiful-dnd-virtual-81a9d4a08e/0/cache/react-beautiful-dnd-npm-11.0.5-55b213a46a-1842c33e9b.zip/node_modules/react-beautiful-dnd/", - "packageDependencies": [ - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["@babel/runtime-corejs2", "npm:7.10.5"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["css-box-model", "npm:1.2.1"], - ["memoize-one", "npm:5.1.1"], - ["raf-schd", "npm:4.0.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-redux", "virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:7.2.1"], - ["redux", "npm:4.0.5"], - ["tiny-invariant", "npm:1.1.0"], - ["use-memo-one", "virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:1.1.1"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "react-dom", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-color", [ - ["npm:2.18.1", { - "packageLocation": "./.yarn/cache/react-color-npm-2.18.1-7e5c5c6e72-554cea8690.zip/node_modules/react-color/", - "packageDependencies": [ - ["react-color", "npm:2.18.1"] - ], - "linkType": "SOFT", - }], - ["virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1", { - "packageLocation": "./.yarn/$$virtual/react-color-virtual-bec25d28c1/0/cache/react-color-npm-2.18.1-7e5c5c6e72-554cea8690.zip/node_modules/react-color/", - "packageDependencies": [ - ["react-color", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1"], - ["@icons/material", "virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:0.2.4"], - ["@types/react", "npm:16.9.43"], - ["lodash", "npm:4.17.19"], - ["material-colors", "npm:1.2.6"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["reactcss", "virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:1.2.3"], - ["tinycolor2", "npm:1.4.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-dismissible", [ - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/react-dismissible-npm-1.3.0-45018e4e4d-ba43017c57.zip/node_modules/react-dismissible/", - "packageDependencies": [ - ["react-dismissible", "npm:1.3.0"] - ], - "linkType": "SOFT", - }], - ["virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0", { - "packageLocation": "./.yarn/$$virtual/react-dismissible-virtual-7be465b29c/0/cache/react-dismissible-npm-1.3.0-45018e4e4d-ba43017c57.zip/node_modules/react-dismissible/", - "packageDependencies": [ - ["react-dismissible", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-dom", [ - ["npm:16.13.1", { - "packageLocation": "./.yarn/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/node_modules/react-dom/", - "packageDependencies": [ - ["react-dom", "npm:16.13.1"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1", { - "packageLocation": "./.yarn/$$virtual/react-dom-virtual-3b84bd6eb1/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/node_modules/react-dom/", - "packageDependencies": [ - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["@types/react", "npm:16.9.43"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["scheduler", "npm:0.19.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-dropzone", [ - ["npm:10.1.8", { - "packageLocation": "./.yarn/cache/react-dropzone-npm-10.1.8-6887f2728d-5409dadbae.zip/node_modules/react-dropzone/", - "packageDependencies": [ - ["react-dropzone", "npm:10.1.8"] - ], - "linkType": "SOFT", - }], - ["npm:11.2.0", { - "packageLocation": "./.yarn/cache/react-dropzone-npm-11.2.0-5ce6a56e47-1465815c25.zip/node_modules/react-dropzone/", - "packageDependencies": [ - ["react-dropzone", "npm:11.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8", { - "packageLocation": "./.yarn/$$virtual/react-dropzone-virtual-a105590c01/0/cache/react-dropzone-npm-10.1.8-6887f2728d-5409dadbae.zip/node_modules/react-dropzone/", - "packageDependencies": [ - ["react-dropzone", "virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8"], - ["@types/react", "npm:16.9.43"], - ["attr-accept", "npm:1.1.3"], - ["file-selector", "npm:0.1.12"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0", { - "packageLocation": "./.yarn/$$virtual/react-dropzone-virtual-105b248d4a/0/cache/react-dropzone-npm-11.2.0-5ce6a56e47-1465815c25.zip/node_modules/react-dropzone/", - "packageDependencies": [ - ["react-dropzone", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0"], - ["@types/react", "npm:16.9.43"], - ["attr-accept", "npm:2.2.2"], - ["file-selector", "npm:0.1.13"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-fast-compare", [ - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/react-fast-compare-npm-2.0.4-ab3f6356e2-4e4bfc3597.zip/node_modules/react-fast-compare/", - "packageDependencies": [ - ["react-fast-compare", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["react-final-form", [ - ["npm:6.5.1", { - "packageLocation": "./.yarn/cache/react-final-form-npm-6.5.1-58e075ed94-cc4c0f880a.zip/node_modules/react-final-form/", - "packageDependencies": [ - ["react-final-form", "npm:6.5.1"] - ], - "linkType": "SOFT", - }], - ["virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1", { - "packageLocation": "./.yarn/$$virtual/react-final-form-virtual-81fab93042/0/cache/react-final-form-npm-6.5.1-58e075ed94-cc4c0f880a.zip/node_modules/react-final-form/", - "packageDependencies": [ - ["react-final-form", "virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1"], - ["@babel/runtime", "npm:7.10.5"], - ["@types/final-form", null], - ["@types/react", "npm:16.9.43"], - ["final-form", "npm:4.20.1"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/final-form", - "@types/react", - "final-form", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-is", [ - ["npm:16.13.1", { - "packageLocation": "./.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-11bcf1267a.zip/node_modules/react-is/", - "packageDependencies": [ - ["react-is", "npm:16.13.1"] - ], - "linkType": "HARD", - }], - ["npm:17.0.1", { - "packageLocation": "./.yarn/cache/react-is-npm-17.0.1-876b80f7e5-5a83dfc78e.zip/node_modules/react-is/", - "packageDependencies": [ - ["react-is", "npm:17.0.1"] - ], - "linkType": "HARD", - }], - ["npm:17.0.2", { - "packageLocation": "./.yarn/cache/react-is-npm-17.0.2-091bbb8db6-3eff23f410.zip/node_modules/react-is/", - "packageDependencies": [ - ["react-is", "npm:17.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["react-markdown", [ - ["npm:4.3.1", { - "packageLocation": "./.yarn/cache/react-markdown-npm-4.3.1-9120cab586-89111d726b.zip/node_modules/react-markdown/", - "packageDependencies": [ - ["react-markdown", "npm:4.3.1"] - ], - "linkType": "SOFT", - }], - ["npm:5.0.3", { - "packageLocation": "./.yarn/cache/react-markdown-npm-5.0.3-657b4fa0b0-9e27eb9efd.zip/node_modules/react-markdown/", - "packageDependencies": [ - ["react-markdown", "npm:5.0.3"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1", { - "packageLocation": "./.yarn/$$virtual/react-markdown-virtual-4877d7180d/0/cache/react-markdown-npm-4.3.1-9120cab586-89111d726b.zip/node_modules/react-markdown/", - "packageDependencies": [ - ["react-markdown", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1"], - ["@types/react", "npm:16.9.43"], - ["html-to-react", "virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3"], - ["mdast-add-list-metadata", "npm:1.0.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["remark-parse", "npm:5.0.0"], - ["unified", "npm:6.2.0"], - ["unist-util-visit", "npm:1.4.1"], - ["xtend", "npm:4.0.2"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.0.3", { - "packageLocation": "./.yarn/$$virtual/react-markdown-virtual-b0ca6fd398/0/cache/react-markdown-npm-5.0.3-657b4fa0b0-9e27eb9efd.zip/node_modules/react-markdown/", - "packageDependencies": [ - ["react-markdown", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.0.3"], - ["@types/mdast", "npm:3.0.3"], - ["@types/react", "npm:16.9.43"], - ["@types/types__react", null], - ["@types/unist", "npm:2.0.3"], - ["html-to-react", "virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3"], - ["mdast-add-list-metadata", "npm:1.0.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["remark-parse", "npm:9.0.0"], - ["unified", "npm:9.2.1"], - ["unist-util-visit", "npm:2.0.3"], - ["xtend", "npm:4.0.2"] - ], - "packagePeers": [ - "@types/react", - "@types/types__react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["react-redux", [ - ["npm:7.2.1", { - "packageLocation": "./.yarn/cache/react-redux-npm-7.2.1-7c5f4a50c5-94ef2d0f38.zip/node_modules/react-redux/", - "packageDependencies": [ - ["react-redux", "npm:7.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:7.2.1", { - "packageLocation": "./.yarn/$$virtual/react-redux-virtual-d9c2a1027a/0/cache/react-redux-npm-7.2.1-7c5f4a50c5-94ef2d0f38.zip/node_modules/react-redux/", - "packageDependencies": [ - ["react-redux", "virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:7.2.1"], - ["@babel/runtime", "npm:7.10.5"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/react-native", null], - ["@types/redux", null], - ["hoist-non-react-statics", "npm:3.3.2"], - ["loose-envify", "npm:1.4.0"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["react-native", null], - ["redux", "npm:4.0.5"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react-native", - "@types/react", - "@types/redux", - "react-dom", - "react-native", - "react", - "redux" - ], - "linkType": "HARD", - }] - ]], - ["react-refresh", [ - ["npm:0.8.2", { - "packageLocation": "./.yarn/cache/react-refresh-npm-0.8.2-024837112c-8d9385ceaa.zip/node_modules/react-refresh/", - "packageDependencies": [ - ["react-refresh", "npm:0.8.2"] - ], - "linkType": "HARD", - }], - ["npm:0.8.3", { - "packageLocation": "./.yarn/cache/react-refresh-npm-0.8.3-9b3fb3900b-38f06df8e0.zip/node_modules/react-refresh/", - "packageDependencies": [ - ["react-refresh", "npm:0.8.3"] - ], - "linkType": "HARD", - }] - ]], - ["reactcss", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/reactcss-npm-1.2.3-16f7947bcd-90fcf85d80.zip/node_modules/reactcss/", - "packageDependencies": [ - ["reactcss", "npm:1.2.3"] - ], - "linkType": "SOFT", - }], - ["virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:1.2.3", { - "packageLocation": "./.yarn/$$virtual/reactcss-virtual-63aa30eb40/0/cache/reactcss-npm-1.2.3-16f7947bcd-90fcf85d80.zip/node_modules/reactcss/", - "packageDependencies": [ - ["reactcss", "virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:1.2.3"], - ["@types/react", "npm:16.9.43"], - ["lodash", "npm:4.17.19"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["read-cache", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/read-cache-npm-1.0.0-00fa89ed05-17a1996977.zip/node_modules/read-cache/", - "packageDependencies": [ - ["read-cache", "npm:1.0.0"], - ["pify", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["read-chunk", [ - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/read-chunk-npm-3.2.0-b6e9363152-789449861b.zip/node_modules/read-chunk/", - "packageDependencies": [ - ["read-chunk", "npm:3.2.0"], - ["pify", "npm:4.0.1"], - ["with-open-file", "npm:0.1.7"] - ], - "linkType": "HARD", - }] - ]], - ["read-pkg", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/read-pkg-npm-1.1.0-11237fa82f-01fdadf10e.zip/node_modules/read-pkg/", - "packageDependencies": [ - ["read-pkg", "npm:1.1.0"], - ["load-json-file", "npm:1.1.0"], - ["normalize-package-data", "npm:2.5.0"], - ["path-type", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/read-pkg-npm-3.0.0-41471436cb-8cc577b41d.zip/node_modules/read-pkg/", - "packageDependencies": [ - ["read-pkg", "npm:3.0.0"], - ["load-json-file", "npm:4.0.0"], - ["normalize-package-data", "npm:2.5.0"], - ["path-type", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-641102f095.zip/node_modules/read-pkg/", - "packageDependencies": [ - ["read-pkg", "npm:5.2.0"], - ["@types/normalize-package-data", "npm:2.4.0"], - ["normalize-package-data", "npm:2.5.0"], - ["parse-json", "npm:5.0.1"], - ["type-fest", "npm:0.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["read-pkg-up", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/read-pkg-up-npm-1.0.1-5b23d2a7ab-05a0d7fd65.zip/node_modules/read-pkg-up/", - "packageDependencies": [ - ["read-pkg-up", "npm:1.0.1"], - ["find-up", "npm:1.1.2"], - ["read-pkg", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/read-pkg-up-npm-4.0.0-e6ce0004bd-e611538e09.zip/node_modules/read-pkg-up/", - "packageDependencies": [ - ["read-pkg-up", "npm:4.0.0"], - ["find-up", "npm:3.0.0"], - ["read-pkg", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/read-pkg-up-npm-5.0.0-857897cfb1-119e977712.zip/node_modules/read-pkg-up/", - "packageDependencies": [ - ["read-pkg-up", "npm:5.0.0"], - ["find-up", "npm:3.0.0"], - ["read-pkg", "npm:5.2.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.1", { - "packageLocation": "./.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-b8f97cc1f8.zip/node_modules/read-pkg-up/", - "packageDependencies": [ - ["read-pkg-up", "npm:7.0.1"], - ["find-up", "npm:4.1.0"], - ["read-pkg", "npm:5.2.0"], - ["type-fest", "npm:0.8.1"] - ], - "linkType": "HARD", - }] - ]], - ["readable-stream", [ - ["npm:2.3.7", { - "packageLocation": "./.yarn/cache/readable-stream-npm-2.3.7-77b22a9818-6e38265606.zip/node_modules/readable-stream/", - "packageDependencies": [ - ["readable-stream", "npm:2.3.7"], - ["core-util-is", "npm:1.0.2"], - ["inherits", "npm:2.0.4"], - ["isarray", "npm:1.0.0"], - ["process-nextick-args", "npm:2.0.1"], - ["safe-buffer", "npm:5.1.2"], - ["string_decoder", "npm:1.1.1"], - ["util-deprecate", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:3.6.0", { - "packageLocation": "./.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-f178b1daa8.zip/node_modules/readable-stream/", - "packageDependencies": [ - ["readable-stream", "npm:3.6.0"], - ["inherits", "npm:2.0.4"], - ["string_decoder", "npm:1.3.0"], - ["util-deprecate", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["readdirp", [ - ["npm:2.2.1", { - "packageLocation": "./.yarn/cache/readdirp-npm-2.2.1-33cb5df2b8-00b5209ee5.zip/node_modules/readdirp/", - "packageDependencies": [ - ["readdirp", "npm:2.2.1"], - ["graceful-fs", "npm:4.2.4"], - ["micromatch", "npm:3.1.10"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }], - ["npm:3.4.0", { - "packageLocation": "./.yarn/cache/readdirp-npm-3.4.0-503e0a2772-0159f43eb0.zip/node_modules/readdirp/", - "packageDependencies": [ - ["readdirp", "npm:3.4.0"], - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }], - ["npm:3.5.0", { - "packageLocation": "./.yarn/cache/readdirp-npm-3.5.0-a1b1568d32-a64fe56069.zip/node_modules/readdirp/", - "packageDependencies": [ - ["readdirp", "npm:3.5.0"], - ["picomatch", "npm:2.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["readline-sync", [ - ["npm:1.4.10", { - "packageLocation": "./.yarn/cache/readline-sync-npm-1.4.10-6809f52ca7-4746ee66b7.zip/node_modules/readline-sync/", - "packageDependencies": [ - ["readline-sync", "npm:1.4.10"] - ], - "linkType": "HARD", - }] - ]], - ["rechoir", [ - ["npm:0.6.2", { - "packageLocation": "./.yarn/cache/rechoir-npm-0.6.2-0df5f171ec-6646a6bce7.zip/node_modules/rechoir/", - "packageDependencies": [ - ["rechoir", "npm:0.6.2"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"] - ], - "linkType": "HARD", - }] - ]], - ["redent", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/redent-npm-1.0.0-b4da60611f-961d06c069.zip/node_modules/redent/", - "packageDependencies": [ - ["redent", "npm:1.0.0"], - ["indent-string", "npm:2.1.0"], - ["strip-indent", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["reduce-css-calc", [ - ["npm:2.1.7", { - "packageLocation": "./.yarn/cache/reduce-css-calc-npm-2.1.7-58412738a1-c1cbf51e64.zip/node_modules/reduce-css-calc/", - "packageDependencies": [ - ["reduce-css-calc", "npm:2.1.7"], - ["css-unit-converter", "npm:1.1.2"], - ["postcss-value-parser", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["redux", [ - ["npm:4.0.5", { - "packageLocation": "./.yarn/cache/redux-npm-4.0.5-aca53e621f-112739c2fb.zip/node_modules/redux/", - "packageDependencies": [ - ["redux", "npm:4.0.5"], - ["loose-envify", "npm:1.4.0"], - ["symbol-observable", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["reflect.ownkeys", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/reflect.ownkeys-npm-0.2.0-e3d8f6e4f0-580e5d1e7f.zip/node_modules/reflect.ownkeys/", - "packageDependencies": [ - ["reflect.ownkeys", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["regenerate", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/regenerate-npm-1.4.1-a91e5d9564-67fe7ea332.zip/node_modules/regenerate/", - "packageDependencies": [ - ["regenerate", "npm:1.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["regenerate-unicode-properties", [ - ["npm:8.2.0", { - "packageLocation": "./.yarn/cache/regenerate-unicode-properties-npm-8.2.0-0e54c6463c-afe83304fb.zip/node_modules/regenerate-unicode-properties/", - "packageDependencies": [ - ["regenerate-unicode-properties", "npm:8.2.0"], - ["regenerate", "npm:1.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["regenerator-runtime", [ - ["npm:0.13.7", { - "packageLocation": "./.yarn/cache/regenerator-runtime-npm-0.13.7-41bcbe64ea-6ef567c662.zip/node_modules/regenerator-runtime/", - "packageDependencies": [ - ["regenerator-runtime", "npm:0.13.7"] - ], - "linkType": "HARD", - }] - ]], - ["regenerator-transform", [ - ["npm:0.14.5", { - "packageLocation": "./.yarn/cache/regenerator-transform-npm-0.14.5-40045884e9-ed07c2c1d0.zip/node_modules/regenerator-transform/", - "packageDependencies": [ - ["regenerator-transform", "npm:0.14.5"], - ["@babel/runtime", "npm:7.10.5"] - ], - "linkType": "HARD", - }] - ]], - ["regex-not", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3d6d95b4fd.zip/node_modules/regex-not/", - "packageDependencies": [ - ["regex-not", "npm:1.0.2"], - ["extend-shallow", "npm:3.0.2"], - ["safe-regex", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["regex-parser", [ - ["npm:2.2.10", { - "packageLocation": "./.yarn/cache/regex-parser-npm-2.2.10-083ae4dcd6-b8c026e9a7.zip/node_modules/regex-parser/", - "packageDependencies": [ - ["regex-parser", "npm:2.2.10"] - ], - "linkType": "HARD", - }], - ["npm:2.2.11", { - "packageLocation": "./.yarn/cache/regex-parser-npm-2.2.11-946d73634f-434f82a8ce.zip/node_modules/regex-parser/", - "packageDependencies": [ - ["regex-parser", "npm:2.2.11"] - ], - "linkType": "HARD", - }] - ]], - ["regexpp", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/regexpp-npm-2.0.1-ac47f2bc1e-e537f6c1b5.zip/node_modules/regexpp/", - "packageDependencies": [ - ["regexpp", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["regexpu-core", [ - ["npm:4.7.0", { - "packageLocation": "./.yarn/cache/regexpu-core-npm-4.7.0-13146d273f-8947f4c4ac.zip/node_modules/regexpu-core/", - "packageDependencies": [ - ["regexpu-core", "npm:4.7.0"], - ["regenerate", "npm:1.4.1"], - ["regenerate-unicode-properties", "npm:8.2.0"], - ["regjsgen", "npm:0.5.2"], - ["regjsparser", "npm:0.6.4"], - ["unicode-match-property-ecmascript", "npm:1.0.4"], - ["unicode-match-property-value-ecmascript", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["registry-auth-token", [ - ["npm:3.4.0", { - "packageLocation": "./.yarn/cache/registry-auth-token-npm-3.4.0-8d37d49151-a5f3e8288f.zip/node_modules/registry-auth-token/", - "packageDependencies": [ - ["registry-auth-token", "npm:3.4.0"], - ["rc", "npm:1.2.8"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/registry-auth-token-npm-4.2.0-0aada8f019-bbdcbe2210.zip/node_modules/registry-auth-token/", - "packageDependencies": [ - ["registry-auth-token", "npm:4.2.0"], - ["rc", "npm:1.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["registry-url", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/registry-url-npm-3.1.0-68f1c80875-f0bdf9be94.zip/node_modules/registry-url/", - "packageDependencies": [ - ["registry-url", "npm:3.1.0"], - ["rc", "npm:1.2.8"] - ], - "linkType": "HARD", - }], - ["npm:5.1.0", { - "packageLocation": "./.yarn/cache/registry-url-npm-5.1.0-f58d0ca7ff-50802a1d43.zip/node_modules/registry-url/", - "packageDependencies": [ - ["registry-url", "npm:5.1.0"], - ["rc", "npm:1.2.8"] - ], - "linkType": "HARD", - }] - ]], - ["regjsgen", [ - ["npm:0.5.2", { - "packageLocation": "./.yarn/cache/regjsgen-npm-0.5.2-4c9c408ab2-629afab3d9.zip/node_modules/regjsgen/", - "packageDependencies": [ - ["regjsgen", "npm:0.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["regjsparser", [ - ["npm:0.6.4", { - "packageLocation": "./.yarn/cache/regjsparser-npm-0.6.4-d22abbbbd8-cf7838462e.zip/node_modules/regjsparser/", - "packageDependencies": [ - ["regjsparser", "npm:0.6.4"], - ["jsesc", "npm:0.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["rehype-format", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/rehype-format-npm-3.1.0-dcfefbae36-f1fb095521.zip/node_modules/rehype-format/", - "packageDependencies": [ - ["rehype-format", "npm:3.1.0"], - ["hast-util-embedded", "npm:1.0.5"], - ["hast-util-is-element", "npm:1.1.0"], - ["hast-util-phrasing", "npm:1.0.5"], - ["hast-util-whitespace", "npm:1.0.4"], - ["html-whitespace-sensitive-tag-names", "npm:1.0.3"], - ["rehype-minify-whitespace", "npm:4.0.4"], - ["repeat-string", "npm:1.6.1"], - ["unist-util-visit-parents", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["rehype-minify-whitespace", [ - ["npm:4.0.4", { - "packageLocation": "./.yarn/cache/rehype-minify-whitespace-npm-4.0.4-cd05066695-696189f66a.zip/node_modules/rehype-minify-whitespace/", - "packageDependencies": [ - ["rehype-minify-whitespace", "npm:4.0.4"], - ["collapse-white-space", "npm:1.0.6"], - ["hast-util-embedded", "npm:1.0.5"], - ["hast-util-is-element", "npm:1.1.0"], - ["hast-util-whitespace", "npm:1.0.4"], - ["unist-util-is", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["rehype-stringify", [ - ["npm:8.0.0", { - "packageLocation": "./.yarn/cache/rehype-stringify-npm-8.0.0-1df3d59817-c1d8472fc0.zip/node_modules/rehype-stringify/", - "packageDependencies": [ - ["rehype-stringify", "npm:8.0.0"], - ["hast-util-to-html", "npm:7.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["relay-compiler", [ - ["npm:10.0.0", { - "packageLocation": "./.yarn/cache/relay-compiler-npm-10.0.0-564a878bc1-8f420f3d96.zip/node_modules/relay-compiler/", - "packageDependencies": [ - ["relay-compiler", "npm:10.0.0"] - ], - "linkType": "SOFT", - }], - ["npm:10.0.1", { - "packageLocation": "./.yarn/cache/relay-compiler-npm-10.0.1-65fac1eea1-f9caf9bd1d.zip/node_modules/relay-compiler/", - "packageDependencies": [ - ["relay-compiler", "npm:10.0.1"] - ], - "linkType": "SOFT", - }], - ["virtual:0d29aff9ae5afdd8990e2be771603920ab2d59b5164cd84e0f85b11a3f75d71ccd9baea28e8b2d3b8333f6ddd85a9edc4c9ba67f3127625e4af946bf37dd49d9#npm:10.0.1", { - "packageLocation": "./.yarn/$$virtual/relay-compiler-virtual-96d868f3f2/0/cache/relay-compiler-npm-10.0.1-65fac1eea1-f9caf9bd1d.zip/node_modules/relay-compiler/", - "packageDependencies": [ - ["relay-compiler", "virtual:0d29aff9ae5afdd8990e2be771603920ab2d59b5164cd84e0f85b11a3f75d71ccd9baea28e8b2d3b8333f6ddd85a9edc4c9ba67f3127625e4af946bf37dd49d9#npm:10.0.1"], - ["@babel/core", "npm:7.10.5"], - ["@babel/generator", "npm:7.10.5"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/runtime", "npm:7.10.5"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["@types/graphql", null], - ["babel-preset-fbjs", "virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0"], - ["chalk", "npm:4.1.0"], - ["fb-watchman", "npm:2.0.1"], - ["fbjs", "npm:1.0.0"], - ["glob", "npm:7.1.6"], - ["graphql", "npm:15.3.0"], - ["immutable", "npm:3.7.6"], - ["nullthrows", "npm:1.1.1"], - ["relay-runtime", "npm:10.0.1"], - ["signedsource", "npm:1.0.0"], - ["yargs", "npm:15.4.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:8fbc380fbfb83c446fbdff9c5e4a5a07a118a4ec957bed39a2469c831dc686ce78446613f276fcd08ce9f58738f2ee08b7fd1d21a072eac3274c73f305301c47#npm:10.0.0", { - "packageLocation": "./.yarn/$$virtual/relay-compiler-virtual-b45f36a3fb/0/cache/relay-compiler-npm-10.0.0-564a878bc1-8f420f3d96.zip/node_modules/relay-compiler/", - "packageDependencies": [ - ["relay-compiler", "virtual:8fbc380fbfb83c446fbdff9c5e4a5a07a118a4ec957bed39a2469c831dc686ce78446613f276fcd08ce9f58738f2ee08b7fd1d21a072eac3274c73f305301c47#npm:10.0.0"], - ["@babel/core", "npm:7.10.5"], - ["@babel/generator", "npm:7.10.5"], - ["@babel/parser", "npm:7.10.5"], - ["@babel/runtime", "npm:7.10.5"], - ["@babel/traverse", "npm:7.10.5"], - ["@babel/types", "npm:7.10.5"], - ["@types/graphql", null], - ["babel-preset-fbjs", "virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0"], - ["chalk", "npm:4.1.0"], - ["fb-watchman", "npm:2.0.1"], - ["fbjs", "npm:1.0.0"], - ["glob", "npm:7.1.6"], - ["graphql", "npm:15.3.0"], - ["immutable", "npm:3.7.6"], - ["nullthrows", "npm:1.1.1"], - ["relay-runtime", "npm:10.0.0"], - ["signedsource", "npm:1.0.0"], - ["yargs", "npm:15.4.1"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["relay-runtime", [ - ["npm:10.0.0", { - "packageLocation": "./.yarn/cache/relay-runtime-npm-10.0.0-338e7451f2-b4c3a053ee.zip/node_modules/relay-runtime/", - "packageDependencies": [ - ["relay-runtime", "npm:10.0.0"], - ["@babel/runtime", "npm:7.10.5"], - ["fbjs", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:10.0.1", { - "packageLocation": "./.yarn/cache/relay-runtime-npm-10.0.1-765bc0cd53-03249ccbd0.zip/node_modules/relay-runtime/", - "packageDependencies": [ - ["relay-runtime", "npm:10.0.1"], - ["@babel/runtime", "npm:7.10.5"], - ["fbjs", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["remark", [ - ["npm:13.0.0", { - "packageLocation": "./.yarn/cache/remark-npm-13.0.0-7879967618-eac686868c.zip/node_modules/remark/", - "packageDependencies": [ - ["remark", "npm:13.0.0"], - ["remark-parse", "npm:9.0.0"], - ["remark-stringify", "npm:9.0.0"], - ["unified", "npm:9.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["remark-frontmatter", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/remark-frontmatter-npm-3.0.0-2f35238031-9c70abea78.zip/node_modules/remark-frontmatter/", - "packageDependencies": [ - ["remark-frontmatter", "npm:3.0.0"], - ["mdast-util-frontmatter", "npm:0.2.0"], - ["micromark-extension-frontmatter", "npm:0.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["remark-mdx", [ - ["npm:2.0.0-next.8", { - "packageLocation": "./.yarn/unplugged/remark-mdx-npm-2.0.0-next.8-647f1ad542/node_modules/remark-mdx/", - "packageDependencies": [ - ["remark-mdx", "npm:2.0.0-next.8"], - ["parse-entities", "npm:2.0.0"], - ["remark-stringify", "npm:8.1.1"], - ["stringify-entities", "npm:3.0.1"], - ["strip-indent", "npm:3.0.0"], - ["unist-util-stringify-position", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["remark-parse", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/remark-parse-npm-5.0.0-12afcecf81-e5295c40ef.zip/node_modules/remark-parse/", - "packageDependencies": [ - ["remark-parse", "npm:5.0.0"], - ["collapse-white-space", "npm:1.0.6"], - ["is-alphabetical", "npm:1.0.4"], - ["is-decimal", "npm:1.0.4"], - ["is-whitespace-character", "npm:1.0.4"], - ["is-word-character", "npm:1.0.4"], - ["markdown-escapes", "npm:1.0.4"], - ["parse-entities", "npm:1.2.2"], - ["repeat-string", "npm:1.6.1"], - ["state-toggle", "npm:1.0.3"], - ["trim", "npm:0.0.1"], - ["trim-trailing-lines", "npm:1.1.3"], - ["unherit", "npm:1.1.3"], - ["unist-util-remove-position", "npm:1.1.4"], - ["vfile-location", "npm:2.0.6"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:8.0.3", { - "packageLocation": "./.yarn/cache/remark-parse-npm-8.0.3-e459558b20-c1c1bde733.zip/node_modules/remark-parse/", - "packageDependencies": [ - ["remark-parse", "npm:8.0.3"], - ["ccount", "npm:1.0.5"], - ["collapse-white-space", "npm:1.0.6"], - ["is-alphabetical", "npm:1.0.4"], - ["is-decimal", "npm:1.0.4"], - ["is-whitespace-character", "npm:1.0.4"], - ["is-word-character", "npm:1.0.4"], - ["markdown-escapes", "npm:1.0.4"], - ["parse-entities", "npm:2.0.0"], - ["repeat-string", "npm:1.6.1"], - ["state-toggle", "npm:1.0.3"], - ["trim", "npm:0.0.1"], - ["trim-trailing-lines", "npm:1.1.3"], - ["unherit", "npm:1.1.3"], - ["unist-util-remove-position", "npm:2.0.1"], - ["vfile-location", "npm:3.2.0"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:9.0.0", { - "packageLocation": "./.yarn/cache/remark-parse-npm-9.0.0-da1fe74019-ca34e41b0c.zip/node_modules/remark-parse/", - "packageDependencies": [ - ["remark-parse", "npm:9.0.0"], - ["mdast-util-from-markdown", "npm:0.8.0"] - ], - "linkType": "HARD", - }] - ]], - ["remark-rehype", [ - ["npm:8.0.0", { - "packageLocation": "./.yarn/cache/remark-rehype-npm-8.0.0-53f84d78d1-a74e51b2a9.zip/node_modules/remark-rehype/", - "packageDependencies": [ - ["remark-rehype", "npm:8.0.0"], - ["mdast-util-to-hast", "npm:10.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["remark-stringify", [ - ["npm:8.1.1", { - "packageLocation": "./.yarn/cache/remark-stringify-npm-8.1.1-19c0515ee9-39de4617fe.zip/node_modules/remark-stringify/", - "packageDependencies": [ - ["remark-stringify", "npm:8.1.1"], - ["ccount", "npm:1.0.5"], - ["is-alphanumeric", "npm:1.0.0"], - ["is-decimal", "npm:1.0.4"], - ["is-whitespace-character", "npm:1.0.4"], - ["longest-streak", "npm:2.0.4"], - ["markdown-escapes", "npm:1.0.4"], - ["markdown-table", "npm:2.0.0"], - ["mdast-util-compact", "npm:2.0.1"], - ["parse-entities", "npm:2.0.0"], - ["repeat-string", "npm:1.6.1"], - ["state-toggle", "npm:1.0.3"], - ["stringify-entities", "npm:3.0.1"], - ["unherit", "npm:1.1.3"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:9.0.0", { - "packageLocation": "./.yarn/cache/remark-stringify-npm-9.0.0-7471a72450-67390a3eaa.zip/node_modules/remark-stringify/", - "packageDependencies": [ - ["remark-stringify", "npm:9.0.0"], - ["mdast-util-to-markdown", "npm:0.5.3"] - ], - "linkType": "HARD", - }] - ]], - ["remove-trailing-separator", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-17dadf3d1f.zip/node_modules/remove-trailing-separator/", - "packageDependencies": [ - ["remove-trailing-separator", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["repeat-element", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/repeat-element-npm-1.1.3-a9dee226b4-6a59b879ef.zip/node_modules/repeat-element/", - "packageDependencies": [ - ["repeat-element", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["repeat-string", [ - ["npm:1.6.1", { - "packageLocation": "./.yarn/cache/repeat-string-npm-1.6.1-bc8e388655-99c431ba7b.zip/node_modules/repeat-string/", - "packageDependencies": [ - ["repeat-string", "npm:1.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["repeating", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/repeating-npm-2.0.1-b05693cc77-a788561778.zip/node_modules/repeating/", - "packageDependencies": [ - ["repeating", "npm:2.0.1"], - ["is-finite", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["replace-ext", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/replace-ext-npm-1.0.0-5d4ecb34ac-edc3de6cad.zip/node_modules/replace-ext/", - "packageDependencies": [ - ["replace-ext", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["request", [ - ["npm:2.88.2", { - "packageLocation": "./.yarn/cache/request-npm-2.88.2-f4a57c72c4-7a74841f30.zip/node_modules/request/", - "packageDependencies": [ - ["request", "npm:2.88.2"], - ["aws-sign2", "npm:0.7.0"], - ["aws4", "npm:1.10.0"], - ["caseless", "npm:0.12.0"], - ["combined-stream", "npm:1.0.8"], - ["extend", "npm:3.0.2"], - ["forever-agent", "npm:0.6.1"], - ["form-data", "npm:2.3.3"], - ["har-validator", "npm:5.1.3"], - ["http-signature", "npm:1.2.0"], - ["is-typedarray", "npm:1.0.0"], - ["isstream", "npm:0.1.2"], - ["json-stringify-safe", "npm:5.0.1"], - ["mime-types", "npm:2.1.27"], - ["oauth-sign", "npm:0.9.0"], - ["performance-now", "npm:2.1.0"], - ["qs", "npm:6.5.2"], - ["safe-buffer", "npm:5.1.2"], - ["tough-cookie", "npm:2.5.0"], - ["tunnel-agent", "npm:0.6.0"], - ["uuid", "npm:3.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["request-light", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/request-light-npm-0.3.0-b5c021a33d-7f7e8088d3.zip/node_modules/request-light/", - "packageDependencies": [ - ["request-light", "npm:0.3.0"], - ["http-proxy-agent", "npm:2.1.0"], - ["https-proxy-agent", "npm:2.2.4"], - ["vscode-nls", "npm:4.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["request-promise-core", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-7c9c90bf00.zip/node_modules/request-promise-core/", - "packageDependencies": [ - ["request-promise-core", "npm:1.1.4"] - ], - "linkType": "SOFT", - }], - ["virtual:a31f1c3bb1e1ee83c9874a28729a4bf271f57823ba54d985182df9506edb95661d770babcda6933da64b9f9faae385379180b26b8451bc2c70da6471404f82a1#npm:1.1.4", { - "packageLocation": "./.yarn/$$virtual/request-promise-core-virtual-1e0049c8e7/0/cache/request-promise-core-npm-1.1.4-cb9fff6c90-7c9c90bf00.zip/node_modules/request-promise-core/", - "packageDependencies": [ - ["request-promise-core", "virtual:a31f1c3bb1e1ee83c9874a28729a4bf271f57823ba54d985182df9506edb95661d770babcda6933da64b9f9faae385379180b26b8451bc2c70da6471404f82a1#npm:1.1.4"], - ["@types/request", null], - ["lodash", "npm:4.17.19"], - ["request", "npm:2.88.2"] - ], - "packagePeers": [ - "@types/request", - "request" - ], - "linkType": "HARD", - }] - ]], - ["request-promise-native", [ - ["npm:1.0.9", { - "packageLocation": "./.yarn/cache/request-promise-native-npm-1.0.9-6ae8e592e8-532570f005.zip/node_modules/request-promise-native/", - "packageDependencies": [ - ["request-promise-native", "npm:1.0.9"] - ], - "linkType": "SOFT", - }], - ["virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9", { - "packageLocation": "./.yarn/$$virtual/request-promise-native-virtual-a31f1c3bb1/0/cache/request-promise-native-npm-1.0.9-6ae8e592e8-532570f005.zip/node_modules/request-promise-native/", - "packageDependencies": [ - ["request-promise-native", "virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9"], - ["@types/request", null], - ["request", "npm:2.88.2"], - ["request-promise-core", "virtual:a31f1c3bb1e1ee83c9874a28729a4bf271f57823ba54d985182df9506edb95661d770babcda6933da64b9f9faae385379180b26b8451bc2c70da6471404f82a1#npm:1.1.4"], - ["stealthy-require", "npm:1.1.1"], - ["tough-cookie", "npm:2.5.0"] - ], - "packagePeers": [ - "@types/request", - "request" - ], - "linkType": "HARD", - }] - ]], - ["require-directory", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/require-directory-npm-2.1.1-8608aee50b-f495d02d89.zip/node_modules/require-directory/", - "packageDependencies": [ - ["require-directory", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["require-from-string", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-74fc30353e.zip/node_modules/require-from-string/", - "packageDependencies": [ - ["require-from-string", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["require-main-filename", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-8d3633149a.zip/node_modules/require-main-filename/", - "packageDependencies": [ - ["require-main-filename", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["requires-port", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/requires-port-npm-1.0.0-fd036b488a-0db25fb2ac.zip/node_modules/requires-port/", - "packageDependencies": [ - ["requires-port", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["resolve", [ - ["patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa", { - "packageLocation": "./.yarn/cache/resolve-patch-38ce149af0-4bcfb56886.zip/node_modules/resolve/", - "packageDependencies": [ - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"], - ["path-parse", "npm:1.0.6"] - ], - "linkType": "HARD", - }], - ["patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa", { - "packageLocation": "./.yarn/cache/resolve-patch-55fcdb097c-c4a515b760.zip/node_modules/resolve/", - "packageDependencies": [ - ["resolve", "patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa"], - ["is-core-module", "npm:2.2.0"], - ["path-parse", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["resolve-alpn", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/resolve-alpn-npm-1.0.0-f655c150b7-17baee01c0.zip/node_modules/resolve-alpn/", - "packageDependencies": [ - ["resolve-alpn", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["resolve-cwd", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-97edfbbf83.zip/node_modules/resolve-cwd/", - "packageDependencies": [ - ["resolve-cwd", "npm:3.0.0"], - ["resolve-from", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["resolve-from", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/resolve-from-npm-3.0.0-0bff35697e-dc0c83b3b8.zip/node_modules/resolve-from/", - "packageDependencies": [ - ["resolve-from", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-87a4357c0c.zip/node_modules/resolve-from/", - "packageDependencies": [ - ["resolve-from", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-0d29fc7012.zip/node_modules/resolve-from/", - "packageDependencies": [ - ["resolve-from", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["resolve-url", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-9e1cd0028d.zip/node_modules/resolve-url/", - "packageDependencies": [ - ["resolve-url", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["resolve-url-loader", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/resolve-url-loader-npm-3.1.1-cf1a268137-7b113ac9e6.zip/node_modules/resolve-url-loader/", - "packageDependencies": [ - ["resolve-url-loader", "npm:3.1.1"], - ["adjust-sourcemap-loader", "npm:2.0.0"], - ["camelcase", "npm:5.3.1"], - ["compose-function", "npm:3.0.3"], - ["convert-source-map", "npm:1.7.0"], - ["es6-iterator", "npm:2.0.3"], - ["loader-utils", "npm:1.2.3"], - ["postcss", "npm:7.0.21"], - ["rework", "npm:1.0.1"], - ["rework-visit", "npm:1.0.0"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.2", { - "packageLocation": "./.yarn/cache/resolve-url-loader-npm-3.1.2-38e8927e94-f7130c22b6.zip/node_modules/resolve-url-loader/", - "packageDependencies": [ - ["resolve-url-loader", "npm:3.1.2"], - ["adjust-sourcemap-loader", "npm:3.0.0"], - ["camelcase", "npm:5.3.1"], - ["compose-function", "npm:3.0.3"], - ["convert-source-map", "npm:1.7.0"], - ["es6-iterator", "npm:2.0.3"], - ["loader-utils", "npm:1.2.3"], - ["postcss", "npm:7.0.21"], - ["rework", "npm:1.0.1"], - ["rework-visit", "npm:1.0.0"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["responselike", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/responselike-npm-1.0.2-d0bf50cde4-c904f14994.zip/node_modules/responselike/", - "packageDependencies": [ - ["responselike", "npm:1.0.2"], - ["lowercase-keys", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/responselike-npm-2.0.0-7813864e97-11d8225dd8.zip/node_modules/responselike/", - "packageDependencies": [ - ["responselike", "npm:2.0.0"], - ["lowercase-keys", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["restore-cursor", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/restore-cursor-npm-1.0.1-a4b4ee9fa3-07ab5114eb.zip/node_modules/restore-cursor/", - "packageDependencies": [ - ["restore-cursor", "npm:1.0.1"], - ["exit-hook", "npm:1.1.1"], - ["onetime", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/restore-cursor-npm-2.0.0-80278eb6b7-950c88d84a.zip/node_modules/restore-cursor/", - "packageDependencies": [ - ["restore-cursor", "npm:2.0.0"], - ["onetime", "npm:2.0.1"], - ["signal-exit", "npm:3.0.3"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/restore-cursor-npm-3.1.0-52c5a4c98f-38e0af0830.zip/node_modules/restore-cursor/", - "packageDependencies": [ - ["restore-cursor", "npm:3.1.0"], - ["onetime", "npm:5.1.0"], - ["signal-exit", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["ret", [ - ["npm:0.1.15", { - "packageLocation": "./.yarn/cache/ret-npm-0.1.15-0d3c19de76-749c2fcae7.zip/node_modules/ret/", - "packageDependencies": [ - ["ret", "npm:0.1.15"] - ], - "linkType": "HARD", - }] - ]], - ["retry", [ - ["npm:0.12.0", { - "packageLocation": "./.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-51f2fddddb.zip/node_modules/retry/", - "packageDependencies": [ - ["retry", "npm:0.12.0"] - ], - "linkType": "HARD", - }] - ]], - ["reusify", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/reusify-npm-1.0.4-95ac4aec11-08ef02ed05.zip/node_modules/reusify/", - "packageDependencies": [ - ["reusify", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["rework", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/rework-npm-1.0.1-c7d98665a9-fffaf7b8df.zip/node_modules/rework/", - "packageDependencies": [ - ["rework", "npm:1.0.1"], - ["convert-source-map", "npm:0.3.5"], - ["css", "npm:2.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["rework-visit", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/rework-visit-npm-1.0.0-0be9a8d45e-ff782e79aa.zip/node_modules/rework-visit/", - "packageDependencies": [ - ["rework-visit", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["rgb-regex", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/rgb-regex-npm-1.0.1-c867413fad-7701e22ec4.zip/node_modules/rgb-regex/", - "packageDependencies": [ - ["rgb-regex", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["rgba-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/rgba-regex-npm-1.0.0-7fe6ce6060-4ffb946276.zip/node_modules/rgba-regex/", - "packageDependencies": [ - ["rgba-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["rimraf", [ - ["npm:2.6.3", { - "packageLocation": "./.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-c9ce1854f1.zip/node_modules/rimraf/", - "packageDependencies": [ - ["rimraf", "npm:2.6.3"], - ["glob", "npm:7.1.6"] - ], - "linkType": "HARD", - }], - ["npm:2.7.1", { - "packageLocation": "./.yarn/cache/rimraf-npm-2.7.1-9a71f3cc37-059efac283.zip/node_modules/rimraf/", - "packageDependencies": [ - ["rimraf", "npm:2.7.1"], - ["glob", "npm:7.1.6"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-f0de3e4455.zip/node_modules/rimraf/", - "packageDependencies": [ - ["rimraf", "npm:3.0.2"], - ["glob", "npm:7.1.6"] - ], - "linkType": "HARD", - }] - ]], - ["ripemd160", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/ripemd160-npm-2.0.2-7b1fb8dc76-e0370fbe77.zip/node_modules/ripemd160/", - "packageDependencies": [ - ["ripemd160", "npm:2.0.2"], - ["hash-base", "npm:3.1.0"], - ["inherits", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["roarr", [ - ["npm:2.15.3", { - "packageLocation": "./.yarn/cache/roarr-npm-2.15.3-6a59ae3c68-e311976be7.zip/node_modules/roarr/", - "packageDependencies": [ - ["roarr", "npm:2.15.3"], - ["boolean", "npm:3.0.1"], - ["detect-node", "npm:2.0.4"], - ["globalthis", "npm:1.0.1"], - ["json-stringify-safe", "npm:5.0.1"], - ["semver-compare", "npm:1.0.0"], - ["sprintf-js", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["rollup", [ - ["npm:2.32.1", { - "packageLocation": "./.yarn/cache/rollup-npm-2.32.1-d2d2a2aab7-b231dfa7b0.zip/node_modules/rollup/", - "packageDependencies": [ - ["rollup", "npm:2.32.1"], - ["fsevents", "patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea"] - ], - "linkType": "HARD", - }], - ["npm:2.40.0", { - "packageLocation": "./.yarn/cache/rollup-npm-2.40.0-f6c7b660f3-c512236087.zip/node_modules/rollup/", - "packageDependencies": [ - ["rollup", "npm:2.40.0"], - ["fsevents", "patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea"] - ], - "linkType": "HARD", - }] - ]], - ["rollup-plugin-dts", [ - ["npm:1.4.13", { - "packageLocation": "./.yarn/cache/rollup-plugin-dts-npm-1.4.13-0f22439823-6ce7619d55.zip/node_modules/rollup-plugin-dts/", - "packageDependencies": [ - ["rollup-plugin-dts", "npm:1.4.13"] - ], - "linkType": "SOFT", - }], - ["virtual:5b90510b026d7a2311083a18cacc86fbd3969a3562e3b7dbd8c864efa3c60cdffbbc3017a5442b96c07bcfcf4010a593556e7ee9f5761d6ce56b732dc2585953#npm:1.4.13", { - "packageLocation": "./.yarn/$$virtual/rollup-plugin-dts-virtual-8408df3267/0/cache/rollup-plugin-dts-npm-1.4.13-0f22439823-6ce7619d55.zip/node_modules/rollup-plugin-dts/", - "packageDependencies": [ - ["rollup-plugin-dts", "virtual:5b90510b026d7a2311083a18cacc86fbd3969a3562e3b7dbd8c864efa3c60cdffbbc3017a5442b96c07bcfcf4010a593556e7ee9f5761d6ce56b732dc2585953#npm:1.4.13"], - ["@babel/code-frame", "npm:7.10.4"], - ["@types/rollup", null], - ["@types/typescript", null], - ["rollup", "npm:2.32.1"], - ["typescript", "patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e"] - ], - "packagePeers": [ - "@types/rollup", - "@types/typescript", - "rollup", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["root-check", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/root-check-npm-1.0.0-48cfd8e048-aece780b00.zip/node_modules/root-check/", - "packageDependencies": [ - ["root-check", "npm:1.0.0"], - ["downgrade-root", "npm:1.2.2"], - ["sudo-block", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["rsvp", [ - ["npm:4.8.5", { - "packageLocation": "./.yarn/cache/rsvp-npm-4.8.5-09f3c6ed40-eb70274fb3.zip/node_modules/rsvp/", - "packageDependencies": [ - ["rsvp", "npm:4.8.5"] - ], - "linkType": "HARD", - }] - ]], - ["run-async", [ - ["npm:2.4.1", { - "packageLocation": "./.yarn/cache/run-async-npm-2.4.1-a94bb90861-b1f06da336.zip/node_modules/run-async/", - "packageDependencies": [ - ["run-async", "npm:2.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["run-parallel", [ - ["npm:1.1.9", { - "packageLocation": "./.yarn/cache/run-parallel-npm-1.1.9-83c6b2d620-a05ca86e99.zip/node_modules/run-parallel/", - "packageDependencies": [ - ["run-parallel", "npm:1.1.9"] - ], - "linkType": "HARD", - }] - ]], - ["run-queue", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/run-queue-npm-1.0.3-a704fcadc0-ffc37a7b55.zip/node_modules/run-queue/", - "packageDependencies": [ - ["run-queue", "npm:1.0.3"], - ["aproba", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["rx", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/rx-npm-4.1.0-46beeec71d-2f88186088.zip/node_modules/rx/", - "packageDependencies": [ - ["rx", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["rxjs", [ - ["npm:6.6.0", { - "packageLocation": "./.yarn/cache/rxjs-npm-6.6.0-bc6bb23708-32d733487c.zip/node_modules/rxjs/", - "packageDependencies": [ - ["rxjs", "npm:6.6.0"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }], - ["npm:6.6.6", { - "packageLocation": "./.yarn/cache/rxjs-npm-6.6.6-6db0e615a2-c97b410e79.zip/node_modules/rxjs/", - "packageDependencies": [ - ["rxjs", "npm:6.6.6"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["safe-buffer", [ - ["npm:5.1.2", { - "packageLocation": "./.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-2708587c1b.zip/node_modules/safe-buffer/", - "packageDependencies": [ - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }], - ["npm:5.2.1", { - "packageLocation": "./.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-0bb57f0d8f.zip/node_modules/safe-buffer/", - "packageDependencies": [ - ["safe-buffer", "npm:5.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["safe-regex", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/safe-regex-npm-1.1.0-a908e8515c-c355e3163f.zip/node_modules/safe-regex/", - "packageDependencies": [ - ["safe-regex", "npm:1.1.0"], - ["ret", "npm:0.1.15"] - ], - "linkType": "HARD", - }] - ]], - ["safer-buffer", [ - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-549ba83f5b.zip/node_modules/safer-buffer/", - "packageDependencies": [ - ["safer-buffer", "npm:2.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["sane", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/sane-npm-4.1.0-8ab7d6a963-e384e25202.zip/node_modules/sane/", - "packageDependencies": [ - ["sane", "npm:4.1.0"], - ["@cnakazawa/watch", "npm:1.0.4"], - ["anymatch", "npm:2.0.0"], - ["capture-exit", "npm:2.0.0"], - ["exec-sh", "npm:0.3.4"], - ["execa", "npm:1.0.0"], - ["fb-watchman", "npm:2.0.1"], - ["micromatch", "npm:3.1.10"], - ["minimist", "npm:1.2.5"], - ["walker", "npm:1.0.7"] - ], - "linkType": "HARD", - }] - ]], - ["sanitize-filename", [ - ["npm:1.6.3", { - "packageLocation": "./.yarn/cache/sanitize-filename-npm-1.6.3-cb83b2c2aa-3e15159360.zip/node_modules/sanitize-filename/", - "packageDependencies": [ - ["sanitize-filename", "npm:1.6.3"], - ["truncate-utf8-bytes", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["sass-loader", [ - ["npm:10.0.5", { - "packageLocation": "./.yarn/cache/sass-loader-npm-10.0.5-bad7d19801-6ff9bafd12.zip/node_modules/sass-loader/", - "packageDependencies": [ - ["sass-loader", "npm:10.0.5"] - ], - "linkType": "SOFT", - }], - ["npm:8.0.2", { - "packageLocation": "./.yarn/cache/sass-loader-npm-8.0.2-f0d209ad64-e23d9b308f.zip/node_modules/sass-loader/", - "packageDependencies": [ - ["sass-loader", "npm:8.0.2"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5", { - "packageLocation": "./.yarn/$$virtual/sass-loader-virtual-faf1965b7c/0/cache/sass-loader-npm-10.0.5-bad7d19801-6ff9bafd12.zip/node_modules/sass-loader/", - "packageDependencies": [ - ["sass-loader", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5"], - ["@types/fibers", null], - ["@types/node-sass", null], - ["@types/sass", null], - ["@types/webpack", null], - ["fibers", null], - ["klona", "npm:2.0.4"], - ["loader-utils", "npm:2.0.0"], - ["neo-async", "npm:2.6.2"], - ["node-sass", null], - ["sass", null], - ["schema-utils", "npm:3.0.0"], - ["semver", "npm:7.3.2"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"] - ], - "packagePeers": [ - "@types/fibers", - "@types/node-sass", - "@types/sass", - "@types/webpack", - "fibers", - "node-sass", - "sass", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:8.0.2", { - "packageLocation": "./.yarn/$$virtual/sass-loader-virtual-18fee8e34d/0/cache/sass-loader-npm-8.0.2-f0d209ad64-e23d9b308f.zip/node_modules/sass-loader/", - "packageDependencies": [ - ["sass-loader", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:8.0.2"], - ["@types/fibers", null], - ["@types/node-sass", null], - ["@types/sass", null], - ["@types/webpack", null], - ["clone-deep", "npm:4.0.1"], - ["fibers", null], - ["loader-utils", "npm:1.2.3"], - ["neo-async", "npm:2.6.1"], - ["node-sass", null], - ["sass", null], - ["schema-utils", "npm:2.7.0"], - ["semver", "npm:6.3.0"], - ["webpack", "npm:4.44.0"] - ], - "packagePeers": [ - "@types/fibers", - "@types/node-sass", - "@types/sass", - "@types/webpack", - "fibers", - "node-sass", - "sass", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:8.0.2", { - "packageLocation": "./.yarn/$$virtual/sass-loader-virtual-6c012b8379/0/cache/sass-loader-npm-8.0.2-f0d209ad64-e23d9b308f.zip/node_modules/sass-loader/", - "packageDependencies": [ - ["sass-loader", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:8.0.2"], - ["@types/fibers", null], - ["@types/node-sass", null], - ["@types/sass", null], - ["@types/webpack", null], - ["clone-deep", "npm:4.0.1"], - ["fibers", null], - ["loader-utils", "npm:1.2.3"], - ["neo-async", "npm:2.6.1"], - ["node-sass", null], - ["sass", null], - ["schema-utils", "npm:2.7.0"], - ["semver", "npm:6.3.0"], - ["webpack", "npm:4.43.0"] - ], - "packagePeers": [ - "@types/fibers", - "@types/node-sass", - "@types/sass", - "@types/webpack", - "fibers", - "node-sass", - "sass", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["sax", [ - ["npm:1.2.4", { - "packageLocation": "./.yarn/cache/sax-npm-1.2.4-178f05f12f-9d7668d691.zip/node_modules/sax/", - "packageDependencies": [ - ["sax", "npm:1.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["saxes", [ - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/saxes-npm-5.0.1-57abf031ae-6ad14be68d.zip/node_modules/saxes/", - "packageDependencies": [ - ["saxes", "npm:5.0.1"], - ["xmlchars", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["sc", [ - ["workspace:.", { - "packageLocation": "./", - "packageDependencies": [ - ["sc", "workspace:."], - ["@yarnpkg/pnpify", "virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0"], - ["danger", "npm:10.6.0"], - ["eslint", "npm:6.8.0"], - ["prettier", "npm:2.0.5"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["workspace", "npm:0.0.1-preview.1"] - ], - "linkType": "SOFT", - }] - ]], - ["scheduler", [ - ["npm:0.18.0", { - "packageLocation": "./.yarn/cache/scheduler-npm-0.18.0-ee0cc1e577-007678c559.zip/node_modules/scheduler/", - "packageDependencies": [ - ["scheduler", "npm:0.18.0"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"] - ], - "linkType": "HARD", - }], - ["npm:0.19.1", { - "packageLocation": "./.yarn/cache/scheduler-npm-0.19.1-a4dd0ffd3a-804f990b9f.zip/node_modules/scheduler/", - "packageDependencies": [ - ["scheduler", "npm:0.19.1"], - ["loose-envify", "npm:1.4.0"], - ["object-assign", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["schema-utils", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/schema-utils-npm-1.0.0-2b49db17d1-d2f753e7a1.zip/node_modules/schema-utils/", - "packageDependencies": [ - ["schema-utils", "npm:1.0.0"], - ["ajv", "npm:6.12.3"], - ["ajv-errors", "virtual:2b49db17d1e4e8854e6e7543c07eb7bc19ec9da65a1b99b9cb28e764846d419e5ecd6e057ad65249f2b928862ffd70dbf8a7c79643ccdd7c1c40cab5b59aa03f#npm:1.0.1"], - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"] - ], - "linkType": "HARD", - }], - ["npm:2.6.6", { - "packageLocation": "./.yarn/cache/schema-utils-npm-2.6.6-31a26805d3-78ae62749e.zip/node_modules/schema-utils/", - "packageDependencies": [ - ["schema-utils", "npm:2.6.6"], - ["ajv", "npm:6.12.3"], - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"] - ], - "linkType": "HARD", - }], - ["npm:2.7.0", { - "packageLocation": "./.yarn/cache/schema-utils-npm-2.7.0-b668f12427-5d3e7c9e53.zip/node_modules/schema-utils/", - "packageDependencies": [ - ["schema-utils", "npm:2.7.0"], - ["@types/json-schema", "npm:7.0.5"], - ["ajv", "npm:6.12.3"], - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"] - ], - "linkType": "HARD", - }], - ["npm:2.7.1", { - "packageLocation": "./.yarn/cache/schema-utils-npm-2.7.1-f84d18c473-3851bcc7e4.zip/node_modules/schema-utils/", - "packageDependencies": [ - ["schema-utils", "npm:2.7.1"], - ["@types/json-schema", "npm:7.0.7"], - ["ajv", "npm:6.12.6"], - ["ajv-keywords", "virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/schema-utils-npm-3.0.0-e97702da81-a084f593f2.zip/node_modules/schema-utils/", - "packageDependencies": [ - ["schema-utils", "npm:3.0.0"], - ["@types/json-schema", "npm:7.0.7"], - ["ajv", "npm:6.12.6"], - ["ajv-keywords", "virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2"] - ], - "linkType": "HARD", - }] - ]], - ["scoped-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/scoped-regex-npm-1.0.0-3bff715653-6f42bc147b.zip/node_modules/scoped-regex/", - "packageDependencies": [ - ["scoped-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["section-matter", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/section-matter-npm-1.0.0-2f79fd59d6-4c64ed0cf3.zip/node_modules/section-matter/", - "packageDependencies": [ - ["section-matter", "npm:1.0.0"], - ["extend-shallow", "npm:2.0.1"], - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["semver", [ - ["npm:5.7.1", { - "packageLocation": "./.yarn/cache/semver-npm-5.7.1-40bcea106b-06ff0ed753.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }], - ["npm:6.3.0", { - "packageLocation": "./.yarn/cache/semver-npm-6.3.0-b3eace8bfd-f0d155c06a.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/semver-npm-7.0.0-218e8c00ca-5162b31e99.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:7.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.3.2", { - "packageLocation": "./.yarn/cache/semver-npm-7.3.2-161b023bbb-bceb46d396.zip/node_modules/semver/", - "packageDependencies": [ - ["semver", "npm:7.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["semver-compare", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/semver-compare-npm-1.0.0-33f7033df0-9f3a74ca5f.zip/node_modules/semver-compare/", - "packageDependencies": [ - ["semver-compare", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["semver-diff", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/semver-diff-npm-2.1.0-eb54e62139-b24b825e81.zip/node_modules/semver-diff/", - "packageDependencies": [ - ["semver-diff", "npm:2.1.0"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/semver-diff-npm-3.1.1-1207a795e9-d5c9b693e6.zip/node_modules/semver-diff/", - "packageDependencies": [ - ["semver-diff", "npm:3.1.1"], - ["semver", "npm:6.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["semver-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/semver-regex-npm-1.0.0-95aa99f4f8-bc76b860c2.zip/node_modules/semver-regex/", - "packageDependencies": [ - ["semver-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["semver-truncate", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/semver-truncate-npm-1.1.2-64f385c106-5aefbceeed.zip/node_modules/semver-truncate/", - "packageDependencies": [ - ["semver-truncate", "npm:1.1.2"], - ["semver", "npm:5.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["send", [ - ["npm:0.17.1", { - "packageLocation": "./.yarn/cache/send-npm-0.17.1-aad5512679-58e4ab2e07.zip/node_modules/send/", - "packageDependencies": [ - ["send", "npm:0.17.1"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["depd", "npm:1.1.2"], - ["destroy", "npm:1.0.4"], - ["encodeurl", "npm:1.0.2"], - ["escape-html", "npm:1.0.3"], - ["etag", "npm:1.8.1"], - ["fresh", "npm:0.5.2"], - ["http-errors", "npm:1.7.3"], - ["mime", "npm:1.6.0"], - ["ms", "npm:2.1.1"], - ["on-finished", "npm:2.3.0"], - ["range-parser", "npm:1.2.1"], - ["statuses", "npm:1.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["serialize-error", [ - ["npm:7.0.1", { - "packageLocation": "./.yarn/cache/serialize-error-npm-7.0.1-c0b3f881a0-2ed4699735.zip/node_modules/serialize-error/", - "packageDependencies": [ - ["serialize-error", "npm:7.0.1"], - ["type-fest", "npm:0.13.1"] - ], - "linkType": "HARD", - }] - ]], - ["serialize-javascript", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/serialize-javascript-npm-3.1.0-2e1a02b19b-e3036658c2.zip/node_modules/serialize-javascript/", - "packageDependencies": [ - ["serialize-javascript", "npm:3.1.0"], - ["randombytes", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["serve-static", [ - ["npm:1.14.1", { - "packageLocation": "./.yarn/cache/serve-static-npm-1.14.1-a7afb1d3b3-97e8c94ec0.zip/node_modules/serve-static/", - "packageDependencies": [ - ["serve-static", "npm:1.14.1"], - ["encodeurl", "npm:1.0.2"], - ["escape-html", "npm:1.0.3"], - ["parseurl", "npm:1.3.3"], - ["send", "npm:0.17.1"] - ], - "linkType": "HARD", - }] - ]], - ["set-blocking", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-0ac2403b0c.zip/node_modules/set-blocking/", - "packageDependencies": [ - ["set-blocking", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["set-getter", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/set-getter-npm-0.1.0-9664f89372-931cedb99d.zip/node_modules/set-getter/", - "packageDependencies": [ - ["set-getter", "npm:0.1.0"], - ["to-object-path", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["set-value", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/set-value-npm-2.0.1-35da5f8180-a97a99a00c.zip/node_modules/set-value/", - "packageDependencies": [ - ["set-value", "npm:2.0.1"], - ["extend-shallow", "npm:2.0.1"], - ["is-extendable", "npm:0.1.1"], - ["is-plain-object", "npm:2.0.4"], - ["split-string", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["setimmediate", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/setimmediate-npm-1.0.5-54587459b6-87884d8add.zip/node_modules/setimmediate/", - "packageDependencies": [ - ["setimmediate", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["setprototypeof", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/setprototypeof-npm-1.1.1-706b6318ec-0efed4da5a.zip/node_modules/setprototypeof/", - "packageDependencies": [ - ["setprototypeof", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-7269143985.zip/node_modules/setprototypeof/", - "packageDependencies": [ - ["setprototypeof", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["sha.js", [ - ["npm:2.4.11", { - "packageLocation": "./.yarn/cache/sha.js-npm-2.4.11-14868df4ca-7554240ab7.zip/node_modules/sha.js/", - "packageDependencies": [ - ["sha.js", "npm:2.4.11"], - ["inherits", "npm:2.0.4"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["shallow-clone", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-e329e054c2.zip/node_modules/shallow-clone/", - "packageDependencies": [ - ["shallow-clone", "npm:3.0.1"], - ["kind-of", "npm:6.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["shallowequal", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/shallowequal-npm-1.1.0-6688d419cb-15820dd544.zip/node_modules/shallowequal/", - "packageDependencies": [ - ["shallowequal", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["sharp", [ - ["npm:0.26.3", { - "packageLocation": "./.yarn/unplugged/sharp-npm-0.26.3-cfe1abe726/node_modules/sharp/", - "packageDependencies": [ - ["sharp", "npm:0.26.3"], - ["array-flatten", "npm:3.0.0"], - ["color", "npm:3.1.3"], - ["detect-libc", "npm:1.0.3"], - ["node-addon-api", "npm:3.2.0"], - ["node-gyp", "npm:7.0.0"], - ["npmlog", "npm:4.1.2"], - ["prebuild-install", "npm:6.1.2"], - ["semver", "npm:7.3.2"], - ["simple-get", "npm:4.0.0"], - ["tar-fs", "npm:2.1.1"], - ["tunnel-agent", "npm:0.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["shebang-command", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-2a1e0092a6.zip/node_modules/shebang-command/", - "packageDependencies": [ - ["shebang-command", "npm:1.2.0"], - ["shebang-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-85aa394d8c.zip/node_modules/shebang-command/", - "packageDependencies": [ - ["shebang-command", "npm:2.0.0"], - ["shebang-regex", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["shebang-regex", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-cf1a41cb09.zip/node_modules/shebang-regex/", - "packageDependencies": [ - ["shebang-regex", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-ea18044ffa.zip/node_modules/shebang-regex/", - "packageDependencies": [ - ["shebang-regex", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["shell-quote", [ - ["npm:1.7.2", { - "packageLocation": "./.yarn/cache/shell-quote-npm-1.7.2-8e2768dbb0-3b3d06814c.zip/node_modules/shell-quote/", - "packageDependencies": [ - ["shell-quote", "npm:1.7.2"] - ], - "linkType": "HARD", - }] - ]], - ["shelljs", [ - ["npm:0.8.4", { - "packageLocation": "./.yarn/cache/shelljs-npm-0.8.4-e2890f4ce2-bdf68e3c2a.zip/node_modules/shelljs/", - "packageDependencies": [ - ["shelljs", "npm:0.8.4"], - ["glob", "npm:7.1.6"], - ["interpret", "npm:1.4.0"], - ["rechoir", "npm:0.6.2"] - ], - "linkType": "HARD", - }] - ]], - ["shellwords", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/shellwords-npm-0.1.1-a091a78197-3559ff5509.zip/node_modules/shellwords/", - "packageDependencies": [ - ["shellwords", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["signal-exit", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f8f3fec95c.zip/node_modules/signal-exit/", - "packageDependencies": [ - ["signal-exit", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["signedsource", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/signedsource-npm-1.0.0-1e8a9aacd0-e6fdfce197.zip/node_modules/signedsource/", - "packageDependencies": [ - ["signedsource", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["simple-concat", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4623960448.zip/node_modules/simple-concat/", - "packageDependencies": [ - ["simple-concat", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["simple-get", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/simple-get-npm-3.1.0-8c6f03c4cd-f56f08765e.zip/node_modules/simple-get/", - "packageDependencies": [ - ["simple-get", "npm:3.1.0"], - ["decompress-response", "npm:4.2.1"], - ["once", "npm:1.4.0"], - ["simple-concat", "npm:1.0.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/simple-get-npm-4.0.0-14ed0bd6c2-91c007260d.zip/node_modules/simple-get/", - "packageDependencies": [ - ["simple-get", "npm:4.0.0"], - ["decompress-response", "npm:6.0.0"], - ["once", "npm:1.4.0"], - ["simple-concat", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["simple-git", [ - ["npm:1.124.0", { - "packageLocation": "./.yarn/cache/simple-git-npm-1.124.0-7df7767b88-9e5f0da050.zip/node_modules/simple-git/", - "packageDependencies": [ - ["simple-git", "npm:1.124.0"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["simple-swizzle", [ - ["npm:0.2.2", { - "packageLocation": "./.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-a5a2c1c86c.zip/node_modules/simple-swizzle/", - "packageDependencies": [ - ["simple-swizzle", "npm:0.2.2"], - ["is-arrayish", "npm:0.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["sisteransi", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-6554debe10.zip/node_modules/sisteransi/", - "packageDependencies": [ - ["sisteransi", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["slash", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/slash-npm-1.0.0-a244873c30-fb026d08e4.zip/node_modules/slash/", - "packageDependencies": [ - ["slash", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/slash-npm-2.0.0-69009eac54-19b39a8b71.zip/node_modules/slash/", - "packageDependencies": [ - ["slash", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/slash-npm-3.0.0-b87de2279a-fc3e8597d8.zip/node_modules/slash/", - "packageDependencies": [ - ["slash", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["slice-ansi", [ - ["npm:0.0.4", { - "packageLocation": "./.yarn/cache/slice-ansi-npm-0.0.4-c4208829d1-8fa79b3017.zip/node_modules/slice-ansi/", - "packageDependencies": [ - ["slice-ansi", "npm:0.0.4"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/slice-ansi-npm-2.1.0-02505ccc06-7578393cac.zip/node_modules/slice-ansi/", - "packageDependencies": [ - ["slice-ansi", "npm:2.1.0"], - ["ansi-styles", "npm:3.2.1"], - ["astral-regex", "npm:1.0.0"], - ["is-fullwidth-code-point", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["snapdragon", [ - ["npm:0.8.2", { - "packageLocation": "./.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-c30b63a732.zip/node_modules/snapdragon/", - "packageDependencies": [ - ["snapdragon", "npm:0.8.2"], - ["base", "npm:0.11.2"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["define-property", "npm:0.2.5"], - ["extend-shallow", "npm:2.0.1"], - ["map-cache", "npm:0.2.2"], - ["source-map", "npm:0.5.7"], - ["source-map-resolve", "npm:0.5.3"], - ["use", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["snapdragon-node", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/snapdragon-node-npm-2.1.1-78bc70e8e2-75918b0d60.zip/node_modules/snapdragon-node/", - "packageDependencies": [ - ["snapdragon-node", "npm:2.1.1"], - ["define-property", "npm:1.0.0"], - ["isobject", "npm:3.0.1"], - ["snapdragon-util", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["snapdragon-util", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/snapdragon-util-npm-3.0.1-36b5a7829d-d1a7ab4171.zip/node_modules/snapdragon-util/", - "packageDependencies": [ - ["snapdragon-util", "npm:3.0.1"], - ["kind-of", "npm:3.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["sort-keys", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/sort-keys-npm-1.1.2-2ac0ab2d94-78d9165ed3.zip/node_modules/sort-keys/", - "packageDependencies": [ - ["sort-keys", "npm:1.1.2"], - ["is-plain-obj", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/sort-keys-npm-2.0.0-4f517eb415-c0437ce7fb.zip/node_modules/sort-keys/", - "packageDependencies": [ - ["sort-keys", "npm:2.0.0"], - ["is-plain-obj", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["sort-on", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/sort-on-npm-3.0.0-c592debd88-184ec83f7c.zip/node_modules/sort-on/", - "packageDependencies": [ - ["sort-on", "npm:3.0.0"], - ["arrify", "npm:1.0.1"], - ["dot-prop", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["source-list-map", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/source-list-map-npm-2.0.1-625c551052-d8d45f2998.zip/node_modules/source-list-map/", - "packageDependencies": [ - ["source-list-map", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["source-map", [ - ["npm:0.5.7", { - "packageLocation": "./.yarn/cache/source-map-npm-0.5.7-7c3f035429-737face965.zip/node_modules/source-map/", - "packageDependencies": [ - ["source-map", "npm:0.5.7"] - ], - "linkType": "HARD", - }], - ["npm:0.6.1", { - "packageLocation": "./.yarn/cache/source-map-npm-0.6.1-1a3621db16-8647829a06.zip/node_modules/source-map/", - "packageDependencies": [ - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }], - ["npm:0.7.3", { - "packageLocation": "./.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-351ce26ffa.zip/node_modules/source-map/", - "packageDependencies": [ - ["source-map", "npm:0.7.3"] - ], - "linkType": "HARD", - }], - ["npm:0.8.0-beta.0", { - "packageLocation": "./.yarn/cache/source-map-npm-0.8.0-beta.0-688a309e94-c5f93fd367.zip/node_modules/source-map/", - "packageDependencies": [ - ["source-map", "npm:0.8.0-beta.0"], - ["whatwg-url", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["source-map-resolve", [ - ["npm:0.5.3", { - "packageLocation": "./.yarn/cache/source-map-resolve-npm-0.5.3-6502ae65ba-042ad0c0ba.zip/node_modules/source-map-resolve/", - "packageDependencies": [ - ["source-map-resolve", "npm:0.5.3"], - ["atob", "npm:2.1.2"], - ["decode-uri-component", "npm:0.2.0"], - ["resolve-url", "npm:0.2.1"], - ["source-map-url", "npm:0.4.0"], - ["urix", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["source-map-support", [ - ["npm:0.5.19", { - "packageLocation": "./.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-59d4efaae9.zip/node_modules/source-map-support/", - "packageDependencies": [ - ["source-map-support", "npm:0.5.19"], - ["buffer-from", "npm:1.1.1"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["source-map-url", [ - ["npm:0.4.0", { - "packageLocation": "./.yarn/cache/source-map-url-npm-0.4.0-011efde48b-84d509cfa1.zip/node_modules/source-map-url/", - "packageDependencies": [ - ["source-map-url", "npm:0.4.0"] - ], - "linkType": "HARD", - }] - ]], - ["space-separated-tokens", [ - ["npm:1.1.5", { - "packageLocation": "./.yarn/cache/space-separated-tokens-npm-1.1.5-2352c83473-2b143776c3.zip/node_modules/space-separated-tokens/", - "packageDependencies": [ - ["space-separated-tokens", "npm:1.1.5"] - ], - "linkType": "HARD", - }] - ]], - ["spawn-command", [ - ["npm:0.0.2", { - "packageLocation": "./.yarn/cache/spawn-command-npm-0.0.2-014d4d5d9f-961fb1551f.zip/node_modules/spawn-command/", - "packageDependencies": [ - ["spawn-command", "npm:0.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["spawn-sync", [ - ["npm:1.0.15", { - "packageLocation": "./.yarn/unplugged/spawn-sync-npm-1.0.15-ae144228c0/node_modules/spawn-sync/", - "packageDependencies": [ - ["spawn-sync", "npm:1.0.15"], - ["concat-stream", "npm:1.6.2"], - ["os-shim", "npm:0.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["spdx-correct", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-f3413eb225.zip/node_modules/spdx-correct/", - "packageDependencies": [ - ["spdx-correct", "npm:3.1.1"], - ["spdx-expression-parse", "npm:3.0.1"], - ["spdx-license-ids", "npm:3.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["spdx-exceptions", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-3cbd249889.zip/node_modules/spdx-exceptions/", - "packageDependencies": [ - ["spdx-exceptions", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["spdx-expression-parse", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-f0211cada3.zip/node_modules/spdx-expression-parse/", - "packageDependencies": [ - ["spdx-expression-parse", "npm:3.0.1"], - ["spdx-exceptions", "npm:2.3.0"], - ["spdx-license-ids", "npm:3.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["spdx-license-ids", [ - ["npm:3.0.5", { - "packageLocation": "./.yarn/cache/spdx-license-ids-npm-3.0.5-cb028e9441-4ff7c0615a.zip/node_modules/spdx-license-ids/", - "packageDependencies": [ - ["spdx-license-ids", "npm:3.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["split-on-first", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/split-on-first-npm-1.1.0-e2f3ab5e4e-2ef26fee62.zip/node_modules/split-on-first/", - "packageDependencies": [ - ["split-on-first", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["split-string", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/split-string-npm-3.1.0-df5d83450e-9b610d1509.zip/node_modules/split-string/", - "packageDependencies": [ - ["split-string", "npm:3.1.0"], - ["extend-shallow", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["sprintf-js", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-51df1bce9e.zip/node_modules/sprintf-js/", - "packageDependencies": [ - ["sprintf-js", "npm:1.0.3"] - ], - "linkType": "HARD", - }], - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/sprintf-js-npm-1.1.2-ea16269a6d-50d2008328.zip/node_modules/sprintf-js/", - "packageDependencies": [ - ["sprintf-js", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["sshpk", [ - ["npm:1.16.1", { - "packageLocation": "./.yarn/cache/sshpk-npm-1.16.1-feb759e7e0-4bd7422634.zip/node_modules/sshpk/", - "packageDependencies": [ - ["sshpk", "npm:1.16.1"], - ["asn1", "npm:0.2.4"], - ["assert-plus", "npm:1.0.0"], - ["bcrypt-pbkdf", "npm:1.0.2"], - ["dashdash", "npm:1.14.1"], - ["ecc-jsbn", "npm:0.1.2"], - ["getpass", "npm:0.1.7"], - ["jsbn", "npm:0.1.1"], - ["safer-buffer", "npm:2.1.2"], - ["tweetnacl", "npm:0.14.5"] - ], - "linkType": "HARD", - }] - ]], - ["ssri", [ - ["npm:6.0.1", { - "packageLocation": "./.yarn/cache/ssri-npm-6.0.1-a40d823fc9-828c8c24c9.zip/node_modules/ssri/", - "packageDependencies": [ - ["ssri", "npm:6.0.1"], - ["figgy-pudding", "npm:3.5.2"] - ], - "linkType": "HARD", - }], - ["npm:7.1.0", { - "packageLocation": "./.yarn/cache/ssri-npm-7.1.0-ffd7854673-99506ae2e3.zip/node_modules/ssri/", - "packageDependencies": [ - ["ssri", "npm:7.1.0"], - ["figgy-pudding", "npm:3.5.2"], - ["minipass", "npm:3.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["stable", [ - ["npm:0.1.8", { - "packageLocation": "./.yarn/cache/stable-npm-0.1.8-feb4e06de8-a430967bb5.zip/node_modules/stable/", - "packageDependencies": [ - ["stable", "npm:0.1.8"] - ], - "linkType": "HARD", - }] - ]], - ["stack-utils", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/stack-utils-npm-2.0.2-2ae6e16cf5-a9fa702767.zip/node_modules/stack-utils/", - "packageDependencies": [ - ["stack-utils", "npm:2.0.2"], - ["escape-string-regexp", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["stacktrace-parser", [ - ["npm:0.1.10", { - "packageLocation": "./.yarn/cache/stacktrace-parser-npm-0.1.10-36f3e571bd-56e3cc5d33.zip/node_modules/stacktrace-parser/", - "packageDependencies": [ - ["stacktrace-parser", "npm:0.1.10"], - ["type-fest", "npm:0.7.1"] - ], - "linkType": "HARD", - }] - ]], - ["state-toggle", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/state-toggle-npm-1.0.3-dd096f8bd0-8c013394b3.zip/node_modules/state-toggle/", - "packageDependencies": [ - ["state-toggle", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["static-extend", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/static-extend-npm-0.1.2-2720ee6882-c42052c352.zip/node_modules/static-extend/", - "packageDependencies": [ - ["static-extend", "npm:0.1.2"], - ["define-property", "npm:0.2.5"], - ["object-copy", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["statuses", [ - ["npm:1.5.0", { - "packageLocation": "./.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-57735269bf.zip/node_modules/statuses/", - "packageDependencies": [ - ["statuses", "npm:1.5.0"] - ], - "linkType": "HARD", - }] - ]], - ["stealthy-require", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-f24a9bc613.zip/node_modules/stealthy-require/", - "packageDependencies": [ - ["stealthy-require", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["stream-browserify", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/stream-browserify-npm-2.0.2-145ceec889-d50d9a28df.zip/node_modules/stream-browserify/", - "packageDependencies": [ - ["stream-browserify", "npm:2.0.2"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/stream-browserify-npm-3.0.0-4c0bd97245-55fb0c3008.zip/node_modules/stream-browserify/", - "packageDependencies": [ - ["stream-browserify", "npm:3.0.0"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:3.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["stream-buffers", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/stream-buffers-npm-3.0.2-81e4221c31-340a04fc13.zip/node_modules/stream-buffers/", - "packageDependencies": [ - ["stream-buffers", "npm:3.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["stream-each", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/stream-each-npm-1.2.3-ff15985d6a-2b64a88075.zip/node_modules/stream-each/", - "packageDependencies": [ - ["stream-each", "npm:1.2.3"], - ["end-of-stream", "npm:1.4.4"], - ["stream-shift", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["stream-http", [ - ["npm:2.8.3", { - "packageLocation": "./.yarn/cache/stream-http-npm-2.8.3-7691e2a9d5-7ef9e10567.zip/node_modules/stream-http/", - "packageDependencies": [ - ["stream-http", "npm:2.8.3"], - ["builtin-status-codes", "npm:3.0.0"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:2.3.7"], - ["to-arraybuffer", "npm:1.0.1"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["stream-shift", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/stream-shift-npm-1.0.1-9526210fa7-5d777b222e.zip/node_modules/stream-shift/", - "packageDependencies": [ - ["stream-shift", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["stream-to-array", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/stream-to-array-npm-2.3.0-eaa32c31d8-b313d7dfa5.zip/node_modules/stream-to-array/", - "packageDependencies": [ - ["stream-to-array", "npm:2.3.0"], - ["any-promise", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["stream-to-promise", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/stream-to-promise-npm-2.2.0-27f3ae7c38-1f26f85d57.zip/node_modules/stream-to-promise/", - "packageDependencies": [ - ["stream-to-promise", "npm:2.2.0"], - ["any-promise", "npm:1.3.0"], - ["end-of-stream", "npm:1.1.0"], - ["stream-to-array", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["strict-uri-encode", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/strict-uri-encode-npm-1.1.0-a79c6f7f24-6c80f6998a.zip/node_modules/strict-uri-encode/", - "packageDependencies": [ - ["strict-uri-encode", "npm:1.1.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/strict-uri-encode-npm-2.0.0-1ec3189376-775012e88b.zip/node_modules/strict-uri-encode/", - "packageDependencies": [ - ["strict-uri-encode", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["string-hash", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/string-hash-npm-1.1.3-3cb8892e7c-178d855be2.zip/node_modules/string-hash/", - "packageDependencies": [ - ["string-hash", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["string-length", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/string-length-npm-2.0.0-72bc8bf050-44d79c40a4.zip/node_modules/string-length/", - "packageDependencies": [ - ["string-length", "npm:2.0.0"], - ["astral-regex", "npm:1.0.0"], - ["strip-ansi", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/string-length-npm-4.0.1-f4a493417a-afc4338247.zip/node_modules/string-length/", - "packageDependencies": [ - ["string-length", "npm:4.0.1"], - ["char-regex", "npm:1.0.2"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["string-template", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/string-template-npm-0.2.1-e8fa722df5-c64ac6e7f7.zip/node_modules/string-template/", - "packageDependencies": [ - ["string-template", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["string-width", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/string-width-npm-1.0.2-01031f9add-b11745daa9.zip/node_modules/string-width/", - "packageDependencies": [ - ["string-width", "npm:1.0.2"], - ["code-point-at", "npm:1.1.0"], - ["is-fullwidth-code-point", "npm:1.0.0"], - ["strip-ansi", "npm:3.0.1"] - ], - "linkType": "HARD", - }], - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/string-width-npm-2.1.1-0c2c6ae53f-906b4887c3.zip/node_modules/string-width/", - "packageDependencies": [ - ["string-width", "npm:2.1.1"], - ["is-fullwidth-code-point", "npm:2.0.0"], - ["strip-ansi", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/string-width-npm-3.1.0-e031bfa4e0-54c5d1842d.zip/node_modules/string-width/", - "packageDependencies": [ - ["string-width", "npm:3.1.0"], - ["emoji-regex", "npm:7.0.3"], - ["is-fullwidth-code-point", "npm:2.0.0"], - ["strip-ansi", "npm:5.2.0"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/string-width-npm-4.2.0-c4a2a66200-cf1e8acddf.zip/node_modules/string-width/", - "packageDependencies": [ - ["string-width", "npm:4.2.0"], - ["emoji-regex", "npm:8.0.0"], - ["is-fullwidth-code-point", "npm:3.0.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["string.prototype.trimend", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/string.prototype.trimend-npm-1.0.1-c110c5981f-93046463de.zip/node_modules/string.prototype.trimend/", - "packageDependencies": [ - ["string.prototype.trimend", "npm:1.0.1"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.17.6"] - ], - "linkType": "HARD", - }] - ]], - ["string.prototype.trimstart", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/string.prototype.trimstart-npm-1.0.1-86888269b6-20c4a940f1.zip/node_modules/string.prototype.trimstart/", - "packageDependencies": [ - ["string.prototype.trimstart", "npm:1.0.1"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.17.6"] - ], - "linkType": "HARD", - }] - ]], - ["string_decoder", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-bc2dc169d8.zip/node_modules/string_decoder/", - "packageDependencies": [ - ["string_decoder", "npm:1.1.1"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }], - ["npm:1.3.0", { - "packageLocation": "./.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-0a09afb610.zip/node_modules/string_decoder/", - "packageDependencies": [ - ["string_decoder", "npm:1.3.0"], - ["safe-buffer", "npm:5.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["stringify-entities", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/stringify-entities-npm-3.0.1-b7829242e9-8bff496357.zip/node_modules/stringify-entities/", - "packageDependencies": [ - ["stringify-entities", "npm:3.0.1"], - ["character-entities-html4", "npm:1.1.4"], - ["character-entities-legacy", "npm:1.1.4"], - ["is-alphanumerical", "npm:1.0.4"], - ["is-decimal", "npm:1.0.4"], - ["is-hexadecimal", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["strip-ansi", [ - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-98772dcf44.zip/node_modules/strip-ansi/", - "packageDependencies": [ - ["strip-ansi", "npm:3.0.1"], - ["ansi-regex", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/strip-ansi-npm-4.0.0-d4de985014-9ac63872c2.zip/node_modules/strip-ansi/", - "packageDependencies": [ - ["strip-ansi", "npm:4.0.0"], - ["ansi-regex", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/strip-ansi-npm-5.2.0-275214c316-44a0d0d354.zip/node_modules/strip-ansi/", - "packageDependencies": [ - ["strip-ansi", "npm:5.2.0"], - ["ansi-regex", "npm:4.1.0"] - ], - "linkType": "HARD", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-10568c91ca.zip/node_modules/strip-ansi/", - "packageDependencies": [ - ["strip-ansi", "npm:6.0.0"], - ["ansi-regex", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["strip-bom", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/strip-bom-npm-2.0.0-5c4b64ed5a-d488310c44.zip/node_modules/strip-bom/", - "packageDependencies": [ - ["strip-bom", "npm:2.0.0"], - ["is-utf8", "npm:0.2.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-361dd1dd08.zip/node_modules/strip-bom/", - "packageDependencies": [ - ["strip-bom", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-25a231aacb.zip/node_modules/strip-bom/", - "packageDependencies": [ - ["strip-bom", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["strip-bom-buf", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/strip-bom-buf-npm-1.0.0-056a57a073-61b7b6eb6b.zip/node_modules/strip-bom-buf/", - "packageDependencies": [ - ["strip-bom-buf", "npm:1.0.0"], - ["is-utf8", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["strip-bom-stream", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/strip-bom-stream-npm-2.0.0-e1d65f77cc-42fb84bfeb.zip/node_modules/strip-bom-stream/", - "packageDependencies": [ - ["strip-bom-stream", "npm:2.0.0"], - ["first-chunk-stream", "npm:2.0.0"], - ["strip-bom", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["strip-bom-string", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/strip-bom-string-npm-1.0.0-aa6cb548d1-63cf934fcf.zip/node_modules/strip-bom-string/", - "packageDependencies": [ - ["strip-bom-string", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["strip-eof", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/strip-eof-npm-1.0.0-d82eaf947c-905cd8718a.zip/node_modules/strip-eof/", - "packageDependencies": [ - ["strip-eof", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["strip-final-newline", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-74dbd8a602.zip/node_modules/strip-final-newline/", - "packageDependencies": [ - ["strip-final-newline", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["strip-indent", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/strip-indent-npm-1.0.1-dabb780da0-9ec818484a.zip/node_modules/strip-indent/", - "packageDependencies": [ - ["strip-indent", "npm:1.0.1"], - ["get-stdin", "npm:4.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-4a7860e943.zip/node_modules/strip-indent/", - "packageDependencies": [ - ["strip-indent", "npm:3.0.0"], - ["min-indent", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["strip-json-comments", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-e60d99aa28.zip/node_modules/strip-json-comments/", - "packageDependencies": [ - ["strip-json-comments", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-f16719ce25.zip/node_modules/strip-json-comments/", - "packageDependencies": [ - ["strip-json-comments", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["style-loader", [ - ["npm:1.2.1", { - "packageLocation": "./.yarn/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/", - "packageDependencies": [ - ["style-loader", "npm:1.2.1"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.2.1", { - "packageLocation": "./.yarn/$$virtual/style-loader-virtual-b4ed89c589/0/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/", - "packageDependencies": [ - ["style-loader", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.2.1"], - ["@types/webpack", null], - ["loader-utils", "npm:2.0.0"], - ["schema-utils", "npm:2.7.0"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:1.2.1", { - "packageLocation": "./.yarn/$$virtual/style-loader-virtual-a8cbe8ff53/0/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/", - "packageDependencies": [ - ["style-loader", "virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:1.2.1"], - ["@types/webpack", null], - ["loader-utils", "npm:2.0.0"], - ["schema-utils", "npm:2.7.0"], - ["webpack", "npm:4.44.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:1.2.1", { - "packageLocation": "./.yarn/$$virtual/style-loader-virtual-8576ae98e0/0/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/", - "packageDependencies": [ - ["style-loader", "virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:1.2.1"], - ["@types/webpack", null], - ["loader-utils", "npm:2.0.0"], - ["schema-utils", "npm:2.7.0"], - ["webpack", "npm:4.43.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["styled-components", [ - ["npm:5.2.0", { - "packageLocation": "./.yarn/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/", - "packageDependencies": [ - ["styled-components", "npm:5.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0", { - "packageLocation": "./.yarn/$$virtual/styled-components-virtual-c6c5dc4252/0/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/", - "packageDependencies": [ - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@emotion/is-prop-valid", "npm:0.8.8"], - ["@emotion/stylis", "npm:0.8.5"], - ["@emotion/unitless", "npm:0.7.5"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/react-is", null], - ["babel-plugin-styled-components", "virtual:c6c5dc42529e5e1b6399934e28230d17650bddc1d9df2ef1ed7f32d9c4a1472e309409cdfee0daaba8d0d9d2ff1627dce630fd7dc8351b2b0a246189ccafdb23#npm:1.11.0"], - ["css-to-react-native", "npm:3.0.0"], - ["hoist-non-react-statics", "npm:3.3.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["shallowequal", "npm:1.1.0"], - ["supports-color", "npm:5.5.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react-is", - "@types/react", - "react-dom", - "react-is", - "react" - ], - "linkType": "HARD", - }], - ["virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0", { - "packageLocation": "./.yarn/$$virtual/styled-components-virtual-8b2b81fd6b/0/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/", - "packageDependencies": [ - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@emotion/is-prop-valid", "npm:0.8.8"], - ["@emotion/stylis", "npm:0.8.5"], - ["@emotion/unitless", "npm:0.7.5"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/react-is", null], - ["babel-plugin-styled-components", "virtual:8b2b81fd6bd437cd8e3b3c589e5c2987a79b464981c840d3e52a42d0b8e252b1c7d69fc41ab44ab3b9bb12010e877616bb05a14e2efd582d7c21861dfeadff9c#npm:1.11.0"], - ["css-to-react-native", "npm:3.0.0"], - ["hoist-non-react-statics", "npm:3.3.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:17.0.2"], - ["shallowequal", "npm:1.1.0"], - ["supports-color", "npm:5.5.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react-is", - "@types/react", - "react-dom", - "react-is", - "react" - ], - "linkType": "HARD", - }], - ["virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0", { - "packageLocation": "./.yarn/$$virtual/styled-components-virtual-3942ea4996/0/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/", - "packageDependencies": [ - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"], - ["@babel/helper-module-imports", "npm:7.10.4"], - ["@babel/traverse", "npm:7.10.5"], - ["@emotion/is-prop-valid", "npm:0.8.8"], - ["@emotion/stylis", "npm:0.8.5"], - ["@emotion/unitless", "npm:0.7.5"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/react-is", null], - ["babel-plugin-styled-components", "virtual:3942ea4996deb8db0313d3ac8ad29b916eb4017388a1e1ce205ec6835fca92ab6e1e8c99e38e386e3682ca5cbbc16b77c92fdc72fc0c4ded5385ac2bc1153767#npm:1.11.0"], - ["css-to-react-native", "npm:3.0.0"], - ["hoist-non-react-statics", "npm:3.3.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", null], - ["shallowequal", "npm:1.1.0"], - ["supports-color", "npm:5.5.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react-is", - "@types/react", - "react-dom", - "react-is", - "react" - ], - "linkType": "HARD", - }] - ]], - ["styled-jsx", [ - ["npm:3.3.0", { - "packageLocation": "./.yarn/cache/styled-jsx-npm-3.3.0-8c31273120-1a90d2f566.zip/node_modules/styled-jsx/", - "packageDependencies": [ - ["styled-jsx", "npm:3.3.0"] - ], - "linkType": "SOFT", - }], - ["npm:3.3.2", { - "packageLocation": "./.yarn/cache/styled-jsx-npm-3.3.2-e6d9ca13f4-479d442682.zip/node_modules/styled-jsx/", - "packageDependencies": [ - ["styled-jsx", "npm:3.3.2"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:3.3.2", { - "packageLocation": "./.yarn/$$virtual/styled-jsx-virtual-a8d982f80a/0/cache/styled-jsx-npm-3.3.2-e6d9ca13f4-479d442682.zip/node_modules/styled-jsx/", - "packageDependencies": [ - ["styled-jsx", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:3.3.2"], - ["@babel/types", "npm:7.8.3"], - ["@types/react", "npm:16.9.43"], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["convert-source-map", "npm:1.7.0"], - ["loader-utils", "npm:1.2.3"], - ["react", "npm:16.13.1"], - ["source-map", "npm:0.7.3"], - ["string-hash", "npm:1.1.3"], - ["stylis", "npm:3.5.4"], - ["stylis-rule-sheet", "virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0", { - "packageLocation": "./.yarn/$$virtual/styled-jsx-virtual-a14e689010/0/cache/styled-jsx-npm-3.3.0-8c31273120-1a90d2f566.zip/node_modules/styled-jsx/", - "packageDependencies": [ - ["styled-jsx", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0"], - ["@babel/types", "npm:7.8.3"], - ["@types/react", "npm:16.9.43"], - ["babel-plugin-syntax-jsx", "npm:6.18.0"], - ["convert-source-map", "npm:1.7.0"], - ["loader-utils", "npm:1.2.3"], - ["react", "npm:16.13.1"], - ["source-map", "npm:0.7.3"], - ["string-hash", "npm:1.1.3"], - ["stylis", "npm:3.5.4"], - ["stylis-rule-sheet", "virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["stylehacks", [ - ["npm:4.0.3", { - "packageLocation": "./.yarn/cache/stylehacks-npm-4.0.3-b704c3a5ab-1345ad348d.zip/node_modules/stylehacks/", - "packageDependencies": [ - ["stylehacks", "npm:4.0.3"], - ["browserslist", "npm:4.13.0"], - ["postcss", "npm:7.0.32"], - ["postcss-selector-parser", "npm:3.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["stylis", [ - ["npm:3.5.4", { - "packageLocation": "./.yarn/cache/stylis-npm-3.5.4-a35153f87b-356e2352b1.zip/node_modules/stylis/", - "packageDependencies": [ - ["stylis", "npm:3.5.4"] - ], - "linkType": "HARD", - }] - ]], - ["stylis-rule-sheet", [ - ["npm:0.0.10", { - "packageLocation": "./.yarn/cache/stylis-rule-sheet-npm-0.0.10-bc7763b753-89c5e8a72b.zip/node_modules/stylis-rule-sheet/", - "packageDependencies": [ - ["stylis-rule-sheet", "npm:0.0.10"] - ], - "linkType": "SOFT", - }], - ["virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10", { - "packageLocation": "./.yarn/$$virtual/stylis-rule-sheet-virtual-f50fa46c44/0/cache/stylis-rule-sheet-npm-0.0.10-bc7763b753-89c5e8a72b.zip/node_modules/stylis-rule-sheet/", - "packageDependencies": [ - ["stylis-rule-sheet", "virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10"], - ["@types/stylis", null], - ["stylis", "npm:3.5.4"] - ], - "packagePeers": [ - "@types/stylis", - "stylis" - ], - "linkType": "HARD", - }] - ]], - ["subscriptions-transport-ws", [ - ["npm:0.9.18", { - "packageLocation": "./.yarn/cache/subscriptions-transport-ws-npm-0.9.18-7d0f338bbd-54f23dadb3.zip/node_modules/subscriptions-transport-ws/", - "packageDependencies": [ - ["subscriptions-transport-ws", "npm:0.9.18"] - ], - "linkType": "SOFT", - }], - ["virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18", { - "packageLocation": "./.yarn/$$virtual/subscriptions-transport-ws-virtual-570860290e/0/cache/subscriptions-transport-ws-npm-0.9.18-7d0f338bbd-54f23dadb3.zip/node_modules/subscriptions-transport-ws/", - "packageDependencies": [ - ["subscriptions-transport-ws", "virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18"], - ["@types/graphql", null], - ["backo2", "npm:1.0.2"], - ["eventemitter3", "npm:3.1.2"], - ["graphql", "npm:15.3.0"], - ["iterall", "npm:1.3.0"], - ["symbol-observable", "npm:1.2.0"], - ["ws", "virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }], - ["virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:0.9.18", { - "packageLocation": "./.yarn/$$virtual/subscriptions-transport-ws-virtual-5fc5dbb3ca/0/cache/subscriptions-transport-ws-npm-0.9.18-7d0f338bbd-54f23dadb3.zip/node_modules/subscriptions-transport-ws/", - "packageDependencies": [ - ["subscriptions-transport-ws", "virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:0.9.18"], - ["@types/graphql", null], - ["backo2", "npm:1.0.2"], - ["eventemitter3", "npm:3.1.2"], - ["graphql", "npm:14.7.0"], - ["iterall", "npm:1.3.0"], - ["symbol-observable", "npm:1.2.0"], - ["ws", "virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2"] - ], - "packagePeers": [ - "@types/graphql", - "graphql" - ], - "linkType": "HARD", - }] - ]], - ["sucrase", [ - ["npm:3.15.0", { - "packageLocation": "./.yarn/cache/sucrase-npm-3.15.0-a1f6663e79-7ebbe2ab72.zip/node_modules/sucrase/", - "packageDependencies": [ - ["sucrase", "npm:3.15.0"], - ["commander", "npm:4.1.1"], - ["glob", "npm:7.1.6"], - ["lines-and-columns", "npm:1.1.6"], - ["mz", "npm:2.7.0"], - ["pirates", "npm:4.0.1"], - ["ts-interface-checker", "npm:0.1.13"] - ], - "linkType": "HARD", - }], - ["npm:3.17.1", { - "packageLocation": "./.yarn/cache/sucrase-npm-3.17.1-f7278527de-7e0bf20b1e.zip/node_modules/sucrase/", - "packageDependencies": [ - ["sucrase", "npm:3.17.1"], - ["commander", "npm:4.1.1"], - ["glob", "npm:7.1.6"], - ["lines-and-columns", "npm:1.1.6"], - ["mz", "npm:2.7.0"], - ["pirates", "npm:4.0.1"], - ["ts-interface-checker", "npm:0.1.13"] - ], - "linkType": "HARD", - }] - ]], - ["sudo-block", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/sudo-block-npm-1.2.0-175a20c765-a75abf515a.zip/node_modules/sudo-block/", - "packageDependencies": [ - ["sudo-block", "npm:1.2.0"], - ["chalk", "npm:1.1.3"], - ["is-docker", "npm:1.1.0"], - ["is-root", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["supports-color", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/supports-color-npm-2.0.0-22c0f0adbc-5d6fb449e2.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.2.3", { - "packageLocation": "./.yarn/cache/supports-color-npm-3.2.3-117b06af49-d26b4f5f7a.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:3.2.3"], - ["has-flag", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.5.0", { - "packageLocation": "./.yarn/cache/supports-color-npm-5.5.0-183ac537bc-edacee6425.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:5.5.0"], - ["has-flag", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/supports-color-npm-6.1.0-7d19cd7f55-8682157129.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:6.1.0"], - ["has-flag", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.1.0", { - "packageLocation": "./.yarn/cache/supports-color-npm-7.1.0-df2ba1e338-6130f36b2a.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:7.1.0"], - ["has-flag", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:8.1.1", { - "packageLocation": "./.yarn/cache/supports-color-npm-8.1.1-289e937149-0219f5c917.zip/node_modules/supports-color/", - "packageDependencies": [ - ["supports-color", "npm:8.1.1"], - ["has-flag", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["supports-hyperlinks", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/supports-hyperlinks-npm-1.0.1-8eac1c37c2-91f12edc8c.zip/node_modules/supports-hyperlinks/", - "packageDependencies": [ - ["supports-hyperlinks", "npm:1.0.1"], - ["has-flag", "npm:2.0.0"], - ["supports-color", "npm:5.5.0"] - ], - "linkType": "HARD", - }], - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/supports-hyperlinks-npm-2.1.0-8e86724a40-8b3b6d71ee.zip/node_modules/supports-hyperlinks/", - "packageDependencies": [ - ["supports-hyperlinks", "npm:2.1.0"], - ["has-flag", "npm:4.0.0"], - ["supports-color", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["svgo", [ - ["npm:1.3.2", { - "packageLocation": "./.yarn/cache/svgo-npm-1.3.2-4cceb54daa-e165973842.zip/node_modules/svgo/", - "packageDependencies": [ - ["svgo", "npm:1.3.2"], - ["chalk", "npm:2.4.2"], - ["coa", "npm:2.0.2"], - ["css-select", "npm:2.1.0"], - ["css-select-base-adapter", "npm:0.1.1"], - ["css-tree", "npm:1.0.0-alpha.37"], - ["csso", "npm:4.0.3"], - ["js-yaml", "npm:3.14.0"], - ["mkdirp", "npm:0.5.5"], - ["object.values", "npm:1.1.1"], - ["sax", "npm:1.2.4"], - ["stable", "npm:0.1.8"], - ["unquote", "npm:1.1.1"], - ["util.promisify", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["symbol-observable", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/symbol-observable-npm-1.2.0-9e812a0a39-268834a1d4.zip/node_modules/symbol-observable/", - "packageDependencies": [ - ["symbol-observable", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["symbol-tree", [ - ["npm:3.2.4", { - "packageLocation": "./.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-0b9af4e5f0.zip/node_modules/symbol-tree/", - "packageDependencies": [ - ["symbol-tree", "npm:3.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["synchronous-promise", [ - ["npm:2.0.13", { - "packageLocation": "./.yarn/cache/synchronous-promise-npm-2.0.13-25e6221ef9-8e182d5999.zip/node_modules/synchronous-promise/", - "packageDependencies": [ - ["synchronous-promise", "npm:2.0.13"] - ], - "linkType": "HARD", - }], - ["npm:2.0.15", { - "packageLocation": "./.yarn/cache/synchronous-promise-npm-2.0.15-5311c7e3c6-3462a5aa24.zip/node_modules/synchronous-promise/", - "packageDependencies": [ - ["synchronous-promise", "npm:2.0.15"] - ], - "linkType": "HARD", - }] - ]], - ["table", [ - ["npm:5.4.6", { - "packageLocation": "./.yarn/cache/table-npm-5.4.6-190b118384-38877a196c.zip/node_modules/table/", - "packageDependencies": [ - ["table", "npm:5.4.6"], - ["ajv", "npm:6.12.3"], - ["lodash", "npm:4.17.19"], - ["slice-ansi", "npm:2.1.0"], - ["string-width", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["tabtab", [ - ["npm:1.3.2", { - "packageLocation": "./.yarn/cache/tabtab-npm-1.3.2-a35208a143-efafd4cdb0.zip/node_modules/tabtab/", - "packageDependencies": [ - ["tabtab", "npm:1.3.2"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["inquirer", "npm:1.2.3"], - ["minimist", "npm:1.2.5"], - ["mkdirp", "npm:0.5.5"], - ["npmlog", "npm:2.0.4"], - ["object-assign", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["tailwindcss", [ - ["npm:1.6.0", { - "packageLocation": "./.yarn/cache/tailwindcss-npm-1.6.0-0e19f2e049-2458f49147.zip/node_modules/tailwindcss/", - "packageDependencies": [ - ["tailwindcss", "npm:1.6.0"], - ["@fullhuman/postcss-purgecss", "npm:2.3.0"], - ["autoprefixer", "npm:9.8.5"], - ["browserslist", "npm:4.13.0"], - ["bytes", "npm:3.1.0"], - ["chalk", "npm:4.1.0"], - ["color", "npm:3.1.2"], - ["detective", "npm:5.2.0"], - ["fs-extra", "npm:8.1.0"], - ["lodash", "npm:4.17.19"], - ["node-emoji", "npm:1.10.0"], - ["normalize.css", "npm:8.0.1"], - ["postcss", "npm:7.0.32"], - ["postcss-functions", "npm:3.0.0"], - ["postcss-js", "npm:2.0.3"], - ["postcss-nested", "npm:4.2.3"], - ["postcss-selector-parser", "npm:6.0.2"], - ["pretty-hrtime", "npm:1.0.3"], - ["reduce-css-calc", "npm:2.1.7"], - ["resolve", "patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa"] - ], - "linkType": "HARD", - }] - ]], - ["taketalk", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/taketalk-npm-1.0.0-2fc66802cb-c0cdb1adbd.zip/node_modules/taketalk/", - "packageDependencies": [ - ["taketalk", "npm:1.0.0"], - ["get-stdin", "npm:4.0.1"], - ["minimist", "npm:1.2.5"] - ], - "linkType": "HARD", - }] - ]], - ["tapable", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/tapable-npm-1.1.3-f1c2843426-b2c2ab2026.zip/node_modules/tapable/", - "packageDependencies": [ - ["tapable", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["tar", [ - ["npm:4.4.13", { - "packageLocation": "./.yarn/cache/tar-npm-4.4.13-2a4e7ee80f-d325c316ac.zip/node_modules/tar/", - "packageDependencies": [ - ["tar", "npm:4.4.13"], - ["chownr", "npm:1.1.4"], - ["fs-minipass", "npm:1.2.7"], - ["minipass", "npm:2.9.0"], - ["minizlib", "npm:1.3.3"], - ["mkdirp", "npm:0.5.5"], - ["safe-buffer", "npm:5.1.2"], - ["yallist", "npm:3.1.1"] - ], - "linkType": "HARD", - }], - ["npm:6.0.2", { - "packageLocation": "./.yarn/cache/tar-npm-6.0.2-5a3aaf4b8a-7d28cc13d7.zip/node_modules/tar/", - "packageDependencies": [ - ["tar", "npm:6.0.2"], - ["chownr", "npm:2.0.0"], - ["fs-minipass", "npm:2.1.0"], - ["minipass", "npm:3.1.3"], - ["minizlib", "npm:2.1.0"], - ["mkdirp", "npm:1.0.4"], - ["yallist", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["tar-fs", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-4739382487.zip/node_modules/tar-fs/", - "packageDependencies": [ - ["tar-fs", "npm:2.1.1"], - ["chownr", "npm:1.1.4"], - ["mkdirp-classic", "npm:0.5.3"], - ["pump", "npm:3.0.0"], - ["tar-stream", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["tar-stream", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/tar-stream-npm-2.2.0-884c79b510-7eec0a7fc8.zip/node_modules/tar-stream/", - "packageDependencies": [ - ["tar-stream", "npm:2.2.0"], - ["bl", "npm:4.1.0"], - ["end-of-stream", "npm:1.4.4"], - ["fs-constants", "npm:1.0.0"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:3.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["term-size", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/unplugged/term-size-npm-1.2.0-7629e52ca8/node_modules/term-size/", - "packageDependencies": [ - ["term-size", "npm:1.2.0"], - ["execa", "npm:0.7.0"] - ], - "linkType": "HARD", - }], - ["npm:2.2.0", { - "packageLocation": "./.yarn/unplugged/term-size-npm-2.2.0-2f8b439547/node_modules/term-size/", - "packageDependencies": [ - ["term-size", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["terminal-link", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/terminal-link-npm-2.1.1-de80341758-f84553e11e.zip/node_modules/terminal-link/", - "packageDependencies": [ - ["terminal-link", "npm:2.1.1"], - ["ansi-escapes", "npm:4.3.1"], - ["supports-hyperlinks", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["terser", [ - ["npm:4.6.13", { - "packageLocation": "./.yarn/cache/terser-npm-4.6.13-0c96d12fe2-dbb9ff02c2.zip/node_modules/terser/", - "packageDependencies": [ - ["terser", "npm:4.6.13"], - ["commander", "npm:2.20.3"], - ["source-map", "npm:0.6.1"], - ["source-map-support", "npm:0.5.19"] - ], - "linkType": "HARD", - }], - ["npm:4.8.0", { - "packageLocation": "./.yarn/cache/terser-npm-4.8.0-272e3d2592-d7ab95898b.zip/node_modules/terser/", - "packageDependencies": [ - ["terser", "npm:4.8.0"], - ["commander", "npm:2.20.3"], - ["source-map", "npm:0.6.1"], - ["source-map-support", "npm:0.5.19"] - ], - "linkType": "HARD", - }], - ["npm:5.3.0", { - "packageLocation": "./.yarn/cache/terser-npm-5.3.0-e02031819a-43f35f253f.zip/node_modules/terser/", - "packageDependencies": [ - ["terser", "npm:5.3.0"], - ["commander", "npm:2.20.3"], - ["source-map", "npm:0.6.1"], - ["source-map-support", "npm:0.5.19"] - ], - "linkType": "HARD", - }], - ["npm:5.5.1", { - "packageLocation": "./.yarn/cache/terser-npm-5.5.1-6fc0e0b56a-f96abd0fb4.zip/node_modules/terser/", - "packageDependencies": [ - ["terser", "npm:5.5.1"], - ["commander", "npm:2.20.3"], - ["source-map", "npm:0.7.3"], - ["source-map-support", "npm:0.5.19"] - ], - "linkType": "HARD", - }] - ]], - ["terser-webpack-plugin", [ - ["npm:1.4.4", { - "packageLocation": "./.yarn/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/", - "packageDependencies": [ - ["terser-webpack-plugin", "npm:1.4.4"] - ], - "linkType": "SOFT", - }], - ["virtual:3326bd82d722f425fcbbdc2c3c15cdbd2686d7ca5c17e17343d17579576b30619e272e5db31323698528f24803ac2c256fbb4b8caa0ea5ecd8016fdac7f3b3a8#npm:1.4.4", { - "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-c1dc97a0a9/0/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/", - "packageDependencies": [ - ["terser-webpack-plugin", "virtual:3326bd82d722f425fcbbdc2c3c15cdbd2686d7ca5c17e17343d17579576b30619e272e5db31323698528f24803ac2c256fbb4b8caa0ea5ecd8016fdac7f3b3a8#npm:1.4.4"], - ["@types/webpack", null], - ["cacache", "npm:12.0.4"], - ["find-cache-dir", "npm:2.1.0"], - ["is-wsl", "npm:1.1.0"], - ["schema-utils", "npm:1.0.0"], - ["serialize-javascript", "npm:3.1.0"], - ["source-map", "npm:0.6.1"], - ["terser", "npm:4.8.0"], - ["webpack", "npm:4.44.0"], - ["webpack-sources", "npm:1.4.3"], - ["worker-farm", "npm:1.7.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:d2c7511dff410609c253fbc4a1857c7c8a9f78f7d70ef742539e5f05378c4a183343c709d614406382293c1e630ad3d184fa5fd8ddfaae4802a489e4e6f50c62#npm:1.4.4", { - "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-5a04020da6/0/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/", - "packageDependencies": [ - ["terser-webpack-plugin", "virtual:d2c7511dff410609c253fbc4a1857c7c8a9f78f7d70ef742539e5f05378c4a183343c709d614406382293c1e630ad3d184fa5fd8ddfaae4802a489e4e6f50c62#npm:1.4.4"], - ["@types/webpack", null], - ["cacache", "npm:12.0.4"], - ["find-cache-dir", "npm:2.1.0"], - ["is-wsl", "npm:1.1.0"], - ["schema-utils", "npm:1.0.0"], - ["serialize-javascript", "npm:3.1.0"], - ["source-map", "npm:0.6.1"], - ["terser", "npm:4.8.0"], - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"], - ["webpack-sources", "npm:1.4.3"], - ["worker-farm", "npm:1.7.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }], - ["virtual:e073844e153b92b319dc2d9b0f6ae20a05893b49f2b56ff72631b73967313ef744d0a2d62f52dda20ccf963d6092e0c06e90d20a3c0b6f831e756347e8a70b13#npm:1.4.4", { - "packageLocation": "./.yarn/$$virtual/terser-webpack-plugin-virtual-fa90a1c94c/0/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/", - "packageDependencies": [ - ["terser-webpack-plugin", "virtual:e073844e153b92b319dc2d9b0f6ae20a05893b49f2b56ff72631b73967313ef744d0a2d62f52dda20ccf963d6092e0c06e90d20a3c0b6f831e756347e8a70b13#npm:1.4.4"], - ["@types/webpack", null], - ["cacache", "npm:12.0.4"], - ["find-cache-dir", "npm:2.1.0"], - ["is-wsl", "npm:1.1.0"], - ["schema-utils", "npm:1.0.0"], - ["serialize-javascript", "npm:3.1.0"], - ["source-map", "npm:0.6.1"], - ["terser", "npm:4.8.0"], - ["webpack", "npm:4.43.0"], - ["webpack-sources", "npm:1.4.3"], - ["worker-farm", "npm:1.7.0"] - ], - "packagePeers": [ - "@types/webpack", - "webpack" - ], - "linkType": "HARD", - }] - ]], - ["test", [ - ["workspace:apps/test", { - "packageLocation": "./apps/test/", - "packageDependencies": [ - ["test", "workspace:apps/test"], - ["@tailwindcss/ui", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0"], - ["@tinacms/react-modals", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/js-cookie", "npm:2.2.6"], - ["@types/node", "npm:13.13.15"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@urql/core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3"], - ["@xstate/react", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1"], - ["autoprefixer", "npm:9.8.5"], - ["codemirror", "npm:5.59.1"], - ["dotenv", "npm:8.2.0"], - ["fast-glob", "npm:3.2.4"], - ["final-form", "npm:4.20.1"], - ["formik", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5"], - ["graphiql", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["js-cookie", "npm:2.2.1"], - ["next", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1"], - ["nodemon", "npm:2.0.7"], - ["postcss-import", "npm:12.0.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["react-markdown", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"], - ["styled-jsx", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0"], - ["tailwindcss", "npm:1.6.0"], - ["tina-graphql", "workspace:packages/tina-graphql"], - ["tina-graphql-gateway", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway"], - ["tina-graphql-gateway-cli", "workspace:packages/tina-graphql-gateway-cli"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["tinacms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["urql", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0"], - ["xstate", "npm:4.13.0"], - ["yup", "npm:0.28.5"] - ], - "linkType": "SOFT", - }] - ]], - ["test-exclude", [ - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-68294d1006.zip/node_modules/test-exclude/", - "packageDependencies": [ - ["test-exclude", "npm:6.0.0"], - ["@istanbuljs/schema", "npm:0.1.2"], - ["glob", "npm:7.1.6"], - ["minimatch", "npm:3.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["text-table", [ - ["npm:0.2.0", { - "packageLocation": "./.yarn/cache/text-table-npm-0.2.0-d92a778b59-373904ce70.zip/node_modules/text-table/", - "packageDependencies": [ - ["text-table", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["textextensions", [ - ["npm:2.6.0", { - "packageLocation": "./.yarn/cache/textextensions-npm-2.6.0-ef0374127c-96ca15779a.zip/node_modules/textextensions/", - "packageDependencies": [ - ["textextensions", "npm:2.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["thenify", [ - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/thenify-npm-3.3.1-030bedb22c-c3cbda4f5f.zip/node_modules/thenify/", - "packageDependencies": [ - ["thenify", "npm:3.3.1"], - ["any-promise", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["thenify-all", [ - ["npm:1.6.0", { - "packageLocation": "./.yarn/cache/thenify-all-npm-1.6.0-96309bbc8b-22775c13a1.zip/node_modules/thenify-all/", - "packageDependencies": [ - ["thenify-all", "npm:1.6.0"], - ["thenify", "npm:3.3.1"] - ], - "linkType": "HARD", - }] - ]], - ["throat", [ - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/throat-npm-5.0.0-288ce6540a-2fa41c09cc.zip/node_modules/throat/", - "packageDependencies": [ - ["throat", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["through", [ - ["npm:2.3.8", { - "packageLocation": "./.yarn/cache/through-npm-2.3.8-df5f72a16e-918d915168.zip/node_modules/through/", - "packageDependencies": [ - ["through", "npm:2.3.8"] - ], - "linkType": "HARD", - }] - ]], - ["through2", [ - ["npm:2.0.5", { - "packageLocation": "./.yarn/cache/through2-npm-2.0.5-77d90f13cd-7427403555.zip/node_modules/through2/", - "packageDependencies": [ - ["through2", "npm:2.0.5"], - ["readable-stream", "npm:2.3.7"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/through2-npm-3.0.2-403f837012-26c76a8989.zip/node_modules/through2/", - "packageDependencies": [ - ["through2", "npm:3.0.2"], - ["inherits", "npm:2.0.4"], - ["readable-stream", "npm:3.6.0"] - ], - "linkType": "HARD", - }] - ]], - ["timed-out", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/timed-out-npm-4.0.1-1fe3eee142-e304664080.zip/node_modules/timed-out/", - "packageDependencies": [ - ["timed-out", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["timers-browserify", [ - ["npm:2.0.11", { - "packageLocation": "./.yarn/cache/timers-browserify-npm-2.0.11-f20435228f-73faad065e.zip/node_modules/timers-browserify/", - "packageDependencies": [ - ["timers-browserify", "npm:2.0.11"], - ["setimmediate", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["timsort", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/timsort-npm-0.3.0-868a28166c-d8300c3ecf.zip/node_modules/timsort/", - "packageDependencies": [ - ["timsort", "npm:0.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["tina-cloud-starter", [ - ["workspace:apps/tina-cloud-starter", { - "packageLocation": "./apps/tina-cloud-starter/", - "packageDependencies": [ - ["tina-cloud-starter", "workspace:apps/tina-cloud-starter"], - ["@types/js-cookie", "npm:2.2.6"], - ["@types/node", "npm:13.13.15"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["next", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:10.0.5"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:17.0.2"], - ["react-markdown", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.0.3"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"], - ["styled-jsx", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0"], - ["tina-graphql-gateway", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway"], - ["tina-graphql-gateway-cli", "workspace:packages/tina-graphql-gateway-cli"], - ["tinacms", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"] - ], - "linkType": "SOFT", - }] - ]], - ["tina-graphql", [ - ["workspace:packages/tina-graphql", { - "packageLocation": "./packages/tina-graphql/", - "packageDependencies": [ - ["tina-graphql", "workspace:packages/tina-graphql"], - ["@graphql-tools/schema", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["@octokit/auth-app", "npm:2.10.0"], - ["@octokit/graphql", "npm:4.5.6"], - ["@octokit/rest", "npm:18.0.6"], - ["@types/cors", "npm:2.8.7"], - ["@types/express", "npm:4.17.8"], - ["@types/fs-extra", "npm:9.0.2"], - ["@types/jest", "npm:26.0.7"], - ["@types/js-yaml", "npm:3.12.5"], - ["@types/lodash", "npm:4.14.161"], - ["@types/lodash.camelcase", "npm:4.3.6"], - ["@types/lodash.upperfirst", "npm:4.3.6"], - ["@types/lru-cache", "npm:5.1.0"], - ["@types/ws", "npm:7.2.6"], - ["@types/yup", "npm:0.29.7"], - ["body-parser", "npm:1.19.0"], - ["cors", "npm:2.8.5"], - ["dataloader", "npm:2.0.0"], - ["date-fns", "npm:2.21.1"], - ["express", "npm:4.17.1"], - ["fast-glob", "npm:3.2.5"], - ["fs-extra", "npm:9.0.1"], - ["graphql", "npm:15.3.0"], - ["graphql-tools", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1"], - ["graphql-type-json", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.3.2"], - ["gray-matter", "npm:4.0.2"], - ["jest", "npm:26.1.0"], - ["jest-diff", "npm:26.4.2"], - ["jest-matcher-utils", "npm:26.4.2"], - ["js-yaml", "npm:3.14.0"], - ["lodash", "npm:4.17.20"], - ["lru-cache", "npm:6.0.0"], - ["nodemon", "npm:2.0.4"], - ["prettier", "npm:2.2.1"], - ["rehype-format", "npm:3.1.0"], - ["rehype-stringify", "npm:8.0.0"], - ["remark", "npm:13.0.0"], - ["remark-frontmatter", "npm:3.0.0"], - ["remark-mdx", "npm:2.0.0-next.8"], - ["remark-parse", "npm:8.0.3"], - ["remark-rehype", "npm:8.0.0"], - ["remark-stringify", "npm:8.1.1"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["ts-jest", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:26.1.4"], - ["tslib", "npm:1.13.0"], - ["tsup", "npm:3.7.0"], - ["typedoc", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.19.2"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["unified", "npm:9.2.0"], - ["unist-util-remove-position", "npm:3.0.0"], - ["vfile", "npm:4.2.0"], - ["ws", "virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1"], - ["yup", "npm:0.29.3"] - ], - "linkType": "SOFT", - }] - ]], - ["tina-graphql-gateway", [ - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway", { - "packageLocation": "./.yarn/$$virtual/tina-graphql-gateway-virtual-da6e44dde8/1/packages/tina-graphql-gateway/", - "packageDependencies": [ - ["tina-graphql-gateway", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway"], - ["@graphql-codegen/core", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript-operations", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0"], - ["@tinacms/react-modals", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/crypto-js", "npm:3.1.47"], - ["@types/lodash", "npm:4.14.169"], - ["@types/node", "npm:14.0.27"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/react-is", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms", null], - ["@types/tinacms__core", null], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["@types/yup", "npm:0.29.10"], - ["@xstate/react", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0"], - ["codemirror", "npm:5.56.0"], - ["cors", "npm:2.8.5"], - ["crypto-js", "npm:4.0.0"], - ["final-form", "npm:4.20.1"], - ["final-form-arrays", "virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["isomorphic-unfetch", "npm:3.0.0"], - ["lodash.get", "npm:4.4.2"], - ["lodash.has", "npm:4.5.2"], - ["lodash.merge", "npm:4.6.2"], - ["next", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2"], - ["node-fetch", "npm:2.6.0"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:16.13.1"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["tinacms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0"], - ["tsup", "npm:3.7.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["xstate", "npm:4.15.1"], - ["yup", "npm:0.32.0"] - ], - "packagePeers": [ - "@tinacms/core", - "@tinacms/forms", - "@tinacms/icons", - "@tinacms/react-core", - "@tinacms/react-forms", - "@tinacms/react-modals", - "@tinacms/styles", - "@types/react-dom", - "@types/react-is", - "@types/react", - "@types/styled-components", - "@types/tinacms", - "@types/tinacms__core", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "react-dom", - "react-is", - "react", - "styled-components", - "tinacms" - ], - "linkType": "SOFT", - }], - ["virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway", { - "packageLocation": "./.yarn/$$virtual/tina-graphql-gateway-virtual-da8524296e/1/packages/tina-graphql-gateway/", - "packageDependencies": [ - ["tina-graphql-gateway", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway"], - ["@graphql-codegen/core", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript-operations", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-forms", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/crypto-js", "npm:3.1.47"], - ["@types/lodash", "npm:4.14.169"], - ["@types/node", "npm:14.0.27"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/react-is", null], - ["@types/styled-components", "npm:5.1.3"], - ["@types/tinacms", null], - ["@types/tinacms__core", null], - ["@types/tinacms__forms", null], - ["@types/tinacms__icons", null], - ["@types/tinacms__react-core", null], - ["@types/tinacms__react-forms", null], - ["@types/tinacms__react-modals", null], - ["@types/tinacms__styles", null], - ["@types/yup", "npm:0.29.10"], - ["@xstate/react", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0"], - ["codemirror", "npm:5.56.0"], - ["cors", "npm:2.8.5"], - ["crypto-js", "npm:4.0.0"], - ["final-form", "npm:4.20.1"], - ["final-form-arrays", "virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["isomorphic-unfetch", "npm:3.0.0"], - ["lodash.get", "npm:4.4.2"], - ["lodash.has", "npm:4.5.2"], - ["lodash.merge", "npm:4.6.2"], - ["next", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2"], - ["node-fetch", "npm:2.6.0"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-is", "npm:17.0.2"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["tinacms", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0"], - ["tsup", "npm:3.7.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["xstate", "npm:4.15.1"], - ["yup", "npm:0.32.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react-is", - "@types/react", - "@types/styled-components", - "@types/tinacms", - "@types/tinacms__core", - "@types/tinacms__forms", - "@types/tinacms__icons", - "@types/tinacms__react-core", - "@types/tinacms__react-forms", - "@types/tinacms__react-modals", - "@types/tinacms__styles", - "react-dom", - "react-is", - "react", - "styled-components", - "tinacms" - ], - "linkType": "SOFT", - }], - ["workspace:packages/tina-graphql-gateway", { - "packageLocation": "./packages/tina-graphql-gateway/", - "packageDependencies": [ - ["tina-graphql-gateway", "workspace:packages/tina-graphql-gateway"], - ["@graphql-codegen/core", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript-operations", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/forms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0"], - ["@tinacms/icons", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0"], - ["@tinacms/react-core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13"], - ["@tinacms/react-forms", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/crypto-js", "npm:3.1.47"], - ["@types/lodash", "npm:4.14.169"], - ["@types/node", "npm:14.0.27"], - ["@types/react", "npm:16.9.43"], - ["@types/styled-components", "npm:5.1.3"], - ["@types/yup", "npm:0.29.10"], - ["@xstate/react", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0"], - ["codemirror", "npm:5.56.0"], - ["cors", "npm:2.8.5"], - ["crypto-js", "npm:4.0.0"], - ["final-form", "npm:4.20.1"], - ["final-form-arrays", "virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2"], - ["graphql", "npm:15.3.0"], - ["graphql-tag", "virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0"], - ["isomorphic-unfetch", "npm:3.0.0"], - ["lodash.get", "npm:4.4.2"], - ["lodash.has", "npm:4.5.2"], - ["lodash.merge", "npm:4.6.2"], - ["next", "virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2"], - ["node-fetch", "npm:2.6.0"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["tinacms", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0"], - ["tsup", "npm:3.7.0"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["xstate", "npm:4.15.1"], - ["yup", "npm:0.32.0"] - ], - "linkType": "SOFT", - }] - ]], - ["tina-graphql-gateway-cli", [ - ["workspace:packages/tina-graphql-gateway-cli", { - "packageLocation": "./packages/tina-graphql-gateway-cli/", - "packageDependencies": [ - ["tina-graphql-gateway-cli", "workspace:packages/tina-graphql-gateway-cli"], - ["@graphql-codegen/core", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@graphql-codegen/typescript-operations", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6"], - ["@types/clear", "npm:0.1.0"], - ["@types/cors", "npm:2.8.5"], - ["@types/express", "npm:4.17.7"], - ["@types/express-graphql", "npm:0.9.0"], - ["@types/figlet", "npm:1.2.0"], - ["@types/inquirer", "npm:6.5.0"], - ["@types/jest", "npm:26.0.4"], - ["@types/js-yaml", "npm:4.0.0"], - ["@types/listr", "npm:0.14.2"], - ["@types/lodash", "npm:4.14.158"], - ["@types/lodash.get", "npm:4.4.6"], - ["@types/yup", "npm:0.29.11"], - ["ajv", "npm:6.12.3"], - ["axios", "npm:0.19.0"], - ["body-parser", "npm:1.19.0"], - ["chalk", "npm:2.4.2"], - ["chokidar", "npm:3.5.1"], - ["clear", "npm:0.1.0"], - ["commander", "npm:5.1.0"], - ["cookie-parser", "npm:1.4.5"], - ["cors", "npm:2.8.5"], - ["crypto", "npm:1.0.1"], - ["esm", "npm:3.2.25"], - ["express", "npm:4.17.1"], - ["express-graphql", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:0.11.0"], - ["fast-glob", "npm:3.2.4"], - ["figlet", "npm:1.5.0"], - ["fs-extra", "npm:9.0.1"], - ["generator-code", "npm:1.2.19"], - ["graphql", "npm:15.3.0"], - ["http-proxy", "npm:1.18.1"], - ["inquirer", "npm:6.5.2"], - ["isomorphic-unfetch", "npm:3.0.0"], - ["jest", "npm:26.1.0"], - ["js-yaml", "npm:4.0.0"], - ["jsonwebtoken", "npm:8.5.1"], - ["jwks-rsa", "npm:1.8.1"], - ["listr", "npm:0.14.3"], - ["lodash", "npm:4.17.19"], - ["lodash.get", "npm:4.4.2"], - ["ms", "npm:2.1.2"], - ["normalize-path", "npm:3.0.0"], - ["open", "npm:6.4.0"], - ["ora", "npm:4.0.5"], - ["path", "npm:0.12.7"], - ["simple-git", "npm:1.124.0"], - ["tina-graphql", "workspace:packages/tina-graphql"], - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["ts-jest", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:26.5.3"], - ["tsup", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:4.6.1"], - ["typescript", "patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e"], - ["yaml", "npm:1.10.0"], - ["yo", "npm:3.1.1"], - ["yup", "npm:0.32.9"] - ], - "linkType": "SOFT", - }] - ]], - ["tina-graphql-helpers", [ - ["workspace:packages/tina-graphql-helpers", { - "packageLocation": "./packages/tina-graphql-helpers/", - "packageDependencies": [ - ["tina-graphql-helpers", "workspace:packages/tina-graphql-helpers"], - ["@types/jest", "npm:26.0.7"], - ["@types/lodash.camelcase", "npm:4.3.6"], - ["@types/lodash.get", "npm:4.4.6"], - ["@types/lodash.kebabcase", "npm:4.1.6"], - ["@types/lodash.set", "npm:4.3.6"], - ["@types/lodash.upperfirst", "npm:4.3.6"], - ["@types/node", "npm:14.14.31"], - ["@types/prettier", "npm:2.2.1"], - ["graphql", "npm:15.3.0"], - ["jest", "npm:26.6.3"], - ["lodash.camelcase", "npm:4.3.0"], - ["lodash.get", "npm:4.4.2"], - ["lodash.kebabcase", "npm:4.1.1"], - ["lodash.set", "npm:4.3.2"], - ["lodash.snakecase", "npm:4.1.1"], - ["lodash.upperfirst", "npm:4.3.1"], - ["object-visit", "npm:1.0.1"], - ["prettier", "npm:2.2.1"], - ["ts-jest", "virtual:a6d35f70c3e2fd33fcfc031f3752f6a635ba8af0cb5c7585138fdaa13987bf1ae287180f3e6810fd5afdec09aad07c4f87783db598c4bba245b6056d674aaeb4#npm:26.5.3"], - ["tslib", "npm:1.13.0"], - ["tsup", "npm:3.7.0"], - ["typescript", "patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e"] - ], - "linkType": "SOFT", - }] - ]], - ["tinacms", [ - ["npm:0.31.0", { - "packageLocation": "./.yarn/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/", - "packageDependencies": [ - ["tinacms", "npm:0.31.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/tinacms-virtual-3cfb69b39f/0/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/", - "packageDependencies": [ - ["tinacms", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0"], - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/fields", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-sidebar", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-toolbar", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/styles", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-dropzone", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0"], - ["styled-components", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "@types/styled-components", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/tinacms-virtual-50db42f9eb/0/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/", - "packageDependencies": [ - ["tinacms", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0"], - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/fields", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-alerts", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-sidebar", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/react-toolbar", "virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0"], - ["@tinacms/styles", "virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-dropzone", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0"], - ["styled-components", "virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "@types/styled-components", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }], - ["virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0", { - "packageLocation": "./.yarn/$$virtual/tinacms-virtual-de40cc3b5e/0/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/", - "packageDependencies": [ - ["tinacms", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0"], - ["@tinacms/alerts", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/core", "npm:0.31.0"], - ["@tinacms/fields", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/form-builder", "virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0"], - ["@tinacms/forms", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/icons", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-alerts", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-core", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0"], - ["@tinacms/react-forms", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-modals", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-screens", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-sidebar", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/react-toolbar", "virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0"], - ["@tinacms/styles", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0"], - ["@types/react", "npm:16.9.43"], - ["@types/react-dom", null], - ["@types/styled-components", "npm:5.1.3"], - ["final-form", "npm:4.20.1"], - ["prop-types", "npm:15.7.2"], - ["react", "npm:16.13.1"], - ["react-beautiful-dnd", "virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5"], - ["react-dom", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1"], - ["react-dropzone", "virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0"], - ["styled-components", "virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0"] - ], - "packagePeers": [ - "@types/react-dom", - "@types/react", - "@types/styled-components", - "react-dom", - "react", - "styled-components" - ], - "linkType": "HARD", - }] - ]], - ["tiny-invariant", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/tiny-invariant-npm-1.1.0-105cc1fc8e-64318fbd77.zip/node_modules/tiny-invariant/", - "packageDependencies": [ - ["tiny-invariant", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["tiny-warning", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/tiny-warning-npm-1.0.3-750b7a07c4-6cf9f66cb7.zip/node_modules/tiny-warning/", - "packageDependencies": [ - ["tiny-warning", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["tinycolor2", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/tinycolor2-npm-1.4.1-c3c0a28523-7667d9b10c.zip/node_modules/tinycolor2/", - "packageDependencies": [ - ["tinycolor2", "npm:1.4.1"] - ], - "linkType": "HARD", - }] - ]], - ["titleize", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/titleize-npm-1.0.1-7d82cb1c96-53f262e61d.zip/node_modules/titleize/", - "packageDependencies": [ - ["titleize", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["tmp", [ - ["npm:0.0.29", { - "packageLocation": "./.yarn/cache/tmp-npm-0.0.29-33768985a5-91667c7a2e.zip/node_modules/tmp/", - "packageDependencies": [ - ["tmp", "npm:0.0.29"], - ["os-tmpdir", "npm:1.0.2"] - ], - "linkType": "HARD", - }], - ["npm:0.0.33", { - "packageLocation": "./.yarn/cache/tmp-npm-0.0.33-bcbf65df2a-77666ca424.zip/node_modules/tmp/", - "packageDependencies": [ - ["tmp", "npm:0.0.33"], - ["os-tmpdir", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["tmpl", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/tmpl-npm-1.0.4-35b37c2875-44de07fb81.zip/node_modules/tmpl/", - "packageDependencies": [ - ["tmpl", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["to-arraybuffer", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/to-arraybuffer-npm-1.0.1-a57b097c21-23e72a6636.zip/node_modules/to-arraybuffer/", - "packageDependencies": [ - ["to-arraybuffer", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["to-fast-properties", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-40e6198424.zip/node_modules/to-fast-properties/", - "packageDependencies": [ - ["to-fast-properties", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["to-object-path", [ - ["npm:0.3.0", { - "packageLocation": "./.yarn/cache/to-object-path-npm-0.3.0-241b5ffa9c-a6a5a50225.zip/node_modules/to-object-path/", - "packageDependencies": [ - ["to-object-path", "npm:0.3.0"], - ["kind-of", "npm:3.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["to-readable-stream", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/to-readable-stream-npm-1.0.0-4fa4da8130-aa4b65d3e7.zip/node_modules/to-readable-stream/", - "packageDependencies": [ - ["to-readable-stream", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["to-regex", [ - ["npm:3.0.2", { - "packageLocation": "./.yarn/cache/to-regex-npm-3.0.2-3af893c972-ed733fdff8.zip/node_modules/to-regex/", - "packageDependencies": [ - ["to-regex", "npm:3.0.2"], - ["define-property", "npm:2.0.2"], - ["extend-shallow", "npm:3.0.2"], - ["regex-not", "npm:1.0.2"], - ["safe-regex", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["to-regex-range", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/to-regex-range-npm-2.1.1-60af4c593e-801501b59d.zip/node_modules/to-regex-range/", - "packageDependencies": [ - ["to-regex-range", "npm:2.1.1"], - ["is-number", "npm:3.0.0"], - ["repeat-string", "npm:1.6.1"] - ], - "linkType": "HARD", - }], - ["npm:5.0.1", { - "packageLocation": "./.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-2b6001e314.zip/node_modules/to-regex-range/", - "packageDependencies": [ - ["to-regex-range", "npm:5.0.1"], - ["is-number", "npm:7.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["toggle-selection", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/toggle-selection-npm-1.0.6-c506b73005-c47702aad7.zip/node_modules/toggle-selection/", - "packageDependencies": [ - ["toggle-selection", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["toidentifier", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/toidentifier-npm-1.0.0-5dad252f90-95720e8a0f.zip/node_modules/toidentifier/", - "packageDependencies": [ - ["toidentifier", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["toposort", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/toposort-npm-2.0.2-d472329c7d-9e70bf92de.zip/node_modules/toposort/", - "packageDependencies": [ - ["toposort", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["touch", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/touch-npm-3.1.0-e2eacebbda-97a6a508e3.zip/node_modules/touch/", - "packageDependencies": [ - ["touch", "npm:3.1.0"], - ["nopt", "npm:1.0.10"] - ], - "linkType": "HARD", - }] - ]], - ["tough-cookie", [ - ["npm:2.5.0", { - "packageLocation": "./.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-bf5d6fac5c.zip/node_modules/tough-cookie/", - "packageDependencies": [ - ["tough-cookie", "npm:2.5.0"], - ["psl", "npm:1.8.0"], - ["punycode", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/tough-cookie-npm-3.0.1-09a21f6bd7-dc1eee69c6.zip/node_modules/tough-cookie/", - "packageDependencies": [ - ["tough-cookie", "npm:3.0.1"], - ["ip-regex", "npm:2.1.0"], - ["psl", "npm:1.8.0"], - ["punycode", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-161dc4728e.zip/node_modules/tough-cookie/", - "packageDependencies": [ - ["tough-cookie", "npm:4.0.0"], - ["psl", "npm:1.8.0"], - ["punycode", "npm:2.1.1"], - ["universalify", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["tr46", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/tr46-npm-1.0.1-9547f343a4-66e2e4d679.zip/node_modules/tr46/", - "packageDependencies": [ - ["tr46", "npm:1.0.1"], - ["punycode", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/tr46-npm-2.0.2-9a9c502938-c8c2219079.zip/node_modules/tr46/", - "packageDependencies": [ - ["tr46", "npm:2.0.2"], - ["punycode", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["traverse", [ - ["npm:0.6.6", { - "packageLocation": "./.yarn/cache/traverse-npm-0.6.6-584cfa4b5f-f2bfaae692.zip/node_modules/traverse/", - "packageDependencies": [ - ["traverse", "npm:0.6.6"] - ], - "linkType": "HARD", - }] - ]], - ["tree-kill", [ - ["npm:1.2.2", { - "packageLocation": "./.yarn/cache/tree-kill-npm-1.2.2-3da0e5a759-967643efa4.zip/node_modules/tree-kill/", - "packageDependencies": [ - ["tree-kill", "npm:1.2.2"] - ], - "linkType": "HARD", - }] - ]], - ["trim", [ - ["npm:0.0.1", { - "packageLocation": "./.yarn/cache/trim-npm-0.0.1-d138075543-ecf8478384.zip/node_modules/trim/", - "packageDependencies": [ - ["trim", "npm:0.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["trim-newlines", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/trim-newlines-npm-1.0.0-04abefc015-acc229ae8f.zip/node_modules/trim-newlines/", - "packageDependencies": [ - ["trim-newlines", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["trim-trailing-lines", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/trim-trailing-lines-npm-1.1.3-4ce3bbeef5-e09d4a1f58.zip/node_modules/trim-trailing-lines/", - "packageDependencies": [ - ["trim-trailing-lines", "npm:1.1.3"] - ], - "linkType": "HARD", - }] - ]], - ["trough", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/trough-npm-1.0.5-791a6e37e5-c116d9e7dd.zip/node_modules/trough/", - "packageDependencies": [ - ["trough", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["truncate-utf8-bytes", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/truncate-utf8-bytes-npm-1.0.2-ed694c53b0-208b1197a1.zip/node_modules/truncate-utf8-bytes/", - "packageDependencies": [ - ["truncate-utf8-bytes", "npm:1.0.2"], - ["utf8-byte-length", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["ts-interface-checker", [ - ["npm:0.1.13", { - "packageLocation": "./.yarn/cache/ts-interface-checker-npm-0.1.13-0c7b064494-df3e240963.zip/node_modules/ts-interface-checker/", - "packageDependencies": [ - ["ts-interface-checker", "npm:0.1.13"] - ], - "linkType": "HARD", - }] - ]], - ["ts-invariant", [ - ["npm:0.4.4", { - "packageLocation": "./.yarn/cache/ts-invariant-npm-0.4.4-9f97371ec3-0280fb0e85.zip/node_modules/ts-invariant/", - "packageDependencies": [ - ["ts-invariant", "npm:0.4.4"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["ts-jest", [ - ["npm:26.1.4", { - "packageLocation": "./.yarn/cache/ts-jest-npm-26.1.4-bae7f255bf-e69d84f07e.zip/node_modules/ts-jest/", - "packageDependencies": [ - ["ts-jest", "npm:26.1.4"] - ], - "linkType": "SOFT", - }], - ["npm:26.5.3", { - "packageLocation": "./.yarn/cache/ts-jest-npm-26.5.3-94fff5bfc5-6f42972081.zip/node_modules/ts-jest/", - "packageDependencies": [ - ["ts-jest", "npm:26.5.3"] - ], - "linkType": "SOFT", - }], - ["virtual:a6d35f70c3e2fd33fcfc031f3752f6a635ba8af0cb5c7585138fdaa13987bf1ae287180f3e6810fd5afdec09aad07c4f87783db598c4bba245b6056d674aaeb4#npm:26.5.3", { - "packageLocation": "./.yarn/$$virtual/ts-jest-virtual-f91dbca73a/0/cache/ts-jest-npm-26.5.3-94fff5bfc5-6f42972081.zip/node_modules/ts-jest/", - "packageDependencies": [ - ["ts-jest", "virtual:a6d35f70c3e2fd33fcfc031f3752f6a635ba8af0cb5c7585138fdaa13987bf1ae287180f3e6810fd5afdec09aad07c4f87783db598c4bba245b6056d674aaeb4#npm:26.5.3"], - ["@types/jest", "npm:26.0.7"], - ["@types/typescript", null], - ["bs-logger", "npm:0.2.6"], - ["buffer-from", "npm:1.1.1"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["jest", "npm:26.6.3"], - ["jest-util", "npm:26.1.0"], - ["json5", "npm:2.1.3"], - ["lodash", "npm:4.17.21"], - ["make-error", "npm:1.3.6"], - ["mkdirp", "npm:1.0.4"], - ["semver", "npm:7.3.2"], - ["typescript", "patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e"], - ["yargs-parser", "npm:20.2.7"] - ], - "packagePeers": [ - "@types/jest", - "@types/typescript", - "jest", - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:26.5.3", { - "packageLocation": "./.yarn/$$virtual/ts-jest-virtual-0df94414f6/0/cache/ts-jest-npm-26.5.3-94fff5bfc5-6f42972081.zip/node_modules/ts-jest/", - "packageDependencies": [ - ["ts-jest", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:26.5.3"], - ["@types/jest", "npm:26.0.4"], - ["@types/typescript", null], - ["bs-logger", "npm:0.2.6"], - ["buffer-from", "npm:1.1.1"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["jest", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["json5", "npm:2.1.3"], - ["lodash", "npm:4.17.21"], - ["make-error", "npm:1.3.6"], - ["mkdirp", "npm:1.0.4"], - ["semver", "npm:7.3.2"], - ["typescript", "patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e"], - ["yargs-parser", "npm:20.2.7"] - ], - "packagePeers": [ - "@types/jest", - "@types/typescript", - "jest", - "typescript" - ], - "linkType": "HARD", - }], - ["virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:26.1.4", { - "packageLocation": "./.yarn/$$virtual/ts-jest-virtual-93cc783227/0/cache/ts-jest-npm-26.1.4-bae7f255bf-e69d84f07e.zip/node_modules/ts-jest/", - "packageDependencies": [ - ["ts-jest", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:26.1.4"], - ["@types/jest", "npm:26.0.7"], - ["@types/typescript", null], - ["bs-logger", "npm:0.2.6"], - ["buffer-from", "npm:1.1.1"], - ["fast-json-stable-stringify", "npm:2.1.0"], - ["jest", "npm:26.1.0"], - ["jest-util", "npm:26.1.0"], - ["json5", "npm:2.1.3"], - ["lodash.memoize", "npm:4.1.2"], - ["make-error", "npm:1.3.6"], - ["mkdirp", "npm:1.0.4"], - ["semver", "npm:7.3.2"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"], - ["yargs-parser", "npm:18.1.3"] - ], - "packagePeers": [ - "@types/jest", - "@types/typescript", - "jest", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["ts-pnp", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/ts-pnp-npm-1.2.0-43620de7df-78341a2793.zip/node_modules/ts-pnp/", - "packageDependencies": [ - ["ts-pnp", "npm:1.2.0"] - ], - "linkType": "SOFT", - }], - ["virtual:c497046afcbefb679e3fe12575088ec12205b913a36c3d158b27e7cd646d448426540ab27ba98e54ddb75b1ed97de7e3ce5dc0158c9ba4e76ce942c87e5d02d8#npm:1.2.0", { - "packageLocation": "./.yarn/$$virtual/ts-pnp-virtual-abd2827f29/0/cache/ts-pnp-npm-1.2.0-43620de7df-78341a2793.zip/node_modules/ts-pnp/", - "packageDependencies": [ - ["ts-pnp", "virtual:c497046afcbefb679e3fe12575088ec12205b913a36c3d158b27e7cd646d448426540ab27ba98e54ddb75b1ed97de7e3ce5dc0158c9ba4e76ce942c87e5d02d8#npm:1.2.0"], - ["@types/typescript", null], - ["typescript", null] - ], - "packagePeers": [ - "@types/typescript", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["tslib", [ - ["npm:1.13.0", { - "packageLocation": "./.yarn/cache/tslib-npm-1.13.0-f5e9ea9b66-5dc3bdaea3.zip/node_modules/tslib/", - "packageDependencies": [ - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/tslib-npm-2.0.0-4d841ae35a-a7369a224f.zip/node_modules/tslib/", - "packageDependencies": [ - ["tslib", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/tslib-npm-2.0.1-26f70961f9-7b42337a07.zip/node_modules/tslib/", - "packageDependencies": [ - ["tslib", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["tsup", [ - ["npm:3.7.0", { - "packageLocation": "./.yarn/cache/tsup-npm-3.7.0-5b90510b02-6ddf12e7b3.zip/node_modules/tsup/", - "packageDependencies": [ - ["tsup", "npm:3.7.0"], - ["cac", "npm:6.6.1"], - ["chalk", "npm:4.1.0"], - ["chokidar", "npm:3.4.2"], - ["esbuild", "npm:0.6.32"], - ["joycon", "npm:2.2.5"], - ["resolve-from", "npm:5.0.0"], - ["rollup", "npm:2.32.1"], - ["rollup-plugin-dts", "virtual:5b90510b026d7a2311083a18cacc86fbd3969a3562e3b7dbd8c864efa3c60cdffbbc3017a5442b96c07bcfcf4010a593556e7ee9f5761d6ce56b732dc2585953#npm:1.4.13"], - ["sucrase", "npm:3.15.0"], - ["typescript", "patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e"] - ], - "linkType": "HARD", - }], - ["npm:4.6.1", { - "packageLocation": "./.yarn/cache/tsup-npm-4.6.1-ec1883c0f6-a86da36251.zip/node_modules/tsup/", - "packageDependencies": [ - ["tsup", "npm:4.6.1"] - ], - "linkType": "SOFT", - }], - ["virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:4.6.1", { - "packageLocation": "./.yarn/$$virtual/tsup-virtual-cada2ee815/0/cache/tsup-npm-4.6.1-ec1883c0f6-a86da36251.zip/node_modules/tsup/", - "packageDependencies": [ - ["tsup", "virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:4.6.1"], - ["@rollup/plugin-node-resolve", "virtual:cada2ee815a8bb9867bc6df56f6788ca4baf721877021470643cf1a10fa7eba82dd37f67ca56abb44a0f639613382e6443afc40fbe67a4ad334cfe4cb2e0fe13#npm:11.2.0"], - ["@types/typescript", null], - ["cac", "npm:6.7.2"], - ["chalk", "npm:4.1.0"], - ["chokidar", "npm:3.5.1"], - ["esbuild", "npm:0.8.54"], - ["globby", "npm:11.0.2"], - ["joycon", "npm:2.2.5"], - ["postcss-load-config", "npm:3.0.1"], - ["resolve-from", "npm:5.0.0"], - ["rollup", "npm:2.40.0"], - ["sucrase", "npm:3.17.1"], - ["typescript", "patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e"] - ], - "packagePeers": [ - "@types/typescript", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["tty-browserify", [ - ["npm:0.0.0", { - "packageLocation": "./.yarn/cache/tty-browserify-npm-0.0.0-684371f6ca-ef28fe256a.zip/node_modules/tty-browserify/", - "packageDependencies": [ - ["tty-browserify", "npm:0.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["tunnel", [ - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/tunnel-npm-0.0.6-b1c0830ea4-78fbb1a55a.zip/node_modules/tunnel/", - "packageDependencies": [ - ["tunnel", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["tunnel-agent", [ - ["npm:0.6.0", { - "packageLocation": "./.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-03db75a4f9.zip/node_modules/tunnel-agent/", - "packageDependencies": [ - ["tunnel-agent", "npm:0.6.0"], - ["safe-buffer", "npm:5.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["tweetnacl", [ - ["npm:0.14.5", { - "packageLocation": "./.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-e1c9d52e2e.zip/node_modules/tweetnacl/", - "packageDependencies": [ - ["tweetnacl", "npm:0.14.5"] - ], - "linkType": "HARD", - }] - ]], - ["twig", [ - ["npm:1.15.1", { - "packageLocation": "./.yarn/cache/twig-npm-1.15.1-b3647f2d7d-09c4e760a3.zip/node_modules/twig/", - "packageDependencies": [ - ["twig", "npm:1.15.1"], - ["@babel/runtime", "npm:7.10.5"], - ["locutus", "npm:2.0.11"], - ["minimatch", "npm:3.0.4"], - ["walk", "npm:2.3.14"] - ], - "linkType": "HARD", - }] - ]], - ["type", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/type-npm-1.2.0-e67311c4b2-1589416fd9.zip/node_modules/type/", - "packageDependencies": [ - ["type", "npm:1.2.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/type-npm-2.0.0-fa23229fa0-aa673b5a91.zip/node_modules/type/", - "packageDependencies": [ - ["type", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["type-check", [ - ["npm:0.3.2", { - "packageLocation": "./.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-4e08064531.zip/node_modules/type-check/", - "packageDependencies": [ - ["type-check", "npm:0.3.2"], - ["prelude-ls", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["type-detect", [ - ["npm:4.0.8", { - "packageLocation": "./.yarn/cache/type-detect-npm-4.0.8-8d8127b901-e01dc6ac90.zip/node_modules/type-detect/", - "packageDependencies": [ - ["type-detect", "npm:4.0.8"] - ], - "linkType": "HARD", - }] - ]], - ["type-fest", [ - ["npm:0.11.0", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.11.0-81410fe889-02e5cadf13.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.11.0"] - ], - "linkType": "HARD", - }], - ["npm:0.13.1", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.13.1-7f4486b973-11acce4f34.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.13.1"] - ], - "linkType": "HARD", - }], - ["npm:0.3.1", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.3.1-542c938bf6-5089230611.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.3.1"] - ], - "linkType": "HARD", - }], - ["npm:0.6.0", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.6.0-76b229965b-c77f687caf.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.6.0"] - ], - "linkType": "HARD", - }], - ["npm:0.7.1", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.7.1-7b37912923-13aa0b28ad.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.7.1"] - ], - "linkType": "HARD", - }], - ["npm:0.8.1", { - "packageLocation": "./.yarn/cache/type-fest-npm-0.8.1-351ad028fe-f8c4b4249f.zip/node_modules/type-fest/", - "packageDependencies": [ - ["type-fest", "npm:0.8.1"] - ], - "linkType": "HARD", - }] - ]], - ["type-is", [ - ["npm:1.6.18", { - "packageLocation": "./.yarn/cache/type-is-npm-1.6.18-6dee4d4961-20a3514f1d.zip/node_modules/type-is/", - "packageDependencies": [ - ["type-is", "npm:1.6.18"], - ["media-typer", "npm:0.3.0"], - ["mime-types", "npm:2.1.27"] - ], - "linkType": "HARD", - }] - ]], - ["typedarray", [ - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/typedarray-npm-0.0.6-37638b2241-c9ef0176aa.zip/node_modules/typedarray/", - "packageDependencies": [ - ["typedarray", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["typedarray-to-buffer", [ - ["npm:3.1.5", { - "packageLocation": "./.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-e6e0e6812a.zip/node_modules/typedarray-to-buffer/", - "packageDependencies": [ - ["typedarray-to-buffer", "npm:3.1.5"], - ["is-typedarray", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["typedoc", [ - ["npm:0.19.2", { - "packageLocation": "./.yarn/cache/typedoc-npm-0.19.2-67686083da-fc33909c4d.zip/node_modules/typedoc/", - "packageDependencies": [ - ["typedoc", "npm:0.19.2"] - ], - "linkType": "SOFT", - }], - ["virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.19.2", { - "packageLocation": "./.yarn/$$virtual/typedoc-virtual-7efcbd062d/0/cache/typedoc-npm-0.19.2-67686083da-fc33909c4d.zip/node_modules/typedoc/", - "packageDependencies": [ - ["typedoc", "virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.19.2"], - ["@types/typescript", null], - ["fs-extra", "npm:9.0.1"], - ["handlebars", "npm:4.7.6"], - ["highlight.js", "npm:10.2.0"], - ["lodash", "npm:4.17.20"], - ["lunr", "npm:2.3.9"], - ["marked", "npm:1.1.1"], - ["minimatch", "npm:3.0.4"], - ["progress", "npm:2.0.3"], - ["semver", "npm:7.3.2"], - ["shelljs", "npm:0.8.4"], - ["typedoc-default-themes", "npm:0.11.4"], - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"] - ], - "packagePeers": [ - "@types/typescript", - "typescript" - ], - "linkType": "HARD", - }] - ]], - ["typedoc-default-themes", [ - ["npm:0.11.4", { - "packageLocation": "./.yarn/cache/typedoc-default-themes-npm-0.11.4-4359825f62-1993030e24.zip/node_modules/typedoc-default-themes/", - "packageDependencies": [ - ["typedoc-default-themes", "npm:0.11.4"] - ], - "linkType": "HARD", - }] - ]], - ["typescript", [ - ["patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e", { - "packageLocation": "./.yarn/cache/typescript-patch-fb1f2b17f5-ee9b64dafd.zip/node_modules/typescript/", - "packageDependencies": [ - ["typescript", "patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e"] - ], - "linkType": "HARD", - }], - ["patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e", { - "packageLocation": "./.yarn/cache/typescript-patch-d06dd06dc9-50be92a771.zip/node_modules/typescript/", - "packageDependencies": [ - ["typescript", "patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e"] - ], - "linkType": "HARD", - }], - ["patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e", { - "packageLocation": "./.yarn/cache/typescript-patch-2b7a16a96b-ea1f1b6be2.zip/node_modules/typescript/", - "packageDependencies": [ - ["typescript", "patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e"] - ], - "linkType": "HARD", - }], - ["patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e", { - "packageLocation": "./.yarn/cache/typescript-patch-99fe32b02b-a8956044aa.zip/node_modules/typescript/", - "packageDependencies": [ - ["typescript", "patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e"] - ], - "linkType": "HARD", - }] - ]], - ["ua-parser-js", [ - ["npm:0.7.21", { - "packageLocation": "./.yarn/cache/ua-parser-js-npm-0.7.21-b6acc81503-5bd2d949e2.zip/node_modules/ua-parser-js/", - "packageDependencies": [ - ["ua-parser-js", "npm:0.7.21"] - ], - "linkType": "HARD", - }] - ]], - ["uc.micro", [ - ["npm:1.0.6", { - "packageLocation": "./.yarn/cache/uc.micro-npm-1.0.6-36f3dc2fc4-9dfe5ad0a0.zip/node_modules/uc.micro/", - "packageDependencies": [ - ["uc.micro", "npm:1.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["uglify-js", [ - ["npm:3.10.4", { - "packageLocation": "./.yarn/cache/uglify-js-npm-3.10.4-0abf59239e-b16ee80e2d.zip/node_modules/uglify-js/", - "packageDependencies": [ - ["uglify-js", "npm:3.10.4"] - ], - "linkType": "HARD", - }] - ]], - ["unc-path-regex", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/unc-path-regex-npm-0.1.2-53c3343ef3-585e293579.zip/node_modules/unc-path-regex/", - "packageDependencies": [ - ["unc-path-regex", "npm:0.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["undefsafe", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/undefsafe-npm-2.0.3-ce5f7e2bb1-0974f82a87.zip/node_modules/undefsafe/", - "packageDependencies": [ - ["undefsafe", "npm:2.0.3"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"] - ], - "linkType": "HARD", - }] - ]], - ["underscore", [ - ["npm:1.8.3", { - "packageLocation": "./.yarn/cache/underscore-npm-1.8.3-a2d207f853-31f4f79bd5.zip/node_modules/underscore/", - "packageDependencies": [ - ["underscore", "npm:1.8.3"] - ], - "linkType": "HARD", - }] - ]], - ["unfetch", [ - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/unfetch-npm-4.1.0-400b98ec2c-22b729e6e6.zip/node_modules/unfetch/", - "packageDependencies": [ - ["unfetch", "npm:4.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["unherit", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/unherit-npm-1.1.3-14f0bf5f12-387415adc7.zip/node_modules/unherit/", - "packageDependencies": [ - ["unherit", "npm:1.1.3"], - ["inherits", "npm:2.0.4"], - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["unicode-canonical-property-names-ecmascript", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-8c5eeb73e7-8b51950f8f.zip/node_modules/unicode-canonical-property-names-ecmascript/", - "packageDependencies": [ - ["unicode-canonical-property-names-ecmascript", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["unicode-match-property-ecmascript", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-4729801dd7-481203b4b8.zip/node_modules/unicode-match-property-ecmascript/", - "packageDependencies": [ - ["unicode-match-property-ecmascript", "npm:1.0.4"], - ["unicode-canonical-property-names-ecmascript", "npm:1.0.4"], - ["unicode-property-aliases-ecmascript", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["unicode-match-property-value-ecmascript", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-d6b5d66edf-892ca39335.zip/node_modules/unicode-match-property-value-ecmascript/", - "packageDependencies": [ - ["unicode-match-property-value-ecmascript", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["unicode-property-aliases-ecmascript", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-2d3021f23b-2fa80e62a6.zip/node_modules/unicode-property-aliases-ecmascript/", - "packageDependencies": [ - ["unicode-property-aliases-ecmascript", "npm:1.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["unified", [ - ["npm:6.2.0", { - "packageLocation": "./.yarn/cache/unified-npm-6.2.0-824644bed4-f524c6320c.zip/node_modules/unified/", - "packageDependencies": [ - ["unified", "npm:6.2.0"], - ["bail", "npm:1.0.5"], - ["extend", "npm:3.0.2"], - ["is-plain-obj", "npm:1.1.0"], - ["trough", "npm:1.0.5"], - ["vfile", "npm:2.3.0"], - ["x-is-string", "npm:0.1.0"] - ], - "linkType": "HARD", - }], - ["npm:9.2.0", { - "packageLocation": "./.yarn/cache/unified-npm-9.2.0-2edf64a14a-07fd97c046.zip/node_modules/unified/", - "packageDependencies": [ - ["unified", "npm:9.2.0"], - ["bail", "npm:1.0.5"], - ["extend", "npm:3.0.2"], - ["is-buffer", "npm:2.0.4"], - ["is-plain-obj", "npm:2.1.0"], - ["trough", "npm:1.0.5"], - ["vfile", "npm:4.1.1"] - ], - "linkType": "HARD", - }], - ["npm:9.2.1", { - "packageLocation": "./.yarn/cache/unified-npm-9.2.1-1e228147c2-7997e5471d.zip/node_modules/unified/", - "packageDependencies": [ - ["unified", "npm:9.2.1"], - ["bail", "npm:1.0.5"], - ["extend", "npm:3.0.2"], - ["is-buffer", "npm:2.0.4"], - ["is-plain-obj", "npm:2.1.0"], - ["trough", "npm:1.0.5"], - ["vfile", "npm:4.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["union-value", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/union-value-npm-1.0.1-76c6e8a88f-bd6ae611f0.zip/node_modules/union-value/", - "packageDependencies": [ - ["union-value", "npm:1.0.1"], - ["arr-union", "npm:3.1.0"], - ["get-value", "npm:2.0.6"], - ["is-extendable", "npm:0.1.1"], - ["set-value", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["uniq", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/uniq-npm-1.0.1-5cab2dd0f3-a5603a5b31.zip/node_modules/uniq/", - "packageDependencies": [ - ["uniq", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["uniqs", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/uniqs-npm-2.0.0-f8efe64815-f6467e9cb9.zip/node_modules/uniqs/", - "packageDependencies": [ - ["uniqs", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["unique-filename", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/unique-filename-npm-1.1.1-c885c5095b-0e674206bd.zip/node_modules/unique-filename/", - "packageDependencies": [ - ["unique-filename", "npm:1.1.1"], - ["unique-slug", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["unique-slug", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/unique-slug-npm-2.0.2-f6ba1ddeb7-3b17dabc13.zip/node_modules/unique-slug/", - "packageDependencies": [ - ["unique-slug", "npm:2.0.2"], - ["imurmurhash", "npm:0.1.4"] - ], - "linkType": "HARD", - }] - ]], - ["unique-string", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/unique-string-npm-1.0.0-96ab75fd6b-860f1ab835.zip/node_modules/unique-string/", - "packageDependencies": [ - ["unique-string", "npm:1.0.0"], - ["crypto-random-string", "npm:1.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/unique-string-npm-2.0.0-3153c97e47-a2748b41ea.zip/node_modules/unique-string/", - "packageDependencies": [ - ["unique-string", "npm:2.0.0"], - ["crypto-random-string", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["unist-builder", [ - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/unist-builder-npm-2.0.3-8bf7de2024-64f9231bac.zip/node_modules/unist-builder/", - "packageDependencies": [ - ["unist-builder", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-generated", [ - ["npm:1.1.5", { - "packageLocation": "./.yarn/cache/unist-util-generated-npm-1.1.5-6690a68fb4-56355ea74f.zip/node_modules/unist-util-generated/", - "packageDependencies": [ - ["unist-util-generated", "npm:1.1.5"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-is", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/unist-util-is-npm-3.0.0-1816040586-c001cb8366.zip/node_modules/unist-util-is/", - "packageDependencies": [ - ["unist-util-is", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/unist-util-is-npm-4.0.2-edcf2f5815-497967dc77.zip/node_modules/unist-util-is/", - "packageDependencies": [ - ["unist-util-is", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-position", [ - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/unist-util-position-npm-3.1.0-72deebe862-3e51e44fa7.zip/node_modules/unist-util-position/", - "packageDependencies": [ - ["unist-util-position", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-remove-position", [ - ["npm:1.1.4", { - "packageLocation": "./.yarn/cache/unist-util-remove-position-npm-1.1.4-ddac633e26-be5b8e2d35.zip/node_modules/unist-util-remove-position/", - "packageDependencies": [ - ["unist-util-remove-position", "npm:1.1.4"], - ["unist-util-visit", "npm:1.4.1"] - ], - "linkType": "HARD", - }], - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/unist-util-remove-position-npm-2.0.1-8d82f0286a-0b1a7046c4.zip/node_modules/unist-util-remove-position/", - "packageDependencies": [ - ["unist-util-remove-position", "npm:2.0.1"], - ["unist-util-visit", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/unist-util-remove-position-npm-3.0.0-2472e4fede-981cf61ab3.zip/node_modules/unist-util-remove-position/", - "packageDependencies": [ - ["unist-util-remove-position", "npm:3.0.0"], - ["unist-util-visit", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-stringify-position", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/unist-util-stringify-position-npm-1.1.2-df033816cc-fa314c7d14.zip/node_modules/unist-util-stringify-position/", - "packageDependencies": [ - ["unist-util-stringify-position", "npm:1.1.2"] - ], - "linkType": "HARD", - }], - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/unist-util-stringify-position-npm-2.0.3-abaa9bf961-2017497ef7.zip/node_modules/unist-util-stringify-position/", - "packageDependencies": [ - ["unist-util-stringify-position", "npm:2.0.3"], - ["@types/unist", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-visit", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/unist-util-visit-npm-1.4.1-fdb79796c9-6c62b50495.zip/node_modules/unist-util-visit/", - "packageDependencies": [ - ["unist-util-visit", "npm:1.4.1"], - ["unist-util-visit-parents", "npm:2.1.2"] - ], - "linkType": "HARD", - }], - ["npm:2.0.3", { - "packageLocation": "./.yarn/cache/unist-util-visit-npm-2.0.3-e3d6dbea25-7af837673e.zip/node_modules/unist-util-visit/", - "packageDependencies": [ - ["unist-util-visit", "npm:2.0.3"], - ["@types/unist", "npm:2.0.3"], - ["unist-util-is", "npm:4.0.2"], - ["unist-util-visit-parents", "npm:3.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["unist-util-visit-parents", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/unist-util-visit-parents-npm-1.1.2-9e59a5e880-0f5108267d.zip/node_modules/unist-util-visit-parents/", - "packageDependencies": [ - ["unist-util-visit-parents", "npm:1.1.2"] - ], - "linkType": "HARD", - }], - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/unist-util-visit-parents-npm-2.1.2-154aede9d7-26807f1d21.zip/node_modules/unist-util-visit-parents/", - "packageDependencies": [ - ["unist-util-visit-parents", "npm:2.1.2"], - ["unist-util-is", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/unist-util-visit-parents-npm-3.1.0-64fdf235a4-a4283d0475.zip/node_modules/unist-util-visit-parents/", - "packageDependencies": [ - ["unist-util-visit-parents", "npm:3.1.0"], - ["@types/unist", "npm:2.0.3"], - ["unist-util-is", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["universal-github-app-jwt", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/universal-github-app-jwt-npm-1.1.0-47f0de09a5-e0e8e26cd4.zip/node_modules/universal-github-app-jwt/", - "packageDependencies": [ - ["universal-github-app-jwt", "npm:1.1.0"], - ["@types/jsonwebtoken", "npm:8.5.0"], - ["jsonwebtoken", "npm:8.5.1"] - ], - "linkType": "HARD", - }] - ]], - ["universal-url", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/universal-url-npm-2.0.0-b39e7d7f27-403800e8b1.zip/node_modules/universal-url/", - "packageDependencies": [ - ["universal-url", "npm:2.0.0"], - ["hasurl", "npm:1.0.0"], - ["whatwg-url", "npm:7.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["universal-user-agent", [ - ["npm:4.0.1", { - "packageLocation": "./.yarn/cache/universal-user-agent-npm-4.0.1-d1d67caaeb-553ee1f53f.zip/node_modules/universal-user-agent/", - "packageDependencies": [ - ["universal-user-agent", "npm:4.0.1"], - ["os-name", "npm:3.1.0"] - ], - "linkType": "HARD", - }], - ["npm:6.0.0", { - "packageLocation": "./.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-725797ab63.zip/node_modules/universal-user-agent/", - "packageDependencies": [ - ["universal-user-agent", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["universalify", [ - ["npm:0.1.2", { - "packageLocation": "./.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-420fc65473.zip/node_modules/universalify/", - "packageDependencies": [ - ["universalify", "npm:0.1.2"] - ], - "linkType": "HARD", - }], - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/universalify-npm-1.0.0-eff81409f3-d74303a8d9.zip/node_modules/universalify/", - "packageDependencies": [ - ["universalify", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["unixify", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/unixify-npm-1.0.0-6346176065-8a939fba41.zip/node_modules/unixify/", - "packageDependencies": [ - ["unixify", "npm:1.0.0"], - ["normalize-path", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["unpipe", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-ba244e8bf6.zip/node_modules/unpipe/", - "packageDependencies": [ - ["unpipe", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["unquote", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/unquote-npm-1.1.1-11903c1689-468981e454.zip/node_modules/unquote/", - "packageDependencies": [ - ["unquote", "npm:1.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["unset-value", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/unset-value-npm-1.0.0-2af803b920-b4c4853f27.zip/node_modules/unset-value/", - "packageDependencies": [ - ["unset-value", "npm:1.0.0"], - ["has-value", "npm:0.3.1"], - ["isobject", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["untildify", [ - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/untildify-npm-3.0.3-8a2b8af206-3682e39490.zip/node_modules/untildify/", - "packageDependencies": [ - ["untildify", "npm:3.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["unzip-response", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/unzip-response-npm-2.0.1-d139c365e6-ba0ef3428f.zip/node_modules/unzip-response/", - "packageDependencies": [ - ["unzip-response", "npm:2.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["upath", [ - ["npm:1.2.0", { - "packageLocation": "./.yarn/cache/upath-npm-1.2.0-ca00ec3398-ecb08ff3e7.zip/node_modules/upath/", - "packageDependencies": [ - ["upath", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["update-notifier", [ - ["npm:2.5.0", { - "packageLocation": "./.yarn/cache/update-notifier-npm-2.5.0-67a849582a-3edbc57db1.zip/node_modules/update-notifier/", - "packageDependencies": [ - ["update-notifier", "npm:2.5.0"], - ["boxen", "npm:1.3.0"], - ["chalk", "npm:2.4.2"], - ["configstore", "npm:3.1.2"], - ["import-lazy", "npm:2.1.0"], - ["is-ci", "npm:1.2.1"], - ["is-installed-globally", "npm:0.1.0"], - ["is-npm", "npm:1.0.0"], - ["latest-version", "npm:3.1.0"], - ["semver-diff", "npm:2.1.0"], - ["xdg-basedir", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.0", { - "packageLocation": "./.yarn/cache/update-notifier-npm-4.1.0-b35ff2fd87-2d35bb8785.zip/node_modules/update-notifier/", - "packageDependencies": [ - ["update-notifier", "npm:4.1.0"], - ["boxen", "npm:4.2.0"], - ["chalk", "npm:3.0.0"], - ["configstore", "npm:5.0.1"], - ["has-yarn", "npm:2.1.0"], - ["import-lazy", "npm:2.1.0"], - ["is-ci", "npm:2.0.0"], - ["is-installed-globally", "npm:0.3.2"], - ["is-npm", "npm:4.0.0"], - ["is-yarn-global", "npm:0.3.0"], - ["latest-version", "npm:5.1.0"], - ["pupa", "npm:2.0.1"], - ["semver-diff", "npm:3.1.1"], - ["xdg-basedir", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.1.3", { - "packageLocation": "./.yarn/cache/update-notifier-npm-4.1.3-837e724aca-90362dcdf3.zip/node_modules/update-notifier/", - "packageDependencies": [ - ["update-notifier", "npm:4.1.3"], - ["boxen", "npm:4.2.0"], - ["chalk", "npm:3.0.0"], - ["configstore", "npm:5.0.1"], - ["has-yarn", "npm:2.1.0"], - ["import-lazy", "npm:2.1.0"], - ["is-ci", "npm:2.0.0"], - ["is-installed-globally", "npm:0.3.2"], - ["is-npm", "npm:4.0.0"], - ["is-yarn-global", "npm:0.3.0"], - ["latest-version", "npm:5.1.0"], - ["pupa", "npm:2.0.1"], - ["semver-diff", "npm:3.1.1"], - ["xdg-basedir", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["upper-case", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/upper-case-npm-2.0.1-3adcf3afdb-69c914af89.zip/node_modules/upper-case/", - "packageDependencies": [ - ["upper-case", "npm:2.0.1"], - ["tslib", "npm:1.13.0"] - ], - "linkType": "HARD", - }] - ]], - ["uri-js", [ - ["npm:4.2.2", { - "packageLocation": "./.yarn/cache/uri-js-npm-4.2.2-e6ac2fca26-651a49f55d.zip/node_modules/uri-js/", - "packageDependencies": [ - ["uri-js", "npm:4.2.2"], - ["punycode", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["urix", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/urix-npm-0.1.0-bd5e55a13a-6bdfca4e7f.zip/node_modules/urix/", - "packageDependencies": [ - ["urix", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["url", [ - ["npm:0.11.0", { - "packageLocation": "./.yarn/cache/url-npm-0.11.0-32ce15acfb-537f785b16.zip/node_modules/url/", - "packageDependencies": [ - ["url", "npm:0.11.0"], - ["punycode", "npm:1.3.2"], - ["querystring", "npm:0.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["url-parse-lax", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/url-parse-lax-npm-1.0.0-72419d807b-454fddd786.zip/node_modules/url-parse-lax/", - "packageDependencies": [ - ["url-parse-lax", "npm:1.0.0"], - ["prepend-http", "npm:1.0.4"] - ], - "linkType": "HARD", - }], - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/url-parse-lax-npm-3.0.0-92aa8effa0-334817036b.zip/node_modules/url-parse-lax/", - "packageDependencies": [ - ["url-parse-lax", "npm:3.0.0"], - ["prepend-http", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["url-to-options", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/url-to-options-npm-1.0.1-7eb319b3c8-695eb113d3.zip/node_modules/url-to-options/", - "packageDependencies": [ - ["url-to-options", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["urql", [ - ["npm:1.10.0", { - "packageLocation": "./.yarn/cache/urql-npm-1.10.0-d5cd1f0be1-47922ec31c.zip/node_modules/urql/", - "packageDependencies": [ - ["urql", "npm:1.10.0"] - ], - "linkType": "SOFT", - }], - ["virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0", { - "packageLocation": "./.yarn/$$virtual/urql-virtual-39804becf0/0/cache/urql-npm-1.10.0-d5cd1f0be1-47922ec31c.zip/node_modules/urql/", - "packageDependencies": [ - ["urql", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0"], - ["@types/graphql", null], - ["@types/react", "npm:16.9.43"], - ["@urql/core", "virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3"], - ["graphql", "npm:15.3.0"], - ["react", "npm:16.13.1"], - ["wonka", "npm:4.0.14"] - ], - "packagePeers": [ - "@types/graphql", - "@types/react", - "graphql", - "react" - ], - "linkType": "HARD", - }] - ]], - ["use", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/use-npm-3.1.1-7ba643714c-8dd3bdeeda.zip/node_modules/use/", - "packageDependencies": [ - ["use", "npm:3.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["use-isomorphic-layout-effect", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/use-isomorphic-layout-effect-npm-1.0.0-0f9b19ced6-2cf505f5d7.zip/node_modules/use-isomorphic-layout-effect/", - "packageDependencies": [ - ["use-isomorphic-layout-effect", "npm:1.0.0"] - ], - "linkType": "SOFT", - }], - ["virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0", { - "packageLocation": "./.yarn/$$virtual/use-isomorphic-layout-effect-virtual-5f5e97a9c0/0/cache/use-isomorphic-layout-effect-npm-1.0.0-0f9b19ced6-2cf505f5d7.zip/node_modules/use-isomorphic-layout-effect/", - "packageDependencies": [ - ["use-isomorphic-layout-effect", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0"], - ["@types/react", "npm:16.9.43"], - ["@types/types__react", null], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "@types/types__react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["use-memo-one", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/use-memo-one-npm-1.1.1-41d1dc2ef9-691a41156a.zip/node_modules/use-memo-one/", - "packageDependencies": [ - ["use-memo-one", "npm:1.1.1"] - ], - "linkType": "SOFT", - }], - ["virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:1.1.1", { - "packageLocation": "./.yarn/$$virtual/use-memo-one-virtual-5d41909d1f/0/cache/use-memo-one-npm-1.1.1-41d1dc2ef9-691a41156a.zip/node_modules/use-memo-one/", - "packageDependencies": [ - ["use-memo-one", "virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:1.1.1"], - ["@types/react", "npm:16.9.43"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["use-subscription", [ - ["npm:1.4.1", { - "packageLocation": "./.yarn/cache/use-subscription-npm-1.4.1-61a02fde35-d2c82e0f4b.zip/node_modules/use-subscription/", - "packageDependencies": [ - ["use-subscription", "npm:1.4.1"] - ], - "linkType": "SOFT", - }], - ["npm:1.5.1", { - "packageLocation": "./.yarn/cache/use-subscription-npm-1.5.1-d91d77edbb-3abcef5524.zip/node_modules/use-subscription/", - "packageDependencies": [ - ["use-subscription", "npm:1.5.1"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.5.1", { - "packageLocation": "./.yarn/$$virtual/use-subscription-virtual-fcea6b8859/0/cache/use-subscription-npm-1.5.1-d91d77edbb-3abcef5524.zip/node_modules/use-subscription/", - "packageDependencies": [ - ["use-subscription", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.5.1"], - ["@types/react", "npm:16.9.43"], - ["object-assign", "npm:4.1.1"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }], - ["virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1", { - "packageLocation": "./.yarn/$$virtual/use-subscription-virtual-b347f81281/0/cache/use-subscription-npm-1.4.1-61a02fde35-d2c82e0f4b.zip/node_modules/use-subscription/", - "packageDependencies": [ - ["use-subscription", "virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1"], - ["@types/react", "npm:16.9.43"], - ["object-assign", "npm:4.1.1"], - ["react", "npm:16.13.1"] - ], - "packagePeers": [ - "@types/react", - "react" - ], - "linkType": "HARD", - }] - ]], - ["user-home", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/user-home-npm-2.0.0-a7b3877168-ba2791a65d.zip/node_modules/user-home/", - "packageDependencies": [ - ["user-home", "npm:2.0.0"], - ["os-homedir", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["utf-8-validate", [ - ["npm:5.0.2", { - "packageLocation": "./.yarn/unplugged/utf-8-validate-npm-5.0.2-dd2e41562b/node_modules/utf-8-validate/", - "packageDependencies": [ - ["utf-8-validate", "npm:5.0.2"], - ["node-gyp", "npm:7.0.0"], - ["node-gyp-build", "npm:3.7.0"] - ], - "linkType": "HARD", - }] - ]], - ["utf8-byte-length", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/utf8-byte-length-npm-1.0.4-cf13f06124-df2466d1c9.zip/node_modules/utf8-byte-length/", - "packageDependencies": [ - ["utf8-byte-length", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["util", [ - ["npm:0.10.3", { - "packageLocation": "./.yarn/cache/util-npm-0.10.3-f43de5ccbb-05c1a09f3a.zip/node_modules/util/", - "packageDependencies": [ - ["util", "npm:0.10.3"], - ["inherits", "npm:2.0.1"] - ], - "linkType": "HARD", - }], - ["npm:0.10.4", { - "packageLocation": "./.yarn/cache/util-npm-0.10.4-7c577db41a-6682ea8239.zip/node_modules/util/", - "packageDependencies": [ - ["util", "npm:0.10.4"], - ["inherits", "npm:2.0.3"] - ], - "linkType": "HARD", - }], - ["npm:0.11.1", { - "packageLocation": "./.yarn/cache/util-npm-0.11.1-d2633dea18-f05afc3d9a.zip/node_modules/util/", - "packageDependencies": [ - ["util", "npm:0.11.1"], - ["inherits", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["util-deprecate", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-73c2b1cf02.zip/node_modules/util-deprecate/", - "packageDependencies": [ - ["util-deprecate", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["util.promisify", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/util.promisify-npm-1.0.1-5b881bb495-99e5b0a7a4.zip/node_modules/util.promisify/", - "packageDependencies": [ - ["util.promisify", "npm:1.0.1"], - ["define-properties", "npm:1.1.3"], - ["es-abstract", "npm:1.17.6"], - ["has-symbols", "npm:1.0.1"], - ["object.getownpropertydescriptors", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["utils-merge", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-a457956ebc.zip/node_modules/utils-merge/", - "packageDependencies": [ - ["utils-merge", "npm:1.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["uuid", [ - ["npm:3.4.0", { - "packageLocation": "./.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-1ce3f37e21.zip/node_modules/uuid/", - "packageDependencies": [ - ["uuid", "npm:3.4.0"] - ], - "linkType": "HARD", - }], - ["npm:8.3.0", { - "packageLocation": "./.yarn/cache/uuid-npm-8.3.0-2f98335399-a2bdb8a3eb.zip/node_modules/uuid/", - "packageDependencies": [ - ["uuid", "npm:8.3.0"] - ], - "linkType": "HARD", - }], - ["npm:8.3.2", { - "packageLocation": "./.yarn/cache/uuid-npm-8.3.2-eca0baba53-aed2bcef34.zip/node_modules/uuid/", - "packageDependencies": [ - ["uuid", "npm:8.3.2"] - ], - "linkType": "HARD", - }] - ]], - ["v8-compile-cache", [ - ["npm:2.1.1", { - "packageLocation": "./.yarn/cache/v8-compile-cache-npm-2.1.1-efff1ef0a4-1290922fe1.zip/node_modules/v8-compile-cache/", - "packageDependencies": [ - ["v8-compile-cache", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["v8-to-istanbul", [ - ["npm:4.1.4", { - "packageLocation": "./.yarn/cache/v8-to-istanbul-npm-4.1.4-7e15cda000-9d6c0cd729.zip/node_modules/v8-to-istanbul/", - "packageDependencies": [ - ["v8-to-istanbul", "npm:4.1.4"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["convert-source-map", "npm:1.7.0"], - ["source-map", "npm:0.7.3"] - ], - "linkType": "HARD", - }], - ["npm:7.1.0", { - "packageLocation": "./.yarn/cache/v8-to-istanbul-npm-7.1.0-4d4761f35a-decc2cc896.zip/node_modules/v8-to-istanbul/", - "packageDependencies": [ - ["v8-to-istanbul", "npm:7.1.0"], - ["@types/istanbul-lib-coverage", "npm:2.0.3"], - ["convert-source-map", "npm:1.7.0"], - ["source-map", "npm:0.7.3"] - ], - "linkType": "HARD", - }] - ]], - ["valid-url", [ - ["npm:1.0.9", { - "packageLocation": "./.yarn/cache/valid-url-npm-1.0.9-945a70ad40-988964543c.zip/node_modules/valid-url/", - "packageDependencies": [ - ["valid-url", "npm:1.0.9"] - ], - "linkType": "HARD", - }] - ]], - ["validate-npm-package-license", [ - ["npm:3.0.4", { - "packageLocation": "./.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-940899bd4e.zip/node_modules/validate-npm-package-license/", - "packageDependencies": [ - ["validate-npm-package-license", "npm:3.0.4"], - ["spdx-correct", "npm:3.1.1"], - ["spdx-expression-parse", "npm:3.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["vary", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/vary-npm-1.1.2-b49f70ae63-591f059f72.zip/node_modules/vary/", - "packageDependencies": [ - ["vary", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["vendors", [ - ["npm:1.0.4", { - "packageLocation": "./.yarn/cache/vendors-npm-1.0.4-d3a9d2c62c-f49cf918e8.zip/node_modules/vendors/", - "packageDependencies": [ - ["vendors", "npm:1.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["verror", [ - ["npm:1.10.0", { - "packageLocation": "./.yarn/cache/verror-npm-1.10.0-c3f839c579-38ea80312c.zip/node_modules/verror/", - "packageDependencies": [ - ["verror", "npm:1.10.0"], - ["assert-plus", "npm:1.0.0"], - ["core-util-is", "npm:1.0.2"], - ["extsprintf", "npm:1.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["vfile", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/vfile-npm-2.3.0-0781febdcc-b59f2a73a6.zip/node_modules/vfile/", - "packageDependencies": [ - ["vfile", "npm:2.3.0"], - ["is-buffer", "npm:1.1.6"], - ["replace-ext", "npm:1.0.0"], - ["unist-util-stringify-position", "npm:1.1.2"], - ["vfile-message", "npm:1.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.1.1", { - "packageLocation": "./.yarn/cache/vfile-npm-4.1.1-e83f656288-3f84677ed6.zip/node_modules/vfile/", - "packageDependencies": [ - ["vfile", "npm:4.1.1"], - ["@types/unist", "npm:2.0.3"], - ["is-buffer", "npm:2.0.4"], - ["replace-ext", "npm:1.0.0"], - ["unist-util-stringify-position", "npm:2.0.3"], - ["vfile-message", "npm:2.0.4"] - ], - "linkType": "HARD", - }], - ["npm:4.2.0", { - "packageLocation": "./.yarn/cache/vfile-npm-4.2.0-c3dcb6dc90-281f8bca81.zip/node_modules/vfile/", - "packageDependencies": [ - ["vfile", "npm:4.2.0"], - ["@types/unist", "npm:2.0.3"], - ["is-buffer", "npm:2.0.4"], - ["replace-ext", "npm:1.0.0"], - ["unist-util-stringify-position", "npm:2.0.3"], - ["vfile-message", "npm:2.0.4"] - ], - "linkType": "HARD", - }] - ]], - ["vfile-location", [ - ["npm:2.0.6", { - "packageLocation": "./.yarn/cache/vfile-location-npm-2.0.6-a098041eed-b050677560.zip/node_modules/vfile-location/", - "packageDependencies": [ - ["vfile-location", "npm:2.0.6"] - ], - "linkType": "HARD", - }], - ["npm:3.2.0", { - "packageLocation": "./.yarn/cache/vfile-location-npm-3.2.0-cd97ee24d4-4102f03560.zip/node_modules/vfile-location/", - "packageDependencies": [ - ["vfile-location", "npm:3.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["vfile-message", [ - ["npm:1.1.1", { - "packageLocation": "./.yarn/cache/vfile-message-npm-1.1.1-6458d7e753-d6c086d7c1.zip/node_modules/vfile-message/", - "packageDependencies": [ - ["vfile-message", "npm:1.1.1"], - ["unist-util-stringify-position", "npm:1.1.2"] - ], - "linkType": "HARD", - }], - ["npm:2.0.4", { - "packageLocation": "./.yarn/cache/vfile-message-npm-2.0.4-ca3f9b6719-a88f41883c.zip/node_modules/vfile-message/", - "packageDependencies": [ - ["vfile-message", "npm:2.0.4"], - ["@types/unist", "npm:2.0.3"], - ["unist-util-stringify-position", "npm:2.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["vinyl", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/vinyl-npm-2.2.0-b81d0fc829-a8c27638aa.zip/node_modules/vinyl/", - "packageDependencies": [ - ["vinyl", "npm:2.2.0"], - ["clone", "npm:2.1.2"], - ["clone-buffer", "npm:1.0.0"], - ["clone-stats", "npm:1.0.0"], - ["cloneable-readable", "npm:1.1.3"], - ["remove-trailing-separator", "npm:1.1.0"], - ["replace-ext", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["vinyl-file", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/vinyl-file-npm-3.0.0-4d55e6cd5d-5f2daa7030.zip/node_modules/vinyl-file/", - "packageDependencies": [ - ["vinyl-file", "npm:3.0.0"], - ["graceful-fs", "npm:4.2.4"], - ["pify", "npm:2.3.0"], - ["strip-bom-buf", "npm:1.0.0"], - ["strip-bom-stream", "npm:2.0.0"], - ["vinyl", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["vm-browserify", [ - ["npm:1.1.2", { - "packageLocation": "./.yarn/cache/vm-browserify-npm-1.1.2-f96404b36f-fc571a62d2.zip/node_modules/vm-browserify/", - "packageDependencies": [ - ["vm-browserify", "npm:1.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["vscode-languageserver-types", [ - ["npm:3.15.1", { - "packageLocation": "./.yarn/cache/vscode-languageserver-types-npm-3.15.1-8e8f17df39-2c61a5a623.zip/node_modules/vscode-languageserver-types/", - "packageDependencies": [ - ["vscode-languageserver-types", "npm:3.15.1"] - ], - "linkType": "HARD", - }] - ]], - ["vscode-nls", [ - ["npm:4.1.2", { - "packageLocation": "./.yarn/cache/vscode-nls-npm-4.1.2-d4bedb2619-d71594bcc2.zip/node_modules/vscode-nls/", - "packageDependencies": [ - ["vscode-nls", "npm:4.1.2"] - ], - "linkType": "HARD", - }] - ]], - ["vue-template-compiler", [ - ["npm:2.6.12", { - "packageLocation": "./.yarn/cache/vue-template-compiler-npm-2.6.12-96e35645d0-5b05dda398.zip/node_modules/vue-template-compiler/", - "packageDependencies": [ - ["vue-template-compiler", "npm:2.6.12"], - ["de-indent", "npm:1.0.2"], - ["he", "npm:1.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["w3c-hr-time", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-bb021b4c4b.zip/node_modules/w3c-hr-time/", - "packageDependencies": [ - ["w3c-hr-time", "npm:1.0.2"], - ["browser-process-hrtime", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["w3c-xmlserializer", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/w3c-xmlserializer-npm-2.0.0-f8f7bc8b42-2327c8a6c7.zip/node_modules/w3c-xmlserializer/", - "packageDependencies": [ - ["w3c-xmlserializer", "npm:2.0.0"], - ["xml-name-validator", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["walk", [ - ["npm:2.3.14", { - "packageLocation": "./.yarn/cache/walk-npm-2.3.14-7187bbff3a-54b61ebfac.zip/node_modules/walk/", - "packageDependencies": [ - ["walk", "npm:2.3.14"], - ["foreachasync", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["walker", [ - ["npm:1.0.7", { - "packageLocation": "./.yarn/cache/walker-npm-1.0.7-a97443bd99-c014f264c4.zip/node_modules/walker/", - "packageDependencies": [ - ["walker", "npm:1.0.7"], - ["makeerror", "npm:1.0.11"] - ], - "linkType": "HARD", - }] - ]], - ["watchpack", [ - ["npm:1.7.4", { - "packageLocation": "./.yarn/cache/watchpack-npm-1.7.4-366024521f-61876d6e60.zip/node_modules/watchpack/", - "packageDependencies": [ - ["watchpack", "npm:1.7.4"], - ["chokidar", "npm:3.4.1"], - ["graceful-fs", "npm:4.2.4"], - ["neo-async", "npm:2.6.1"], - ["watchpack-chokidar2", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.0-beta.13", { - "packageLocation": "./.yarn/cache/watchpack-npm-2.0.0-beta.13-39378309be-404d5c3c08.zip/node_modules/watchpack/", - "packageDependencies": [ - ["watchpack", "npm:2.0.0-beta.13"], - ["glob-to-regexp", "npm:0.4.1"], - ["graceful-fs", "npm:4.2.4"] - ], - "linkType": "HARD", - }] - ]], - ["watchpack-chokidar2", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/watchpack-chokidar2-npm-2.0.0-22796f93dd-1ef78773db.zip/node_modules/watchpack-chokidar2/", - "packageDependencies": [ - ["watchpack-chokidar2", "npm:2.0.0"], - ["chokidar", "npm:2.1.8"] - ], - "linkType": "HARD", - }] - ]], - ["wcwidth", [ - ["npm:1.0.1", { - "packageLocation": "./.yarn/cache/wcwidth-npm-1.0.1-05fa596453-abf8ba432d.zip/node_modules/wcwidth/", - "packageDependencies": [ - ["wcwidth", "npm:1.0.1"], - ["defaults", "npm:1.0.3"] - ], - "linkType": "HARD", - }] - ]], - ["web-vitals", [ - ["npm:0.2.1", { - "packageLocation": "./.yarn/cache/web-vitals-npm-0.2.1-3fd7448b12-8a367efbfe.zip/node_modules/web-vitals/", - "packageDependencies": [ - ["web-vitals", "npm:0.2.1"] - ], - "linkType": "HARD", - }] - ]], - ["webfontloader", [ - ["npm:1.6.28", { - "packageLocation": "./.yarn/cache/webfontloader-npm-1.6.28-5e6803960c-fea984c451.zip/node_modules/webfontloader/", - "packageDependencies": [ - ["webfontloader", "npm:1.6.28"] - ], - "linkType": "HARD", - }] - ]], - ["webidl-conversions", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/webidl-conversions-npm-4.0.2-1d159e6409-75c2ada426.zip/node_modules/webidl-conversions/", - "packageDependencies": [ - ["webidl-conversions", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:5.0.0", { - "packageLocation": "./.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-af4e465fb3.zip/node_modules/webidl-conversions/", - "packageDependencies": [ - ["webidl-conversions", "npm:5.0.0"] - ], - "linkType": "HARD", - }], - ["npm:6.1.0", { - "packageLocation": "./.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-0ded175044.zip/node_modules/webidl-conversions/", - "packageDependencies": [ - ["webidl-conversions", "npm:6.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["webpack", [ - ["npm:4.43.0", { - "packageLocation": "./.yarn/cache/webpack-npm-4.43.0-e073844e15-9f1e6375ba.zip/node_modules/webpack/", - "packageDependencies": [ - ["webpack", "npm:4.43.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-module-context", "npm:1.9.0"], - ["@webassemblyjs/wasm-edit", "npm:1.9.0"], - ["@webassemblyjs/wasm-parser", "npm:1.9.0"], - ["acorn", "npm:6.4.1"], - ["ajv", "npm:6.12.3"], - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"], - ["chrome-trace-event", "npm:1.0.2"], - ["enhanced-resolve", "npm:4.3.0"], - ["eslint-scope", "npm:4.0.3"], - ["json-parse-better-errors", "npm:1.0.2"], - ["loader-runner", "npm:2.4.0"], - ["loader-utils", "npm:1.2.3"], - ["memory-fs", "npm:0.4.1"], - ["micromatch", "npm:3.1.10"], - ["mkdirp", "npm:0.5.5"], - ["neo-async", "npm:2.6.1"], - ["node-libs-browser", "npm:2.2.1"], - ["schema-utils", "npm:1.0.0"], - ["tapable", "npm:1.1.3"], - ["terser-webpack-plugin", "virtual:e073844e153b92b319dc2d9b0f6ae20a05893b49f2b56ff72631b73967313ef744d0a2d62f52dda20ccf963d6092e0c06e90d20a3c0b6f831e756347e8a70b13#npm:1.4.4"], - ["watchpack", "npm:1.7.4"], - ["webpack-sources", "npm:1.4.3"] - ], - "linkType": "HARD", - }], - ["npm:4.44.0", { - "packageLocation": "./.yarn/cache/webpack-npm-4.44.0-3326bd82d7-5b3fe7a329.zip/node_modules/webpack/", - "packageDependencies": [ - ["webpack", "npm:4.44.0"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-module-context", "npm:1.9.0"], - ["@webassemblyjs/wasm-edit", "npm:1.9.0"], - ["@webassemblyjs/wasm-parser", "npm:1.9.0"], - ["acorn", "npm:6.4.1"], - ["ajv", "npm:6.12.3"], - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"], - ["chrome-trace-event", "npm:1.0.2"], - ["enhanced-resolve", "npm:4.3.0"], - ["eslint-scope", "npm:4.0.3"], - ["json-parse-better-errors", "npm:1.0.2"], - ["loader-runner", "npm:2.4.0"], - ["loader-utils", "npm:1.2.3"], - ["memory-fs", "npm:0.4.1"], - ["micromatch", "npm:3.1.10"], - ["mkdirp", "npm:0.5.5"], - ["neo-async", "npm:2.6.1"], - ["node-libs-browser", "npm:2.2.1"], - ["schema-utils", "npm:1.0.0"], - ["tapable", "npm:1.1.3"], - ["terser-webpack-plugin", "virtual:3326bd82d722f425fcbbdc2c3c15cdbd2686d7ca5c17e17343d17579576b30619e272e5db31323698528f24803ac2c256fbb4b8caa0ea5ecd8016fdac7f3b3a8#npm:1.4.4"], - ["watchpack", "npm:1.7.4"], - ["webpack-sources", "npm:1.4.3"] - ], - "linkType": "HARD", - }], - ["npm:4.44.1", { - "packageLocation": "./.yarn/cache/webpack-npm-4.44.1-977bccfd33-d4d140010b.zip/node_modules/webpack/", - "packageDependencies": [ - ["webpack", "npm:4.44.1"] - ], - "linkType": "SOFT", - }], - ["virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1", { - "packageLocation": "./.yarn/$$virtual/webpack-virtual-d2c7511dff/0/cache/webpack-npm-4.44.1-977bccfd33-d4d140010b.zip/node_modules/webpack/", - "packageDependencies": [ - ["webpack", "virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1"], - ["@webassemblyjs/ast", "npm:1.9.0"], - ["@webassemblyjs/helper-module-context", "npm:1.9.0"], - ["@webassemblyjs/wasm-edit", "npm:1.9.0"], - ["@webassemblyjs/wasm-parser", "npm:1.9.0"], - ["acorn", "npm:6.4.1"], - ["ajv", "npm:6.12.3"], - ["ajv-keywords", "virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2"], - ["chrome-trace-event", "npm:1.0.2"], - ["enhanced-resolve", "npm:4.3.0"], - ["eslint-scope", "npm:4.0.3"], - ["json-parse-better-errors", "npm:1.0.2"], - ["loader-runner", "npm:2.4.0"], - ["loader-utils", "npm:1.2.3"], - ["memory-fs", "npm:0.4.1"], - ["micromatch", "npm:3.1.10"], - ["mkdirp", "npm:0.5.5"], - ["neo-async", "npm:2.6.1"], - ["node-libs-browser", "npm:2.2.1"], - ["schema-utils", "npm:1.0.0"], - ["tapable", "npm:1.1.3"], - ["terser-webpack-plugin", "virtual:d2c7511dff410609c253fbc4a1857c7c8a9f78f7d70ef742539e5f05378c4a183343c709d614406382293c1e630ad3d184fa5fd8ddfaae4802a489e4e6f50c62#npm:1.4.4"], - ["watchpack", "npm:1.7.4"], - ["webpack-cli", null], - ["webpack-command", null], - ["webpack-sources", "npm:1.4.3"] - ], - "packagePeers": [ - "webpack-cli", - "webpack-command" - ], - "linkType": "HARD", - }] - ]], - ["webpack-sources", [ - ["npm:1.4.3", { - "packageLocation": "./.yarn/cache/webpack-sources-npm-1.4.3-2b3a9b1de0-2a753b36ad.zip/node_modules/webpack-sources/", - "packageDependencies": [ - ["webpack-sources", "npm:1.4.3"], - ["source-list-map", "npm:2.0.1"], - ["source-map", "npm:0.6.1"] - ], - "linkType": "HARD", - }] - ]], - ["websocket", [ - ["npm:1.0.32", { - "packageLocation": "./.yarn/cache/websocket-npm-1.0.32-3000831c48-9b74a8dbc4.zip/node_modules/websocket/", - "packageDependencies": [ - ["websocket", "npm:1.0.32"], - ["bufferutil", "npm:4.0.1"], - ["debug", "virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9"], - ["es5-ext", "npm:0.10.53"], - ["typedarray-to-buffer", "npm:3.1.5"], - ["utf-8-validate", "npm:5.0.2"], - ["yaeti", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["whatwg-encoding", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-44e4276ad2.zip/node_modules/whatwg-encoding/", - "packageDependencies": [ - ["whatwg-encoding", "npm:1.0.5"], - ["iconv-lite", "npm:0.4.24"] - ], - "linkType": "HARD", - }] - ]], - ["whatwg-fetch", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/whatwg-fetch-npm-3.0.0-89ab4ec112-56ffff2db0.zip/node_modules/whatwg-fetch/", - "packageDependencies": [ - ["whatwg-fetch", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["whatwg-mimetype", [ - ["npm:2.3.0", { - "packageLocation": "./.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-926e6ef8c7.zip/node_modules/whatwg-mimetype/", - "packageDependencies": [ - ["whatwg-mimetype", "npm:2.3.0"] - ], - "linkType": "HARD", - }] - ]], - ["whatwg-url", [ - ["npm:7.1.0", { - "packageLocation": "./.yarn/cache/whatwg-url-npm-7.1.0-d6cae01571-ccbf75d3df.zip/node_modules/whatwg-url/", - "packageDependencies": [ - ["whatwg-url", "npm:7.1.0"], - ["lodash.sortby", "npm:4.7.0"], - ["tr46", "npm:1.0.1"], - ["webidl-conversions", "npm:4.0.2"] - ], - "linkType": "HARD", - }], - ["npm:8.1.0", { - "packageLocation": "./.yarn/cache/whatwg-url-npm-8.1.0-49b88f6bf9-1cc612b273.zip/node_modules/whatwg-url/", - "packageDependencies": [ - ["whatwg-url", "npm:8.1.0"], - ["lodash.sortby", "npm:4.7.0"], - ["tr46", "npm:2.0.2"], - ["webidl-conversions", "npm:5.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["which", [ - ["npm:1.3.1", { - "packageLocation": "./.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-298d95f9c1.zip/node_modules/which/", - "packageDependencies": [ - ["which", "npm:1.3.1"], - ["isexe", "npm:2.0.0"] - ], - "linkType": "HARD", - }], - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/which-npm-2.0.2-320ddf72f7-ea9b1db126.zip/node_modules/which/", - "packageDependencies": [ - ["which", "npm:2.0.2"], - ["isexe", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["which-module", [ - ["npm:2.0.0", { - "packageLocation": "./.yarn/cache/which-module-npm-2.0.0-daf3daa08d-3d2107ab18.zip/node_modules/which-module/", - "packageDependencies": [ - ["which-module", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["wide-align", [ - ["npm:1.1.3", { - "packageLocation": "./.yarn/cache/wide-align-npm-1.1.3-48c7d4953c-4f850f84da.zip/node_modules/wide-align/", - "packageDependencies": [ - ["wide-align", "npm:1.1.3"], - ["string-width", "npm:2.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["widest-line", [ - ["npm:2.0.1", { - "packageLocation": "./.yarn/cache/widest-line-npm-2.0.1-f40e0a0581-dd98e47483.zip/node_modules/widest-line/", - "packageDependencies": [ - ["widest-line", "npm:2.0.1"], - ["string-width", "npm:2.1.1"] - ], - "linkType": "HARD", - }], - ["npm:3.1.0", { - "packageLocation": "./.yarn/cache/widest-line-npm-3.1.0-717bf2680b-729c30582e.zip/node_modules/widest-line/", - "packageDependencies": [ - ["widest-line", "npm:3.1.0"], - ["string-width", "npm:4.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["windows-release", [ - ["npm:3.3.1", { - "packageLocation": "./.yarn/cache/windows-release-npm-3.3.1-97ef077d6d-209dd36f04.zip/node_modules/windows-release/", - "packageDependencies": [ - ["windows-release", "npm:3.3.1"], - ["execa", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["with-open-file", [ - ["npm:0.1.7", { - "packageLocation": "./.yarn/cache/with-open-file-npm-0.1.7-ecade23e38-c345da692e.zip/node_modules/with-open-file/", - "packageDependencies": [ - ["with-open-file", "npm:0.1.7"], - ["p-finally", "npm:1.0.0"], - ["p-try", "npm:2.2.0"], - ["pify", "npm:4.0.1"] - ], - "linkType": "HARD", - }] - ]], - ["wonka", [ - ["npm:4.0.14", { - "packageLocation": "./.yarn/cache/wonka-npm-4.0.14-db89f53fa3-3240c932de.zip/node_modules/wonka/", - "packageDependencies": [ - ["wonka", "npm:4.0.14"] - ], - "linkType": "HARD", - }] - ]], - ["word-wrap", [ - ["npm:1.2.3", { - "packageLocation": "./.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-6526abd75d.zip/node_modules/word-wrap/", - "packageDependencies": [ - ["word-wrap", "npm:1.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["wordwrap", [ - ["npm:1.0.0", { - "packageLocation": "./.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-b4f3f8104a.zip/node_modules/wordwrap/", - "packageDependencies": [ - ["wordwrap", "npm:1.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["worker-farm", [ - ["npm:1.7.0", { - "packageLocation": "./.yarn/cache/worker-farm-npm-1.7.0-cfc50c2626-ef76a6892b.zip/node_modules/worker-farm/", - "packageDependencies": [ - ["worker-farm", "npm:1.7.0"], - ["errno", "npm:0.1.7"] - ], - "linkType": "HARD", - }] - ]], - ["worker-rpc", [ - ["npm:0.1.1", { - "packageLocation": "./.yarn/cache/worker-rpc-npm-0.1.1-001e38add3-f1ff1b619f.zip/node_modules/worker-rpc/", - "packageDependencies": [ - ["worker-rpc", "npm:0.1.1"], - ["microevent.ts", "npm:0.1.1"] - ], - "linkType": "HARD", - }] - ]], - ["workspace", [ - ["npm:0.0.1-preview.1", { - "packageLocation": "./.yarn/cache/workspace-npm-0.0.1-preview.1-37e8956085-9b1e5944c5.zip/node_modules/workspace/", - "packageDependencies": [ - ["workspace", "npm:0.0.1-preview.1"] - ], - "linkType": "HARD", - }] - ]], - ["wrap-ansi", [ - ["npm:2.1.0", { - "packageLocation": "./.yarn/cache/wrap-ansi-npm-2.1.0-1fd9d50973-d1846c0664.zip/node_modules/wrap-ansi/", - "packageDependencies": [ - ["wrap-ansi", "npm:2.1.0"], - ["string-width", "npm:1.0.2"], - ["strip-ansi", "npm:3.0.1"] - ], - "linkType": "HARD", - }], - ["npm:3.0.1", { - "packageLocation": "./.yarn/cache/wrap-ansi-npm-3.0.1-876d294274-a5425ff35d.zip/node_modules/wrap-ansi/", - "packageDependencies": [ - ["wrap-ansi", "npm:3.0.1"], - ["string-width", "npm:2.1.1"], - ["strip-ansi", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:6.2.0", { - "packageLocation": "./.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-ee4ed8b299.zip/node_modules/wrap-ansi/", - "packageDependencies": [ - ["wrap-ansi", "npm:6.2.0"], - ["ansi-styles", "npm:4.2.1"], - ["string-width", "npm:4.2.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }], - ["npm:7.0.0", { - "packageLocation": "./.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-09939dd775.zip/node_modules/wrap-ansi/", - "packageDependencies": [ - ["wrap-ansi", "npm:7.0.0"], - ["ansi-styles", "npm:4.2.1"], - ["string-width", "npm:4.2.0"], - ["strip-ansi", "npm:6.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["wrappy", [ - ["npm:1.0.2", { - "packageLocation": "./.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-519fcda0fc.zip/node_modules/wrappy/", - "packageDependencies": [ - ["wrappy", "npm:1.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["write", [ - ["npm:1.0.3", { - "packageLocation": "./.yarn/cache/write-npm-1.0.3-1bac756049-e8f8fddefe.zip/node_modules/write/", - "packageDependencies": [ - ["write", "npm:1.0.3"], - ["mkdirp", "npm:0.5.5"] - ], - "linkType": "HARD", - }] - ]], - ["write-file-atomic", [ - ["npm:2.4.3", { - "packageLocation": "./.yarn/cache/write-file-atomic-npm-2.4.3-f3fc725df3-ef7113c80f.zip/node_modules/write-file-atomic/", - "packageDependencies": [ - ["write-file-atomic", "npm:2.4.3"], - ["graceful-fs", "npm:4.2.4"], - ["imurmurhash", "npm:0.1.4"], - ["signal-exit", "npm:3.0.3"] - ], - "linkType": "HARD", - }], - ["npm:3.0.3", { - "packageLocation": "./.yarn/cache/write-file-atomic-npm-3.0.3-d948a237da-a26a8699c3.zip/node_modules/write-file-atomic/", - "packageDependencies": [ - ["write-file-atomic", "npm:3.0.3"], - ["imurmurhash", "npm:0.1.4"], - ["is-typedarray", "npm:1.0.0"], - ["signal-exit", "npm:3.0.3"], - ["typedarray-to-buffer", "npm:3.1.5"] - ], - "linkType": "HARD", - }] - ]], - ["ws", [ - ["npm:5.2.2", { - "packageLocation": "./.yarn/cache/ws-npm-5.2.2-173bcd57b2-c8217b5482.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "npm:5.2.2"] - ], - "linkType": "SOFT", - }], - ["npm:7.3.1", { - "packageLocation": "./.yarn/cache/ws-npm-7.3.1-0fa30fe373-9302f1f665.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "npm:7.3.1"] - ], - "linkType": "SOFT", - }], - ["npm:7.4.4", { - "packageLocation": "./.yarn/cache/ws-npm-7.4.4-745c19daca-ad08761ed7.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "npm:7.4.4"] - ], - "linkType": "SOFT", - }], - ["virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1", { - "packageLocation": "./.yarn/$$virtual/ws-virtual-560df13b99/0/cache/ws-npm-7.3.1-0fa30fe373-9302f1f665.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1"], - ["@types/bufferutil", null], - ["@types/utf-8-validate", null], - ["bufferutil", null], - ["utf-8-validate", null] - ], - "packagePeers": [ - "@types/bufferutil", - "@types/utf-8-validate", - "bufferutil", - "utf-8-validate" - ], - "linkType": "HARD", - }], - ["virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2", { - "packageLocation": "./.yarn/$$virtual/ws-virtual-cea9840d71/0/cache/ws-npm-5.2.2-173bcd57b2-c8217b5482.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2"], - ["@types/bufferutil", null], - ["@types/utf-8-validate", null], - ["async-limiter", "npm:1.0.1"], - ["bufferutil", null], - ["utf-8-validate", null] - ], - "packagePeers": [ - "@types/bufferutil", - "@types/utf-8-validate", - "bufferutil", - "utf-8-validate" - ], - "linkType": "HARD", - }], - ["virtual:6a57145ae363bb2f8a80076838317f779b911b58a6fdc784436689f4fc9a322b39f6f7e8a3aef742ffc5f8f7155890a4bb43ad7ac6c86073071726501001d707#npm:7.4.4", { - "packageLocation": "./.yarn/$$virtual/ws-virtual-2dfefcc344/0/cache/ws-npm-7.4.4-745c19daca-ad08761ed7.zip/node_modules/ws/", - "packageDependencies": [ - ["ws", "virtual:6a57145ae363bb2f8a80076838317f779b911b58a6fdc784436689f4fc9a322b39f6f7e8a3aef742ffc5f8f7155890a4bb43ad7ac6c86073071726501001d707#npm:7.4.4"], - ["@types/bufferutil", null], - ["@types/utf-8-validate", null], - ["bufferutil", null], - ["utf-8-validate", null] - ], - "packagePeers": [ - "@types/bufferutil", - "@types/utf-8-validate", - "bufferutil", - "utf-8-validate" - ], - "linkType": "HARD", - }] - ]], - ["x-is-string", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/x-is-string-npm-0.1.0-a254bc0c3e-a0e9f54303.zip/node_modules/x-is-string/", - "packageDependencies": [ - ["x-is-string", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["xdg-basedir", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/xdg-basedir-npm-3.0.0-7eb0a8ccde-87d2160cc1.zip/node_modules/xdg-basedir/", - "packageDependencies": [ - ["xdg-basedir", "npm:3.0.0"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/xdg-basedir-npm-4.0.0-ed08d380e2-928953cb7d.zip/node_modules/xdg-basedir/", - "packageDependencies": [ - ["xdg-basedir", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["xml-name-validator", [ - ["npm:3.0.0", { - "packageLocation": "./.yarn/cache/xml-name-validator-npm-3.0.0-10e74a38ea-b96679a42e.zip/node_modules/xml-name-validator/", - "packageDependencies": [ - ["xml-name-validator", "npm:3.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["xmlchars", [ - ["npm:2.2.0", { - "packageLocation": "./.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-69bbb61e8d.zip/node_modules/xmlchars/", - "packageDependencies": [ - ["xmlchars", "npm:2.2.0"] - ], - "linkType": "HARD", - }] - ]], - ["xstate", [ - ["npm:4.13.0", { - "packageLocation": "./.yarn/cache/xstate-npm-4.13.0-1976c7ed31-fd79c89c5e.zip/node_modules/xstate/", - "packageDependencies": [ - ["xstate", "npm:4.13.0"] - ], - "linkType": "HARD", - }], - ["npm:4.15.1", { - "packageLocation": "./.yarn/cache/xstate-npm-4.15.1-cac0ba4821-24def9ddb0.zip/node_modules/xstate/", - "packageDependencies": [ - ["xstate", "npm:4.15.1"] - ], - "linkType": "HARD", - }] - ]], - ["xtend", [ - ["npm:4.0.2", { - "packageLocation": "./.yarn/cache/xtend-npm-4.0.2-7f2375736e-37ee522a3e.zip/node_modules/xtend/", - "packageDependencies": [ - ["xtend", "npm:4.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["y18n", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/y18n-npm-4.0.0-55cd797cc5-5b7434c95d.zip/node_modules/y18n/", - "packageDependencies": [ - ["y18n", "npm:4.0.0"] - ], - "linkType": "HARD", - }], - ["npm:5.0.5", { - "packageLocation": "./.yarn/cache/y18n-npm-5.0.5-1fa41a2023-a7d41b0ccc.zip/node_modules/y18n/", - "packageDependencies": [ - ["y18n", "npm:5.0.5"] - ], - "linkType": "HARD", - }] - ]], - ["yaeti", [ - ["npm:0.0.6", { - "packageLocation": "./.yarn/cache/yaeti-npm-0.0.6-cffd01e35a-fa9beece5a.zip/node_modules/yaeti/", - "packageDependencies": [ - ["yaeti", "npm:0.0.6"] - ], - "linkType": "HARD", - }] - ]], - ["yallist", [ - ["npm:2.1.2", { - "packageLocation": "./.yarn/cache/yallist-npm-2.1.2-2e38c366a3-f83e3d18ee.zip/node_modules/yallist/", - "packageDependencies": [ - ["yallist", "npm:2.1.2"] - ], - "linkType": "HARD", - }], - ["npm:3.1.1", { - "packageLocation": "./.yarn/cache/yallist-npm-3.1.1-a568a556b4-f352c93b92.zip/node_modules/yallist/", - "packageDependencies": [ - ["yallist", "npm:3.1.1"] - ], - "linkType": "HARD", - }], - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-a2960ef879.zip/node_modules/yallist/", - "packageDependencies": [ - ["yallist", "npm:4.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["yaml", [ - ["npm:1.10.0", { - "packageLocation": "./.yarn/cache/yaml-npm-1.10.0-3e2d763b45-d4cc9f9724.zip/node_modules/yaml/", - "packageDependencies": [ - ["yaml", "npm:1.10.0"] - ], - "linkType": "HARD", - }] - ]], - ["yargs", [ - ["npm:15.4.1", { - "packageLocation": "./.yarn/cache/yargs-npm-15.4.1-ca1c444de1-dbf687d6b9.zip/node_modules/yargs/", - "packageDependencies": [ - ["yargs", "npm:15.4.1"], - ["cliui", "npm:6.0.0"], - ["decamelize", "npm:1.2.0"], - ["find-up", "npm:4.1.0"], - ["get-caller-file", "npm:2.0.5"], - ["require-directory", "npm:2.1.1"], - ["require-main-filename", "npm:2.0.0"], - ["set-blocking", "npm:2.0.0"], - ["string-width", "npm:4.2.0"], - ["which-module", "npm:2.0.0"], - ["y18n", "npm:4.0.0"], - ["yargs-parser", "npm:18.1.3"] - ], - "linkType": "HARD", - }], - ["npm:16.2.0", { - "packageLocation": "./.yarn/cache/yargs-npm-16.2.0-547873d425-a79ce1f043.zip/node_modules/yargs/", - "packageDependencies": [ - ["yargs", "npm:16.2.0"], - ["cliui", "npm:7.0.4"], - ["escalade", "npm:3.1.1"], - ["get-caller-file", "npm:2.0.5"], - ["require-directory", "npm:2.1.1"], - ["string-width", "npm:4.2.0"], - ["y18n", "npm:5.0.5"], - ["yargs-parser", "npm:20.2.6"] - ], - "linkType": "HARD", - }] - ]], - ["yargs-parser", [ - ["npm:18.1.3", { - "packageLocation": "./.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-3387172167.zip/node_modules/yargs-parser/", - "packageDependencies": [ - ["yargs-parser", "npm:18.1.3"], - ["camelcase", "npm:5.3.1"], - ["decamelize", "npm:1.2.0"] - ], - "linkType": "HARD", - }], - ["npm:20.2.6", { - "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.6-909e598ff6-ed21fc0f35.zip/node_modules/yargs-parser/", - "packageDependencies": [ - ["yargs-parser", "npm:20.2.6"] - ], - "linkType": "HARD", - }], - ["npm:20.2.7", { - "packageLocation": "./.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-124e7f1c24.zip/node_modules/yargs-parser/", - "packageDependencies": [ - ["yargs-parser", "npm:20.2.7"] - ], - "linkType": "HARD", - }] - ]], - ["yeoman-character", [ - ["npm:1.1.0", { - "packageLocation": "./.yarn/cache/yeoman-character-npm-1.1.0-2e2b290d53-7d9b99645a.zip/node_modules/yeoman-character/", - "packageDependencies": [ - ["yeoman-character", "npm:1.1.0"], - ["supports-color", "npm:3.2.3"] - ], - "linkType": "HARD", - }] - ]], - ["yeoman-doctor", [ - ["npm:4.0.0", { - "packageLocation": "./.yarn/cache/yeoman-doctor-npm-4.0.0-cc4fd993c1-258510c71f.zip/node_modules/yeoman-doctor/", - "packageDependencies": [ - ["yeoman-doctor", "npm:4.0.0"], - ["ansi-styles", "npm:3.2.1"], - ["bin-version-check", "npm:3.0.0"], - ["chalk", "npm:2.4.2"], - ["global-agent", "npm:2.1.12"], - ["global-tunnel-ng", "npm:2.7.1"], - ["latest-version", "npm:3.1.0"], - ["log-symbols", "npm:2.2.0"], - ["semver", "npm:5.7.1"], - ["twig", "npm:1.15.1"], - ["user-home", "npm:2.0.0"] - ], - "linkType": "HARD", - }] - ]], - ["yeoman-environment", [ - ["npm:2.10.3", { - "packageLocation": "./.yarn/cache/yeoman-environment-npm-2.10.3-93bca3350a-d5b28f6e7f.zip/node_modules/yeoman-environment/", - "packageDependencies": [ - ["yeoman-environment", "npm:2.10.3"], - ["chalk", "npm:2.4.2"], - ["debug", "virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6"], - ["diff", "npm:3.5.0"], - ["escape-string-regexp", "npm:1.0.5"], - ["execa", "npm:4.0.3"], - ["globby", "npm:8.0.2"], - ["grouped-queue", "npm:1.1.0"], - ["inquirer", "npm:7.3.3"], - ["is-scoped", "npm:1.0.0"], - ["lodash", "npm:4.17.19"], - ["log-symbols", "npm:2.2.0"], - ["mem-fs", "npm:1.2.0"], - ["mem-fs-editor", "npm:6.0.0"], - ["npm-api", "npm:1.0.0"], - ["semver", "npm:7.3.2"], - ["strip-ansi", "npm:4.0.0"], - ["text-table", "npm:0.2.0"], - ["untildify", "npm:3.0.3"], - ["yeoman-generator", "npm:4.11.0"] - ], - "linkType": "HARD", - }] - ]], - ["yeoman-generator", [ - ["npm:4.11.0", { - "packageLocation": "./.yarn/cache/yeoman-generator-npm-4.11.0-b86fb248d8-121d5f12df.zip/node_modules/yeoman-generator/", - "packageDependencies": [ - ["yeoman-generator", "npm:4.11.0"], - ["async", "npm:2.6.3"], - ["chalk", "npm:2.4.2"], - ["cli-table", "npm:0.3.1"], - ["cross-spawn", "npm:6.0.5"], - ["dargs", "npm:6.1.0"], - ["dateformat", "npm:3.0.3"], - ["debug", "virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0"], - ["diff", "npm:4.0.2"], - ["error", "npm:7.2.1"], - ["find-up", "npm:3.0.0"], - ["github-username", "npm:3.0.0"], - ["grouped-queue", "npm:1.1.0"], - ["istextorbinary", "npm:2.6.0"], - ["lodash", "npm:4.17.19"], - ["make-dir", "npm:3.1.0"], - ["mem-fs-editor", "npm:7.0.1"], - ["minimist", "npm:1.2.5"], - ["pretty-bytes", "npm:5.3.0"], - ["read-chunk", "npm:3.2.0"], - ["read-pkg-up", "npm:5.0.0"], - ["rimraf", "npm:2.7.1"], - ["run-async", "npm:2.4.1"], - ["semver", "npm:7.3.2"], - ["shelljs", "npm:0.8.4"], - ["text-table", "npm:0.2.0"], - ["through2", "npm:3.0.2"], - ["yeoman-environment", "npm:2.10.3"] - ], - "linkType": "HARD", - }] - ]], - ["yo", [ - ["npm:3.1.1", { - "packageLocation": "./.yarn/unplugged/yo-npm-3.1.1-2859fd2fb9/node_modules/yo/", - "packageDependencies": [ - ["yo", "npm:3.1.1"], - ["async", "npm:2.6.3"], - ["chalk", "npm:2.4.2"], - ["cli-list", "npm:0.2.0"], - ["configstore", "npm:3.1.2"], - ["cross-spawn", "npm:6.0.5"], - ["figures", "npm:2.0.0"], - ["fullname", "npm:4.0.1"], - ["global-agent", "npm:2.1.12"], - ["global-tunnel-ng", "npm:2.7.1"], - ["got", "npm:8.3.2"], - ["humanize-string", "npm:1.0.2"], - ["inquirer", "npm:6.5.2"], - ["insight", "npm:0.10.3"], - ["lodash", "npm:4.17.19"], - ["meow", "npm:3.7.0"], - ["npm-keyword", "npm:5.0.0"], - ["open", "npm:6.4.0"], - ["package-json", "npm:5.0.0"], - ["parse-help", "npm:1.0.0"], - ["read-pkg-up", "npm:4.0.0"], - ["root-check", "npm:1.0.0"], - ["sort-on", "npm:3.0.0"], - ["string-length", "npm:2.0.0"], - ["tabtab", "npm:1.3.2"], - ["titleize", "npm:1.0.1"], - ["update-notifier", "npm:2.5.0"], - ["user-home", "npm:2.0.0"], - ["yeoman-character", "npm:1.1.0"], - ["yeoman-doctor", "npm:4.0.0"], - ["yeoman-environment", "npm:2.10.3"], - ["yosay", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["yocto-queue", [ - ["npm:0.1.0", { - "packageLocation": "./.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-096c3b40be.zip/node_modules/yocto-queue/", - "packageDependencies": [ - ["yocto-queue", "npm:0.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["yosay", [ - ["npm:2.0.2", { - "packageLocation": "./.yarn/cache/yosay-npm-2.0.2-50f629c5fa-cd6265bca7.zip/node_modules/yosay/", - "packageDependencies": [ - ["yosay", "npm:2.0.2"], - ["ansi-regex", "npm:2.1.1"], - ["ansi-styles", "npm:3.2.1"], - ["chalk", "npm:1.1.3"], - ["cli-boxes", "npm:1.0.0"], - ["pad-component", "npm:0.0.1"], - ["string-width", "npm:2.1.1"], - ["strip-ansi", "npm:3.0.1"], - ["taketalk", "npm:1.0.0"], - ["wrap-ansi", "npm:2.1.0"] - ], - "linkType": "HARD", - }] - ]], - ["yup", [ - ["npm:0.28.5", { - "packageLocation": "./.yarn/cache/yup-npm-0.28.5-b00f28bc9d-c5801c5832.zip/node_modules/yup/", - "packageDependencies": [ - ["yup", "npm:0.28.5"], - ["@babel/runtime", "npm:7.10.5"], - ["fn-name", "npm:3.0.0"], - ["lodash", "npm:4.17.19"], - ["lodash-es", "npm:4.17.15"], - ["property-expr", "npm:2.0.2"], - ["synchronous-promise", "npm:2.0.13"], - ["toposort", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:0.29.3", { - "packageLocation": "./.yarn/cache/yup-npm-0.29.3-8eaf762de3-bc07ab697d.zip/node_modules/yup/", - "packageDependencies": [ - ["yup", "npm:0.29.3"], - ["@babel/runtime", "npm:7.10.5"], - ["fn-name", "npm:3.0.0"], - ["lodash", "npm:4.17.19"], - ["lodash-es", "npm:4.17.15"], - ["property-expr", "npm:2.0.2"], - ["synchronous-promise", "npm:2.0.15"], - ["toposort", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:0.32.0", { - "packageLocation": "./.yarn/cache/yup-npm-0.32.0-178e3a2df5-4413b86616.zip/node_modules/yup/", - "packageDependencies": [ - ["yup", "npm:0.32.0"], - ["@babel/runtime", "npm:7.10.5"], - ["@types/lodash", "npm:4.14.165"], - ["lodash", "npm:4.17.20"], - ["lodash-es", "npm:4.17.15"], - ["nanoclone", "npm:0.2.1"], - ["property-expr", "npm:2.0.4"], - ["toposort", "npm:2.0.2"] - ], - "linkType": "HARD", - }], - ["npm:0.32.9", { - "packageLocation": "./.yarn/cache/yup-npm-0.32.9-d884fe5f43-9da93a58fd.zip/node_modules/yup/", - "packageDependencies": [ - ["yup", "npm:0.32.9"], - ["@babel/runtime", "npm:7.10.5"], - ["@types/lodash", "npm:4.14.165"], - ["lodash", "npm:4.17.20"], - ["lodash-es", "npm:4.17.21"], - ["nanoclone", "npm:0.2.1"], - ["property-expr", "npm:2.0.4"], - ["toposort", "npm:2.0.2"] - ], - "linkType": "HARD", - }] - ]], - ["zen-observable", [ - ["npm:0.8.15", { - "packageLocation": "./.yarn/cache/zen-observable-npm-0.8.15-3bec99c19c-7d155f8a75.zip/node_modules/zen-observable/", - "packageDependencies": [ - ["zen-observable", "npm:0.8.15"] - ], - "linkType": "HARD", - }] - ]], - ["zen-observable-ts", [ - ["npm:0.8.21", { - "packageLocation": "./.yarn/cache/zen-observable-ts-npm-0.8.21-9c85e9f655-031ac9c244.zip/node_modules/zen-observable-ts/", - "packageDependencies": [ - ["zen-observable-ts", "npm:0.8.21"], - ["tslib", "npm:1.13.0"], - ["zen-observable", "npm:0.8.15"] - ], - "linkType": "HARD", - }] - ]], - ["zwitch", [ - ["npm:1.0.5", { - "packageLocation": "./.yarn/cache/zwitch-npm-1.0.5-5911cef6ce-5005166809.zip/node_modules/zwitch/", - "packageDependencies": [ - ["zwitch", "npm:1.0.5"] - ], - "linkType": "HARD", - }] - ]] - ] - }, {basePath: basePath || __dirname}); - } - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["pnpHook"] = factory(); - else - root["pnpHook"] = factory(); -})(global, function() { -return /******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ 936: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "default": () => /* binding */ _entryPoint -}); - -// EXTERNAL MODULE: external "fs" -var external_fs_ = __webpack_require__(747); -var external_fs_default = /*#__PURE__*/__webpack_require__.n(external_fs_); - -// CONCATENATED MODULE: external "os" -const external_os_namespaceObject = require("os");; -var external_os_default = /*#__PURE__*/__webpack_require__.n(external_os_namespaceObject); - -// EXTERNAL MODULE: external "path" -var external_path_ = __webpack_require__(622); -var external_path_default = /*#__PURE__*/__webpack_require__.n(external_path_); - -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/path.ts - -var PathType; - -(function (PathType) { - PathType[PathType["File"] = 0] = "File"; - PathType[PathType["Portable"] = 1] = "Portable"; - PathType[PathType["Native"] = 2] = "Native"; -})(PathType || (PathType = {})); - -const PortablePath = { - root: `/`, - dot: `.` -}; -const Filename = { - nodeModules: `node_modules`, - manifest: `package.json`, - lockfile: `yarn.lock`, - pnpJs: `.pnp.js`, - rc: `.yarnrc.yml` -}; -const npath = Object.create((external_path_default())); -const ppath = Object.create((external_path_default()).posix); - -npath.cwd = () => process.cwd(); - -ppath.cwd = () => toPortablePath(process.cwd()); - -ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return external_path_default().posix.resolve(...segments); - } else { - return external_path_default().posix.resolve(ppath.cwd(), ...segments); - } -}; - -const contains = function (pathUtils, from, to) { - from = pathUtils.normalize(from); - to = pathUtils.normalize(to); - if (from === to) return `.`; - if (!from.endsWith(pathUtils.sep)) from = from + pathUtils.sep; - - if (to.startsWith(from)) { - return to.slice(from.length); - } else { - return null; - } -}; - -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; - -npath.contains = (from, to) => contains(npath, from, to); - -ppath.contains = (from, to) => contains(ppath, from, to); - -const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; -const UNC_WINDOWS_PATH_REGEXP = /^\\\\(\.\\)?(.*)$/; -const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; -const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; // Path should look like "/N:/berry/scripts/plugin-pack.js" -// And transform to "N:\berry\scripts\plugin-pack.js" - -function fromPortablePath(p) { - if (process.platform !== `win32`) return p; - if (p.match(PORTABLE_PATH_REGEXP)) p = p.replace(PORTABLE_PATH_REGEXP, `$1`);else if (p.match(UNC_PORTABLE_PATH_REGEXP)) p = p.replace(UNC_PORTABLE_PATH_REGEXP, (match, p1, p2) => `\\\\${p1 ? `.\\` : ``}${p2}`);else return p; - return p.replace(/\//g, `\\`); -} // Path should look like "N:/berry/scripts/plugin-pack.js" -// And transform to "/N:/berry/scripts/plugin-pack.js" - - -function toPortablePath(p) { - if (process.platform !== `win32`) return p; - if (p.match(WINDOWS_PATH_REGEXP)) p = p.replace(WINDOWS_PATH_REGEXP, `/$1`);else if (p.match(UNC_WINDOWS_PATH_REGEXP)) p = p.replace(UNC_WINDOWS_PATH_REGEXP, (match, p1, p2) => `/unc/${p1 ? `.dot/` : ``}${p2}`); - return p.replace(/\\/g, `/`); -} - -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} -function toFilename(filename) { - if (npath.parse(filename).dir !== `` || ppath.parse(filename).dir !== ``) throw new Error(`Invalid filename: "${filename}"`); - return filename; -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/copyPromise.ts - - // 1980-01-01, like Fedora - -const defaultTime = new Date(315532800 * 1000); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - await destinationFs.mkdirPromise(destinationFs.pathUtils.dirname(destination), { - recursive: true - }); - const updateTime = typeof destinationFs.lutimesPromise === `function` ? destinationFs.lutimesPromise.bind(destinationFs) : destinationFs.utimesPromise.bind(destinationFs); - await copyImpl(prelayout, postlayout, updateTime, destinationFs, normalizedDestination, sourceFs, normalizedSource, opts); - - for (const operation of prelayout) await operation(); - - await Promise.all(postlayout.map(operation => { - return operation(); - })); + return hydrateRuntimeState( + { + __info: [ + 'This file is automatically generated. Do not touch it, or risk', + 'your modifications being lost. We also recommend you not to read', + 'it either without using the @yarnpkg/pnp package, as the data layout', + 'is entirely unspecified and WILL change from a version to another.', + ], + dependencyTreeRoots: [ + { + name: 'sc', + reference: 'workspace:.', + }, + { + name: 'demo', + reference: 'workspace:apps/demo', + }, + { + name: 'test', + reference: 'workspace:apps/test', + }, + { + name: 'tina-cloud-starter', + reference: 'workspace:apps/tina-cloud-starter', + }, + { + name: 'tina-graphql', + reference: 'workspace:packages/tina-graphql', + }, + { + name: 'tina-graphql-gateway', + reference: 'workspace:packages/tina-graphql-gateway', + }, + { + name: 'tina-graphql-gateway-cli', + reference: 'workspace:packages/tina-graphql-gateway-cli', + }, + { + name: 'tina-graphql-helpers', + reference: 'workspace:packages/tina-graphql-helpers', + }, + ], + enableTopLevelFallback: true, + ignorePatternData: + '(^(?:\\.yarn\\/sdks(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)|$))$)', + fallbackExclusionList: [ + ['demo', ['workspace:apps/demo']], + ['sc', ['workspace:.']], + ['test', ['workspace:apps/test']], + ['tina-cloud-starter', ['workspace:apps/tina-cloud-starter']], + ['tina-graphql', ['workspace:packages/tina-graphql']], + [ + 'tina-graphql-gateway', + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway', + 'workspace:packages/tina-graphql-gateway', + ], + ], + [ + 'tina-graphql-gateway-cli', + ['workspace:packages/tina-graphql-gateway-cli'], + ], + ['tina-graphql-helpers', ['workspace:packages/tina-graphql-helpers']], + ], + fallbackPool: [], + locationBlacklistData: [], + packageRegistryData: [ + [ + null, + [ + [ + null, + { + packageLocation: './', + packageDependencies: [ + [ + '@yarnpkg/pnpify', + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0', + ], + ['danger', 'npm:10.6.0'], + ['eslint', 'npm:6.8.0'], + ['husky', 'npm:6.0.0'], + ['prettier', 'npm:2.3.0'], + [ + 'pretty-quick', + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:3.1.0', + ], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['workspace', 'npm:0.0.1-preview.1'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + '@ampproject/toolbox-core', + [ + [ + 'npm:2.5.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-core-npm-2.5.4-e058ab53be-9ebd64948d.zip/node_modules/@ampproject/toolbox-core/', + packageDependencies: [ + ['@ampproject/toolbox-core', 'npm:2.5.4'], + ['cross-fetch', 'npm:3.0.5'], + ['lru-cache', 'npm:5.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-core-npm-2.7.4-33dbe17e28-0d215bbbcf.zip/node_modules/@ampproject/toolbox-core/', + packageDependencies: [ + ['@ampproject/toolbox-core', 'npm:2.7.4'], + ['cross-fetch', 'npm:3.0.6'], + ['lru-cache', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@ampproject/toolbox-optimizer', + [ + [ + 'npm:2.3.1', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-optimizer-npm-2.3.1-8885a83c55-5ccf6590fd.zip/node_modules/@ampproject/toolbox-optimizer/', + packageDependencies: [ + ['@ampproject/toolbox-optimizer', 'npm:2.3.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:2.5.14', + { + packageLocation: + './.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-70264be78b/node_modules/@ampproject/toolbox-optimizer/', + packageDependencies: [ + ['@ampproject/toolbox-optimizer', 'npm:2.5.14'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:2.7.1-alpha.0', + { + packageLocation: + './.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-7cfff4ce70/node_modules/@ampproject/toolbox-optimizer/', + packageDependencies: [ + ['@ampproject/toolbox-optimizer', 'npm:2.7.1-alpha.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:2.7.1-alpha.0', + { + packageLocation: + './.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-7cfff4ce70/node_modules/@ampproject/toolbox-optimizer/', + packageDependencies: [ + [ + '@ampproject/toolbox-optimizer', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:2.7.1-alpha.0', + ], + ['@ampproject/toolbox-core', 'npm:2.7.4'], + ['@ampproject/toolbox-runtime-version', 'npm:2.7.4'], + ['@ampproject/toolbox-script-csp', 'npm:2.5.4'], + ['@ampproject/toolbox-validator-rules', 'npm:2.7.4'], + ['abort-controller', 'npm:3.0.0'], + ['cross-fetch', 'npm:3.0.6'], + ['cssnano-simple', 'npm:1.2.1'], + ['dom-serializer', 'npm:1.1.0'], + ['domhandler', 'npm:3.3.0'], + ['domutils', 'npm:2.4.2'], + ['htmlparser2', 'npm:5.0.1'], + ['https-proxy-agent', 'npm:5.0.0'], + ['jimp', null], + ['lru-cache', 'npm:6.0.0'], + ['node-fetch', 'npm:2.6.1'], + ['normalize-html-whitespace', 'npm:1.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-safe-parser', 'npm:4.0.2'], + ['probe-image-size', null], + ['terser', 'npm:5.5.1'], + ], + packagePeers: ['jimp', 'probe-image-size'], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:2.5.14', + { + packageLocation: + './.yarn/unplugged/@ampproject-toolbox-optimizer-virtual-70264be78b/node_modules/@ampproject/toolbox-optimizer/', + packageDependencies: [ + [ + '@ampproject/toolbox-optimizer', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:2.5.14', + ], + ['@ampproject/toolbox-core', 'npm:2.5.4'], + ['@ampproject/toolbox-runtime-version', 'npm:2.5.4'], + ['@ampproject/toolbox-script-csp', 'npm:2.5.4'], + ['@ampproject/toolbox-validator-rules', 'npm:2.5.4'], + ['@types/jimp', null], + ['@types/probe-image-size', null], + ['abort-controller', 'npm:3.0.0'], + ['cross-fetch', 'npm:3.0.5'], + ['cssnano', 'npm:4.1.10'], + ['dom-serializer', 'npm:1.0.1'], + ['domhandler', 'npm:3.0.0'], + ['domutils', 'npm:2.1.0'], + ['htmlparser2', 'npm:4.1.0'], + ['jimp', null], + ['lru-cache', 'npm:5.1.1'], + ['node-fetch', 'npm:2.6.0'], + ['normalize-html-whitespace', 'npm:1.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-safe-parser', 'npm:4.0.2'], + ['probe-image-size', null], + ['terser', 'npm:4.8.0'], + ], + packagePeers: [ + '@types/jimp', + '@types/probe-image-size', + 'jimp', + 'probe-image-size', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:2.3.1', + { + packageLocation: + './.yarn/$$virtual/@ampproject-toolbox-optimizer-virtual-5eacb22364/0/cache/@ampproject-toolbox-optimizer-npm-2.3.1-8885a83c55-5ccf6590fd.zip/node_modules/@ampproject/toolbox-optimizer/', + packageDependencies: [ + [ + '@ampproject/toolbox-optimizer', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:2.3.1', + ], + ['@ampproject/toolbox-core', 'npm:2.5.4'], + ['@ampproject/toolbox-runtime-version', 'npm:2.5.4'], + ['@ampproject/toolbox-script-csp', 'npm:2.5.4'], + ['@ampproject/toolbox-validator-rules', 'npm:2.5.4'], + ['@types/jimp', null], + ['@types/lru-cache', null], + ['@types/probe-image-size', null], + ['cssnano', 'npm:4.1.10'], + ['domhandler', 'npm:3.0.0'], + ['domutils', 'npm:2.0.0'], + ['htmlparser2', 'npm:4.1.0'], + ['jimp', null], + ['lru-cache', null], + ['normalize-html-whitespace', 'npm:1.0.0'], + ['postcss-safe-parser', 'npm:4.0.2'], + ['probe-image-size', null], + ['terser', 'npm:4.6.13'], + ], + packagePeers: [ + '@types/jimp', + '@types/lru-cache', + '@types/probe-image-size', + 'jimp', + 'lru-cache', + 'probe-image-size', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@ampproject/toolbox-runtime-version', + [ + [ + 'npm:2.5.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-runtime-version-npm-2.5.4-40c639fdac-0a773fdce7.zip/node_modules/@ampproject/toolbox-runtime-version/', + packageDependencies: [ + ['@ampproject/toolbox-runtime-version', 'npm:2.5.4'], + ['@ampproject/toolbox-core', 'npm:2.5.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-runtime-version-npm-2.7.4-8a83b0aef9-e07513cc6d.zip/node_modules/@ampproject/toolbox-runtime-version/', + packageDependencies: [ + ['@ampproject/toolbox-runtime-version', 'npm:2.7.4'], + ['@ampproject/toolbox-core', 'npm:2.7.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@ampproject/toolbox-script-csp', + [ + [ + 'npm:2.5.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-script-csp-npm-2.5.4-199ba98988-fcafb38682.zip/node_modules/@ampproject/toolbox-script-csp/', + packageDependencies: [ + ['@ampproject/toolbox-script-csp', 'npm:2.5.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@ampproject/toolbox-validator-rules', + [ + [ + 'npm:2.5.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-validator-rules-npm-2.5.4-2554e7119a-41e81a02d6.zip/node_modules/@ampproject/toolbox-validator-rules/', + packageDependencies: [ + ['@ampproject/toolbox-validator-rules', 'npm:2.5.4'], + ['cross-fetch', 'npm:3.0.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.4', + { + packageLocation: + './.yarn/cache/@ampproject-toolbox-validator-rules-npm-2.7.4-a7dd063ec2-53c7765b3b.zip/node_modules/@ampproject/toolbox-validator-rules/', + packageDependencies: [ + ['@ampproject/toolbox-validator-rules', 'npm:2.7.4'], + ['cross-fetch', 'npm:3.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@apollo/client', + [ + [ + 'npm:3.1.4', + { + packageLocation: + './.yarn/cache/@apollo-client-npm-3.1.4-d9c79daea6-2d28f17f33.zip/node_modules/@apollo/client/', + packageDependencies: [['@apollo/client', 'npm:3.1.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:b9b0e1dd832f3eefdbdae1b04f9c91400316688efbe29541e6d687eb030bcce67b26083f769282e2f54c6b6ad7b02a34d34e6a5ae386ad9d99aef1f7f903bc24#npm:3.1.4', + { + packageLocation: + './.yarn/$$virtual/@apollo-client-virtual-cf6957b3f4/0/cache/@apollo-client-npm-3.1.4-d9c79daea6-2d28f17f33.zip/node_modules/@apollo/client/', + packageDependencies: [ + [ + '@apollo/client', + 'virtual:b9b0e1dd832f3eefdbdae1b04f9c91400316688efbe29541e6d687eb030bcce67b26083f769282e2f54c6b6ad7b02a34d34e6a5ae386ad9d99aef1f7f903bc24#npm:3.1.4', + ], + ['@types/graphql', null], + ['@types/react', null], + ['@types/subscriptions-transport-ws', null], + ['@types/zen-observable', 'npm:0.8.1'], + ['@wry/context', 'npm:0.5.2'], + ['@wry/equality', 'npm:0.2.0'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['hoist-non-react-statics', 'npm:3.3.2'], + ['optimism', 'npm:0.12.1'], + ['prop-types', 'npm:15.7.2'], + ['react', null], + [ + 'subscriptions-transport-ws', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18', + ], + ['symbol-observable', 'npm:1.2.0'], + ['terser', 'npm:5.3.0'], + ['ts-invariant', 'npm:0.4.4'], + ['tslib', 'npm:1.13.0'], + ['zen-observable', 'npm:0.8.15'], + ], + packagePeers: [ + '@types/graphql', + '@types/react', + '@types/subscriptions-transport-ws', + 'graphql', + 'react', + 'subscriptions-transport-ws', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@arcanis/slice-ansi', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/@arcanis-slice-ansi-npm-1.0.2-f258a50730-1b45393630.zip/node_modules/@arcanis/slice-ansi/', + packageDependencies: [ + ['@arcanis/slice-ansi', 'npm:1.0.2'], + ['grapheme-splitter', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@ardatan/aggregate-error', + [ + [ + 'npm:0.0.1', + { + packageLocation: + './.yarn/cache/@ardatan-aggregate-error-npm-0.0.1-221ba0bbbd-bb98b317db.zip/node_modules/@ardatan/aggregate-error/', + packageDependencies: [ + ['@ardatan/aggregate-error', 'npm:0.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.0.6', + { + packageLocation: + './.yarn/cache/@ardatan-aggregate-error-npm-0.0.6-0f1d22ed0c-c11138d0cb.zip/node_modules/@ardatan/aggregate-error/', + packageDependencies: [ + ['@ardatan/aggregate-error', 'npm:0.0.6'], + ['tslib', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/code-frame', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-code-frame-npm-7.10.4-ab1ee3c93e-05245d3b22.zip/node_modules/@babel/code-frame/', + packageDependencies: [ + ['@babel/code-frame', 'npm:7.10.4'], + ['@babel/highlight', 'npm:7.10.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.12.11', + { + packageLocation: + './.yarn/cache/@babel-code-frame-npm-7.12.11-1a9a1b277f-033d3fb3bf.zip/node_modules/@babel/code-frame/', + packageDependencies: [ + ['@babel/code-frame', 'npm:7.12.11'], + ['@babel/highlight', 'npm:7.10.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-code-frame-npm-7.8.3-ea28dc5d9b-0552a3e366.zip/node_modules/@babel/code-frame/', + packageDependencies: [ + ['@babel/code-frame', 'npm:7.8.3'], + ['@babel/highlight', 'npm:7.10.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/compat-data', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-compat-data-npm-7.10.5-6035215b0e-788af12585.zip/node_modules/@babel/compat-data/', + packageDependencies: [ + ['@babel/compat-data', 'npm:7.10.5'], + ['browserslist', 'npm:4.13.0'], + ['invariant', 'npm:2.2.4'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/core', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-core-npm-7.10.5-3a200310d8-1b7ddcb578.zip/node_modules/@babel/core/', + packageDependencies: [ + ['@babel/core', 'npm:7.10.5'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@babel/generator', 'npm:7.10.5'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helpers', 'npm:7.10.4'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ['convert-source-map', 'npm:1.7.0'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['gensync', 'npm:1.0.0-beta.1'], + ['json5', 'npm:2.1.3'], + ['lodash', 'npm:4.17.19'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ['semver', 'npm:5.7.1'], + ['source-map', 'npm:0.5.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.7.7', + { + packageLocation: + './.yarn/cache/@babel-core-npm-7.7.7-b84b7d303c-fdd52c4cda.zip/node_modules/@babel/core/', + packageDependencies: [ + ['@babel/core', 'npm:7.7.7'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@babel/generator', 'npm:7.10.5'], + ['@babel/helpers', 'npm:7.10.4'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ['convert-source-map', 'npm:1.7.0'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['json5', 'npm:2.1.3'], + ['lodash', 'npm:4.17.19'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ['semver', 'npm:5.7.1'], + ['source-map', 'npm:0.5.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/generator', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-generator-npm-7.10.5-f5ec869d37-6e3fd80652.zip/node_modules/@babel/generator/', + packageDependencies: [ + ['@babel/generator', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ['jsesc', 'npm:2.5.2'], + ['source-map', 'npm:0.5.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.6', + { + packageLocation: + './.yarn/cache/@babel-generator-npm-7.11.6-54b7afa079-734bd60e01.zip/node_modules/@babel/generator/', + packageDependencies: [ + ['@babel/generator', 'npm:7.11.6'], + ['@babel/types', 'npm:7.11.5'], + ['jsesc', 'npm:2.5.2'], + ['source-map', 'npm:0.5.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-annotate-as-pure', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-annotate-as-pure-npm-7.10.4-61cb45f47d-535cdf631e.zip/node_modules/@babel/helper-annotate-as-pure/', + packageDependencies: [ + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-builder-binary-assignment-operator-visitor', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-builder-binary-assignment-operator-visitor-npm-7.10.4-84f16304b7-369530a197.zip/node_modules/@babel/helper-builder-binary-assignment-operator-visitor/', + packageDependencies: [ + [ + '@babel/helper-builder-binary-assignment-operator-visitor', + 'npm:7.10.4', + ], + ['@babel/helper-explode-assignable-expression', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-builder-react-jsx', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-builder-react-jsx-npm-7.10.4-ea8d3e69ef-f14f786b5e.zip/node_modules/@babel/helper-builder-react-jsx/', + packageDependencies: [ + ['@babel/helper-builder-react-jsx', 'npm:7.10.4'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-builder-react-jsx-experimental', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-helper-builder-react-jsx-experimental-npm-7.10.5-a2db210bb1-9505bc9d36.zip/node_modules/@babel/helper-builder-react-jsx-experimental/', + packageDependencies: [ + [ + '@babel/helper-builder-react-jsx-experimental', + 'npm:7.10.5', + ], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-compilation-targets', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-compilation-targets-npm-7.10.4-26147fe36f-7603388e45.zip/node_modules/@babel/helper-compilation-targets/', + packageDependencies: [ + ['@babel/helper-compilation-targets', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-helper-compilation-targets-virtual-c45a1d9463/0/cache/@babel-helper-compilation-targets-npm-7.10.4-26147fe36f-7603388e45.zip/node_modules/@babel/helper-compilation-targets/', + packageDependencies: [ + [ + '@babel/helper-compilation-targets', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/compat-data', 'npm:7.10.5'], + ['@babel/core', 'npm:7.7.7'], + ['@types/babel__core', null], + ['browserslist', 'npm:4.13.0'], + ['invariant', 'npm:2.2.4'], + ['levenary', 'npm:1.1.1'], + ['semver', 'npm:5.7.1'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-create-class-features-plugin', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-d617be0e4a-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/', + packageDependencies: [ + ['@babel/helper-create-class-features-plugin', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-8ca74c743b/0/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-d617be0e4a-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/', + packageDependencies: [ + [ + '@babel/helper-create-class-features-plugin', + 'virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-function-name', 'npm:7.10.4'], + [ + '@babel/helper-member-expression-to-functions', + 'npm:7.10.5', + ], + ['@babel/helper-optimise-call-expression', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8b6041c120a4d18b9efd12486ec841c4d372a14a6fb2d9f8f9a5011f36dc785f0896498682346d0f225f61f420a2cf75d9594fbcf5b10318a5afe27ea598c925#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-helper-create-class-features-plugin-virtual-de20916dce/0/cache/@babel-helper-create-class-features-plugin-npm-7.10.5-d617be0e4a-ba8fb0f7b7.zip/node_modules/@babel/helper-create-class-features-plugin/', + packageDependencies: [ + [ + '@babel/helper-create-class-features-plugin', + 'virtual:8b6041c120a4d18b9efd12486ec841c4d372a14a6fb2d9f8f9a5011f36dc785f0896498682346d0f225f61f420a2cf75d9594fbcf5b10318a5afe27ea598c925#npm:7.10.5', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-function-name', 'npm:7.10.4'], + [ + '@babel/helper-member-expression-to-functions', + 'npm:7.10.5', + ], + ['@babel/helper-optimise-call-expression', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-create-regexp-features-plugin', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-5d1b7c5ca4-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/', + packageDependencies: [ + ['@babel/helper-create-regexp-features-plugin', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-helper-create-regexp-features-plugin-virtual-f5feeb1521/0/cache/@babel-helper-create-regexp-features-plugin-npm-7.10.4-5d1b7c5ca4-6d1728b614.zip/node_modules/@babel/helper-create-regexp-features-plugin/', + packageDependencies: [ + [ + '@babel/helper-create-regexp-features-plugin', + 'virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-regex', 'npm:7.10.5'], + ['@types/babel__core', null], + ['regexpu-core', 'npm:4.7.0'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-define-map', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-helper-define-map-npm-7.10.5-a39821074e-964cab640d.zip/node_modules/@babel/helper-define-map/', + packageDependencies: [ + ['@babel/helper-define-map', 'npm:7.10.5'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-explode-assignable-expression', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-explode-assignable-expression-npm-7.10.4-50e5a819c3-3348549a83.zip/node_modules/@babel/helper-explode-assignable-expression/', + packageDependencies: [ + ['@babel/helper-explode-assignable-expression', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-function-name', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-function-name-npm-7.10.4-153d80f559-41ab8f48bb.zip/node_modules/@babel/helper-function-name/', + packageDependencies: [ + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-get-function-arity', 'npm:7.10.4'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-get-function-arity', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-get-function-arity-npm-7.10.4-29a99c32bb-4f0ddd4340.zip/node_modules/@babel/helper-get-function-arity/', + packageDependencies: [ + ['@babel/helper-get-function-arity', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-hoist-variables', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-hoist-variables-npm-7.10.4-ba6140a324-0bc1976366.zip/node_modules/@babel/helper-hoist-variables/', + packageDependencies: [ + ['@babel/helper-hoist-variables', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-member-expression-to-functions', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-helper-member-expression-to-functions-npm-7.10.5-328cc5931f-f239d2dfdb.zip/node_modules/@babel/helper-member-expression-to-functions/', + packageDependencies: [ + [ + '@babel/helper-member-expression-to-functions', + 'npm:7.10.5', + ], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-module-imports', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-module-imports-npm-7.10.4-f55d85af2c-84d03b58e7.zip/node_modules/@babel/helper-module-imports/', + packageDependencies: [ + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-module-transforms', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-helper-module-transforms-npm-7.10.5-39c6d857ed-02a2b60705.zip/node_modules/@babel/helper-module-transforms/', + packageDependencies: [ + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@babel/helper-simple-access', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-optimise-call-expression', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-optimise-call-expression-npm-7.10.4-135301e242-70dd5a6daf.zip/node_modules/@babel/helper-optimise-call-expression/', + packageDependencies: [ + ['@babel/helper-optimise-call-expression', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-plugin-utils', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-plugin-utils-npm-7.10.4-af87df4f11-9f617e619a.zip/node_modules/@babel/helper-plugin-utils/', + packageDependencies: [ + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-regex', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-helper-regex-npm-7.10.5-2157cc850a-956b9f22da.zip/node_modules/@babel/helper-regex/', + packageDependencies: [ + ['@babel/helper-regex', 'npm:7.10.5'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-remap-async-to-generator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-remap-async-to-generator-npm-7.10.4-1bf07cfa56-258395dbab.zip/node_modules/@babel/helper-remap-async-to-generator/', + packageDependencies: [ + ['@babel/helper-remap-async-to-generator', 'npm:7.10.4'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-wrap-function', 'npm:7.10.4'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-replace-supers', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-replace-supers-npm-7.10.4-8bf69fb844-2d7e0627cd.zip/node_modules/@babel/helper-replace-supers/', + packageDependencies: [ + ['@babel/helper-replace-supers', 'npm:7.10.4'], + [ + '@babel/helper-member-expression-to-functions', + 'npm:7.10.5', + ], + ['@babel/helper-optimise-call-expression', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-simple-access', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-simple-access-npm-7.10.4-0a4bf355e6-a7ce52a229.zip/node_modules/@babel/helper-simple-access/', + packageDependencies: [ + ['@babel/helper-simple-access', 'npm:7.10.4'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-split-export-declaration', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-split-export-declaration-npm-7.10.4-834d026d0a-d8536faa40.zip/node_modules/@babel/helper-split-export-declaration/', + packageDependencies: [ + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.0', + { + packageLocation: + './.yarn/cache/@babel-helper-split-export-declaration-npm-7.11.0-d39c69702f-ddfc44d0cf.zip/node_modules/@babel/helper-split-export-declaration/', + packageDependencies: [ + ['@babel/helper-split-export-declaration', 'npm:7.11.0'], + ['@babel/types', 'npm:7.11.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-validator-identifier', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-validator-identifier-npm-7.10.4-0689d787fa-25098ef842.zip/node_modules/@babel/helper-validator-identifier/', + packageDependencies: [ + ['@babel/helper-validator-identifier', 'npm:7.10.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.12.11', + { + packageLocation: + './.yarn/cache/@babel-helper-validator-identifier-npm-7.12.11-e33455648e-18de432203.zip/node_modules/@babel/helper-validator-identifier/', + packageDependencies: [ + ['@babel/helper-validator-identifier', 'npm:7.12.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helper-wrap-function', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helper-wrap-function-npm-7.10.4-03676069ea-4d5fe2db33.zip/node_modules/@babel/helper-wrap-function/', + packageDependencies: [ + ['@babel/helper-wrap-function', 'npm:7.10.4'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/helpers', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-helpers-npm-7.10.4-5e11989f8d-96859c490a.zip/node_modules/@babel/helpers/', + packageDependencies: [ + ['@babel/helpers', 'npm:7.10.4'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/highlight', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-highlight-npm-7.10.4-c7ff18fbba-c167b938af.zip/node_modules/@babel/highlight/', + packageDependencies: [ + ['@babel/highlight', 'npm:7.10.4'], + ['@babel/helper-validator-identifier', 'npm:7.10.4'], + ['chalk', 'npm:2.4.2'], + ['js-tokens', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/parser', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-parser-npm-7.10.5-eebd996481-c7b4d7183f.zip/node_modules/@babel/parser/', + packageDependencies: [ + ['@babel/parser', 'npm:7.10.5'], + ['@babel/types', 'npm:7.13.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.5', + { + packageLocation: + './.yarn/cache/@babel-parser-npm-7.11.5-7dfe3dc547-ef2874e4d2.zip/node_modules/@babel/parser/', + packageDependencies: [ + ['@babel/parser', 'npm:7.11.5'], + ['@babel/types', 'npm:7.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-async-generator-functions', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-async-generator-functions-npm-7.10.5-fa0418ca83-d43c72c330.zip/node_modules/@babel/plugin-proposal-async-generator-functions/', + packageDependencies: [ + [ + '@babel/plugin-proposal-async-generator-functions', + 'npm:7.10.5', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-async-generator-functions-virtual-948461163a/0/cache/@babel-plugin-proposal-async-generator-functions-npm-7.10.5-fa0418ca83-d43c72c330.zip/node_modules/@babel/plugin-proposal-async-generator-functions/', + packageDependencies: [ + [ + '@babel/plugin-proposal-async-generator-functions', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-remap-async-to-generator', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-async-generators', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-class-properties', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.10.4-03607813f3-32cf34c077.zip/node_modules/@babel/plugin-proposal-class-properties/', + packageDependencies: [ + ['@babel/plugin-proposal-class-properties', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-class-properties-npm-7.8.3-7c6b03c6f9-09072d267c.zip/node_modules/@babel/plugin-proposal-class-properties/', + packageDependencies: [ + ['@babel/plugin-proposal-class-properties', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-8b6041c120/0/cache/@babel-plugin-proposal-class-properties-npm-7.10.4-03607813f3-32cf34c077.zip/node_modules/@babel/plugin-proposal-class-properties/', + packageDependencies: [ + [ + '@babel/plugin-proposal-class-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + [ + '@babel/helper-create-class-features-plugin', + 'virtual:8b6041c120a4d18b9efd12486ec841c4d372a14a6fb2d9f8f9a5011f36dc785f0896498682346d0f225f61f420a2cf75d9594fbcf5b10318a5afe27ea598c925#npm:7.10.5', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-class-properties-virtual-22fc93b2d7/0/cache/@babel-plugin-proposal-class-properties-npm-7.8.3-7c6b03c6f9-09072d267c.zip/node_modules/@babel/plugin-proposal-class-properties/', + packageDependencies: [ + [ + '@babel/plugin-proposal-class-properties', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-create-class-features-plugin', + 'virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-dynamic-import', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-dynamic-import-npm-7.10.4-62a4ddfd86-0ded8305a7.zip/node_modules/@babel/plugin-proposal-dynamic-import/', + packageDependencies: [ + ['@babel/plugin-proposal-dynamic-import', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-dynamic-import-virtual-f7fb9627bd/0/cache/@babel-plugin-proposal-dynamic-import-npm-7.10.4-62a4ddfd86-0ded8305a7.zip/node_modules/@babel/plugin-proposal-dynamic-import/', + packageDependencies: [ + [ + '@babel/plugin-proposal-dynamic-import', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-dynamic-import', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-json-strings', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-json-strings-npm-7.10.4-5f32c74b60-3403971661.zip/node_modules/@babel/plugin-proposal-json-strings/', + packageDependencies: [ + ['@babel/plugin-proposal-json-strings', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-json-strings-virtual-018d4dc48c/0/cache/@babel-plugin-proposal-json-strings-npm-7.10.4-5f32c74b60-3403971661.zip/node_modules/@babel/plugin-proposal-json-strings/', + packageDependencies: [ + [ + '@babel/plugin-proposal-json-strings', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-json-strings', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.10.4-dd7a5fdb9c-5a20d8bcbf.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.8.3-05e97adf4e-99b6683ae8.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'npm:7.8.3', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-463f98e5ea/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.8.3-05e97adf4e-99b6683ae8.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-nullish-coalescing-operator-virtual-dc1680fd23/0/cache/@babel-plugin-proposal-nullish-coalescing-operator-npm-7.10.4-dd7a5fdb9c-5a20d8bcbf.zip/node_modules/@babel/plugin-proposal-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-numeric-separator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.10.4-189a95ec65-344eff491f.zip/node_modules/@babel/plugin-proposal-numeric-separator/', + packageDependencies: [ + ['@babel/plugin-proposal-numeric-separator', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-numeric-separator-npm-7.8.3-b387b9f57a-8ab823d0d2.zip/node_modules/@babel/plugin-proposal-numeric-separator/', + packageDependencies: [ + ['@babel/plugin-proposal-numeric-separator', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-9db32571dd/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.8.3-b387b9f57a-8ab823d0d2.zip/node_modules/@babel/plugin-proposal-numeric-separator/', + packageDependencies: [ + [ + '@babel/plugin-proposal-numeric-separator', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-numeric-separator-virtual-d927fb7f92/0/cache/@babel-plugin-proposal-numeric-separator-npm-7.10.4-189a95ec65-344eff491f.zip/node_modules/@babel/plugin-proposal-numeric-separator/', + packageDependencies: [ + [ + '@babel/plugin-proposal-numeric-separator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-object-rest-spread', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-63e3d3a7ed-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/', + packageDependencies: [ + ['@babel/plugin-proposal-object-rest-spread', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.9.6', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-object-rest-spread-npm-7.9.6-0681350295-7e5b19c487.zip/node_modules/@babel/plugin-proposal-object-rest-spread/', + packageDependencies: [ + ['@babel/plugin-proposal-object-rest-spread', 'npm:7.9.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-f211864864/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-63e3d3a7ed-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/', + packageDependencies: [ + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3', + ], + [ + '@babel/plugin-transform-parameters', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-66bf226e28/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.9.6-0681350295-7e5b19c487.zip/node_modules/@babel/plugin-proposal-object-rest-spread/', + packageDependencies: [ + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3', + ], + [ + '@babel/plugin-transform-parameters', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-object-rest-spread-virtual-af88de6e6f/0/cache/@babel-plugin-proposal-object-rest-spread-npm-7.10.4-63e3d3a7ed-eb09aa3de7.zip/node_modules/@babel/plugin-proposal-object-rest-spread/', + packageDependencies: [ + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3', + ], + [ + '@babel/plugin-transform-parameters', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-optional-catch-binding', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.10.4-d1e446a91c-56a3a62131.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/', + packageDependencies: [ + [ + '@babel/plugin-proposal-optional-catch-binding', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-optional-catch-binding-virtual-f9c66a5760/0/cache/@babel-plugin-proposal-optional-catch-binding-npm-7.10.4-d1e446a91c-56a3a62131.zip/node_modules/@babel/plugin-proposal-optional-catch-binding/', + packageDependencies: [ + [ + '@babel/plugin-proposal-optional-catch-binding', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-optional-catch-binding', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-optional-chaining', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.10.4-9193130861-b086076509.zip/node_modules/@babel/plugin-proposal-optional-chaining/', + packageDependencies: [ + ['@babel/plugin-proposal-optional-chaining', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.9.0', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-optional-chaining-npm-7.9.0-476c4e3f29-88c2000597.zip/node_modules/@babel/plugin-proposal-optional-chaining/', + packageDependencies: [ + ['@babel/plugin-proposal-optional-chaining', 'npm:7.9.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-b940925a19/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.9.0-476c4e3f29-88c2000597.zip/node_modules/@babel/plugin-proposal-optional-chaining/', + packageDependencies: [ + [ + '@babel/plugin-proposal-optional-chaining', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-optional-chaining-virtual-0e07cd8f89/0/cache/@babel-plugin-proposal-optional-chaining-npm-7.10.4-9193130861-b086076509.zip/node_modules/@babel/plugin-proposal-optional-chaining/', + packageDependencies: [ + [ + '@babel/plugin-proposal-optional-chaining', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-proposal-unicode-property-regex', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-901dc02c10-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/', + packageDependencies: [ + [ + '@babel/plugin-proposal-unicode-property-regex', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-proposal-unicode-property-regex-virtual-bc23502dda/0/cache/@babel-plugin-proposal-unicode-property-regex-npm-7.10.4-901dc02c10-41e271cf08.zip/node_modules/@babel/plugin-proposal-unicode-property-regex/', + packageDependencies: [ + [ + '@babel/plugin-proposal-unicode-property-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-create-regexp-features-plugin', + 'virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-async-generators', + [ + [ + 'npm:7.8.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/', + packageDependencies: [ + ['@babel/plugin-syntax-async-generators', 'npm:7.8.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-85fb66da86/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/', + packageDependencies: [ + [ + '@babel/plugin-syntax-async-generators', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-async-generators-virtual-0753ecd339/0/cache/@babel-plugin-syntax-async-generators-npm-7.8.4-d10cf993c9-39685944ff.zip/node_modules/@babel/plugin-syntax-async-generators/', + packageDependencies: [ + [ + '@babel/plugin-syntax-async-generators', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-bigint', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-8c9b610377.zip/node_modules/@babel/plugin-syntax-bigint/', + packageDependencies: [ + ['@babel/plugin-syntax-bigint', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-bigint-virtual-79c9354118/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-8c9b610377.zip/node_modules/@babel/plugin-syntax-bigint/', + packageDependencies: [ + [ + '@babel/plugin-syntax-bigint', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-bigint-virtual-f07557aafe/0/cache/@babel-plugin-syntax-bigint-npm-7.8.3-b05d971e6c-8c9b610377.zip/node_modules/@babel/plugin-syntax-bigint/', + packageDependencies: [ + [ + '@babel/plugin-syntax-bigint', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-class-properties', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-cb3da4e874-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/', + packageDependencies: [ + ['@babel/plugin-syntax-class-properties', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-4b811ef255/0/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-cb3da4e874-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/', + packageDependencies: [ + [ + '@babel/plugin-syntax-class-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-class-properties-virtual-21f9e89d7c/0/cache/@babel-plugin-syntax-class-properties-npm-7.10.4-cb3da4e874-8d0c1a3f5a.zip/node_modules/@babel/plugin-syntax-class-properties/', + packageDependencies: [ + [ + '@babel/plugin-syntax-class-properties', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-dynamic-import', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/', + packageDependencies: [ + ['@babel/plugin-syntax-dynamic-import', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-dynamic-import-virtual-e69932ef01/0/cache/@babel-plugin-syntax-dynamic-import-npm-7.8.3-fb9ff5634a-134a6f37fe.zip/node_modules/@babel/plugin-syntax-dynamic-import/', + packageDependencies: [ + [ + '@babel/plugin-syntax-dynamic-import', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-flow', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-flow-npm-7.10.4-2649765dd3-96d32d0411.zip/node_modules/@babel/plugin-syntax-flow/', + packageDependencies: [ + ['@babel/plugin-syntax-flow', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-flow-virtual-633f258b7d/0/cache/@babel-plugin-syntax-flow-npm-7.10.4-2649765dd3-96d32d0411.zip/node_modules/@babel/plugin-syntax-flow/', + packageDependencies: [ + [ + '@babel/plugin-syntax-flow', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-import-meta', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-685ee8f0b5.zip/node_modules/@babel/plugin-syntax-import-meta/', + packageDependencies: [ + ['@babel/plugin-syntax-import-meta', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-import-meta-virtual-0fd4a25f2e/0/cache/@babel-plugin-syntax-import-meta-npm-7.10.4-4a0a0158bc-685ee8f0b5.zip/node_modules/@babel/plugin-syntax-import-meta/', + packageDependencies: [ + [ + '@babel/plugin-syntax-import-meta', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-json-strings', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/', + packageDependencies: [ + ['@babel/plugin-syntax-json-strings', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-5e99d738e2/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/', + packageDependencies: [ + [ + '@babel/plugin-syntax-json-strings', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-json-strings-virtual-9841c618fc/0/cache/@babel-plugin-syntax-json-strings-npm-7.8.3-6dc7848179-1a7dabf0a4.zip/node_modules/@babel/plugin-syntax-json-strings/', + packageDependencies: [ + [ + '@babel/plugin-syntax-json-strings', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-jsx', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-jsx-npm-7.10.4-87f1f900f7-7c9a5c56e5.zip/node_modules/@babel/plugin-syntax-jsx/', + packageDependencies: [ + ['@babel/plugin-syntax-jsx', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-20675feb5f/0/cache/@babel-plugin-syntax-jsx-npm-7.10.4-87f1f900f7-7c9a5c56e5.zip/node_modules/@babel/plugin-syntax-jsx/', + packageDependencies: [ + [ + '@babel/plugin-syntax-jsx', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-jsx-virtual-f2b53c6cb7/0/cache/@babel-plugin-syntax-jsx-npm-7.10.4-87f1f900f7-7c9a5c56e5.zip/node_modules/@babel/plugin-syntax-jsx/', + packageDependencies: [ + [ + '@babel/plugin-syntax-jsx', + 'virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-logical-assignment-operators', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-5b82f71770.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/', + packageDependencies: [ + [ + '@babel/plugin-syntax-logical-assignment-operators', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-logical-assignment-operators-virtual-fe0344a796/0/cache/@babel-plugin-syntax-logical-assignment-operators-npm-7.10.4-72ae00fdf6-5b82f71770.zip/node_modules/@babel/plugin-syntax-logical-assignment-operators/', + packageDependencies: [ + [ + '@babel/plugin-syntax-logical-assignment-operators', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'npm:7.8.3', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-b85b963cc7/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-nullish-coalescing-operator-virtual-1e9447b71a/0/cache/@babel-plugin-syntax-nullish-coalescing-operator-npm-7.8.3-8a723173b5-4ba0375375.zip/node_modules/@babel/plugin-syntax-nullish-coalescing-operator/', + packageDependencies: [ + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-numeric-separator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/', + packageDependencies: [ + ['@babel/plugin-syntax-numeric-separator', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-b2468d3707/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/', + packageDependencies: [ + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-numeric-separator-virtual-937d25bb23/0/cache/@babel-plugin-syntax-numeric-separator-npm-7.10.4-81444be605-47ae878293.zip/node_modules/@babel/plugin-syntax-numeric-separator/', + packageDependencies: [ + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-object-rest-spread', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/', + packageDependencies: [ + ['@babel/plugin-syntax-object-rest-spread', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-9cbb57ccd8/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/', + packageDependencies: [ + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-2d161add4b/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/', + packageDependencies: [ + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-object-rest-spread-virtual-b2cc8fbabb/0/cache/@babel-plugin-syntax-object-rest-spread-npm-7.8.3-60bd05b6ae-db5dfb39fa.zip/node_modules/@babel/plugin-syntax-object-rest-spread/', + packageDependencies: [ + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-optional-catch-binding', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/', + packageDependencies: [ + ['@babel/plugin-syntax-optional-catch-binding', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-c00c280444/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/', + packageDependencies: [ + [ + '@babel/plugin-syntax-optional-catch-binding', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-optional-catch-binding-virtual-d4d1501de9/0/cache/@babel-plugin-syntax-optional-catch-binding-npm-7.8.3-ce337427d8-f03d075266.zip/node_modules/@babel/plugin-syntax-optional-catch-binding/', + packageDependencies: [ + [ + '@babel/plugin-syntax-optional-catch-binding', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-optional-chaining', + [ + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/', + packageDependencies: [ + ['@babel/plugin-syntax-optional-chaining', 'npm:7.8.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-2a48d6ba36/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/', + packageDependencies: [ + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-optional-chaining-virtual-737f7a956d/0/cache/@babel-plugin-syntax-optional-chaining-npm-7.8.3-f3f3c79579-2a50685d02.zip/node_modules/@babel/plugin-syntax-optional-chaining/', + packageDependencies: [ + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-top-level-await', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e23708493c-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/', + packageDependencies: [ + ['@babel/plugin-syntax-top-level-await', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-8a2a2495ff/0/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e23708493c-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/', + packageDependencies: [ + [ + '@babel/plugin-syntax-top-level-await', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-top-level-await-virtual-a2a0c1ecb0/0/cache/@babel-plugin-syntax-top-level-await-npm-7.10.4-e23708493c-998d87fbd3.zip/node_modules/@babel/plugin-syntax-top-level-await/', + packageDependencies: [ + [ + '@babel/plugin-syntax-top-level-await', + 'virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-syntax-typescript', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-syntax-typescript-npm-7.10.4-538671574b-9511691ac0.zip/node_modules/@babel/plugin-syntax-typescript/', + packageDependencies: [ + ['@babel/plugin-syntax-typescript', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:623224215376bbf26ad6591e20351796bbc4ae8bf2649c6f5552485372412400178794299ab8c7a196c37dd726954696da257a1265decf2479d60c1823749e47#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-syntax-typescript-virtual-99737664e2/0/cache/@babel-plugin-syntax-typescript-npm-7.10.4-538671574b-9511691ac0.zip/node_modules/@babel/plugin-syntax-typescript/', + packageDependencies: [ + [ + '@babel/plugin-syntax-typescript', + 'virtual:623224215376bbf26ad6591e20351796bbc4ae8bf2649c6f5552485372412400178794299ab8c7a196c37dd726954696da257a1265decf2479d60c1823749e47#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-arrow-functions', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-f9a02d405f-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/', + packageDependencies: [ + ['@babel/plugin-transform-arrow-functions', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-2c3c3af01f/0/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-f9a02d405f-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/', + packageDependencies: [ + [ + '@babel/plugin-transform-arrow-functions', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-arrow-functions-virtual-cb85819537/0/cache/@babel-plugin-transform-arrow-functions-npm-7.10.4-f9a02d405f-ec5b1d6ec6.zip/node_modules/@babel/plugin-transform-arrow-functions/', + packageDependencies: [ + [ + '@babel/plugin-transform-arrow-functions', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-async-to-generator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-async-to-generator-npm-7.10.4-a65c63df25-c4cddae691.zip/node_modules/@babel/plugin-transform-async-to-generator/', + packageDependencies: [ + ['@babel/plugin-transform-async-to-generator', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-async-to-generator-virtual-471e9ce4be/0/cache/@babel-plugin-transform-async-to-generator-npm-7.10.4-a65c63df25-c4cddae691.zip/node_modules/@babel/plugin-transform-async-to-generator/', + packageDependencies: [ + [ + '@babel/plugin-transform-async-to-generator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-remap-async-to-generator', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-block-scoped-functions', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-59719e889e-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/', + packageDependencies: [ + [ + '@babel/plugin-transform-block-scoped-functions', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-629bbdadd6/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-59719e889e-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/', + packageDependencies: [ + [ + '@babel/plugin-transform-block-scoped-functions', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-block-scoped-functions-virtual-f463f3bb4f/0/cache/@babel-plugin-transform-block-scoped-functions-npm-7.10.4-59719e889e-d608f55104.zip/node_modules/@babel/plugin-transform-block-scoped-functions/', + packageDependencies: [ + [ + '@babel/plugin-transform-block-scoped-functions', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-block-scoping', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-57eb6c9e38-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/', + packageDependencies: [ + ['@babel/plugin-transform-block-scoping', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-9e66397e67/0/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-57eb6c9e38-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/', + packageDependencies: [ + [ + '@babel/plugin-transform-block-scoping', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-block-scoping-virtual-c4ae521496/0/cache/@babel-plugin-transform-block-scoping-npm-7.10.5-57eb6c9e38-f4df58ebe8.zip/node_modules/@babel/plugin-transform-block-scoping/', + packageDependencies: [ + [ + '@babel/plugin-transform-block-scoping', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-classes', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-classes-npm-7.10.4-d75651ff9a-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/', + packageDependencies: [ + ['@babel/plugin-transform-classes', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-classes-virtual-049914f2e4/0/cache/@babel-plugin-transform-classes-npm-7.10.4-d75651ff9a-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/', + packageDependencies: [ + [ + '@babel/plugin-transform-classes', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-define-map', 'npm:7.10.5'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-optimise-call-expression', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@types/babel__core', null], + ['globals', 'npm:11.12.0'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-classes-virtual-07571b7dac/0/cache/@babel-plugin-transform-classes-npm-7.10.4-d75651ff9a-c5ba85f736.zip/node_modules/@babel/plugin-transform-classes/', + packageDependencies: [ + [ + '@babel/plugin-transform-classes', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-define-map', 'npm:7.10.5'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-optimise-call-expression', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@types/babel__core', null], + ['globals', 'npm:11.12.0'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-computed-properties', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-54cce6ebca-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/', + packageDependencies: [ + ['@babel/plugin-transform-computed-properties', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-a5d157b5b7/0/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-54cce6ebca-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/', + packageDependencies: [ + [ + '@babel/plugin-transform-computed-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-computed-properties-virtual-67b25ca48b/0/cache/@babel-plugin-transform-computed-properties-npm-7.10.4-54cce6ebca-c69c53881d.zip/node_modules/@babel/plugin-transform-computed-properties/', + packageDependencies: [ + [ + '@babel/plugin-transform-computed-properties', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-destructuring', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-destructuring-npm-7.10.4-271caa461b-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/', + packageDependencies: [ + ['@babel/plugin-transform-destructuring', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-a446cca56a/0/cache/@babel-plugin-transform-destructuring-npm-7.10.4-271caa461b-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/', + packageDependencies: [ + [ + '@babel/plugin-transform-destructuring', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-destructuring-virtual-d173f164b1/0/cache/@babel-plugin-transform-destructuring-npm-7.10.4-271caa461b-2ea7148346.zip/node_modules/@babel/plugin-transform-destructuring/', + packageDependencies: [ + [ + '@babel/plugin-transform-destructuring', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-dotall-regex', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-ee83ecae9b-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/', + packageDependencies: [ + ['@babel/plugin-transform-dotall-regex', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-dotall-regex-virtual-f8e8e751ac/0/cache/@babel-plugin-transform-dotall-regex-npm-7.10.4-ee83ecae9b-284cce72df.zip/node_modules/@babel/plugin-transform-dotall-regex/', + packageDependencies: [ + [ + '@babel/plugin-transform-dotall-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-create-regexp-features-plugin', + 'virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-duplicate-keys', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-duplicate-keys-npm-7.10.4-af32ee9099-60897c7c2f.zip/node_modules/@babel/plugin-transform-duplicate-keys/', + packageDependencies: [ + ['@babel/plugin-transform-duplicate-keys', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-duplicate-keys-virtual-da0d8db33f/0/cache/@babel-plugin-transform-duplicate-keys-npm-7.10.4-af32ee9099-60897c7c2f.zip/node_modules/@babel/plugin-transform-duplicate-keys/', + packageDependencies: [ + [ + '@babel/plugin-transform-duplicate-keys', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-exponentiation-operator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-exponentiation-operator-npm-7.10.4-8c454e155f-fb086b4482.zip/node_modules/@babel/plugin-transform-exponentiation-operator/', + packageDependencies: [ + [ + '@babel/plugin-transform-exponentiation-operator', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-exponentiation-operator-virtual-3bb181860f/0/cache/@babel-plugin-transform-exponentiation-operator-npm-7.10.4-8c454e155f-fb086b4482.zip/node_modules/@babel/plugin-transform-exponentiation-operator/', + packageDependencies: [ + [ + '@babel/plugin-transform-exponentiation-operator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-builder-binary-assignment-operator-visitor', + 'npm:7.10.4', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-flow-strip-types', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-flow-strip-types-npm-7.10.4-2766f1172d-704d4c8a80.zip/node_modules/@babel/plugin-transform-flow-strip-types/', + packageDependencies: [ + ['@babel/plugin-transform-flow-strip-types', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-flow-strip-types-virtual-ed5ad3ab26/0/cache/@babel-plugin-transform-flow-strip-types-npm-7.10.4-2766f1172d-704d4c8a80.zip/node_modules/@babel/plugin-transform-flow-strip-types/', + packageDependencies: [ + [ + '@babel/plugin-transform-flow-strip-types', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-flow', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-for-of', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-for-of-npm-7.10.4-bab0cb22ae-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/', + packageDependencies: [ + ['@babel/plugin-transform-for-of', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-3cd3d2203f/0/cache/@babel-plugin-transform-for-of-npm-7.10.4-bab0cb22ae-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/', + packageDependencies: [ + [ + '@babel/plugin-transform-for-of', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-for-of-virtual-60dda02b52/0/cache/@babel-plugin-transform-for-of-npm-7.10.4-bab0cb22ae-86c02bbf98.zip/node_modules/@babel/plugin-transform-for-of/', + packageDependencies: [ + [ + '@babel/plugin-transform-for-of', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-function-name', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-function-name-npm-7.10.4-ae534cd3c4-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/', + packageDependencies: [ + ['@babel/plugin-transform-function-name', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-e633a1b8c0/0/cache/@babel-plugin-transform-function-name-npm-7.10.4-ae534cd3c4-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/', + packageDependencies: [ + [ + '@babel/plugin-transform-function-name', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-function-name-virtual-19cbf96d8b/0/cache/@babel-plugin-transform-function-name-npm-7.10.4-ae534cd3c4-64d8bf2de2.zip/node_modules/@babel/plugin-transform-function-name/', + packageDependencies: [ + [ + '@babel/plugin-transform-function-name', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-literals', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-literals-npm-7.10.4-06720c861e-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/', + packageDependencies: [ + ['@babel/plugin-transform-literals', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-literals-virtual-482ad5e3d6/0/cache/@babel-plugin-transform-literals-npm-7.10.4-06720c861e-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-literals-virtual-b7016fa8a0/0/cache/@babel-plugin-transform-literals-npm-7.10.4-06720c861e-53cd3f4367.zip/node_modules/@babel/plugin-transform-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-member-expression-literals', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-dd7b9e700e-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-member-expression-literals', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-3eeb5bad25/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-dd7b9e700e-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-member-expression-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-member-expression-literals-virtual-ae0b54a81c/0/cache/@babel-plugin-transform-member-expression-literals-npm-7.10.4-dd7b9e700e-e6a1844cb5.zip/node_modules/@babel/plugin-transform-member-expression-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-member-expression-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-modules-amd', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-modules-amd-npm-7.10.5-ee609b26aa-6d2b80f3ca.zip/node_modules/@babel/plugin-transform-modules-amd/', + packageDependencies: [ + ['@babel/plugin-transform-modules-amd', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-modules-amd-virtual-c94c364e9a/0/cache/@babel-plugin-transform-modules-amd-npm-7.10.5-ee609b26aa-6d2b80f3ca.zip/node_modules/@babel/plugin-transform-modules-amd/', + packageDependencies: [ + [ + '@babel/plugin-transform-modules-amd', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ['babel-plugin-dynamic-import-node', 'npm:2.3.3'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-modules-commonjs', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-8ee8f30025-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/', + packageDependencies: [ + ['@babel/plugin-transform-modules-commonjs', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.9.6', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-modules-commonjs-npm-7.9.6-7344f9e9a3-54da42be56.zip/node_modules/@babel/plugin-transform-modules-commonjs/', + packageDependencies: [ + ['@babel/plugin-transform-modules-commonjs', 'npm:7.9.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-0f69a60767/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-8ee8f30025-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/', + packageDependencies: [ + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-simple-access', 'npm:7.10.4'], + ['@types/babel__core', null], + ['babel-plugin-dynamic-import-node', 'npm:2.3.3'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-6e93f2d130/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.9.6-7344f9e9a3-54da42be56.zip/node_modules/@babel/plugin-transform-modules-commonjs/', + packageDependencies: [ + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-simple-access', 'npm:7.10.4'], + ['@types/babel__core', null], + ['babel-plugin-dynamic-import-node', 'npm:2.3.3'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-modules-commonjs-virtual-ace5a04381/0/cache/@babel-plugin-transform-modules-commonjs-npm-7.10.4-8ee8f30025-4217686508.zip/node_modules/@babel/plugin-transform-modules-commonjs/', + packageDependencies: [ + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-simple-access', 'npm:7.10.4'], + ['@types/babel__core', null], + ['babel-plugin-dynamic-import-node', 'npm:2.3.3'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-modules-systemjs', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-modules-systemjs-npm-7.10.5-3e84a514bf-eb08d7c7e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/', + packageDependencies: [ + ['@babel/plugin-transform-modules-systemjs', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-modules-systemjs-virtual-cf8e4aba14/0/cache/@babel-plugin-transform-modules-systemjs-npm-7.10.5-3e84a514bf-eb08d7c7e5.zip/node_modules/@babel/plugin-transform-modules-systemjs/', + packageDependencies: [ + [ + '@babel/plugin-transform-modules-systemjs', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-hoist-variables', 'npm:7.10.4'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ['babel-plugin-dynamic-import-node', 'npm:2.3.3'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-modules-umd', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-modules-umd-npm-7.10.4-642c66c043-b0c3f47b9e.zip/node_modules/@babel/plugin-transform-modules-umd/', + packageDependencies: [ + ['@babel/plugin-transform-modules-umd', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-modules-umd-virtual-1fa48ff0e6/0/cache/@babel-plugin-transform-modules-umd-npm-7.10.4-642c66c043-b0c3f47b9e.zip/node_modules/@babel/plugin-transform-modules-umd/', + packageDependencies: [ + [ + '@babel/plugin-transform-modules-umd', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-module-transforms', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-named-capturing-groups-regex', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.10.4-b34a270ea0-6b868806fd.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/', + packageDependencies: [ + [ + '@babel/plugin-transform-named-capturing-groups-regex', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-named-capturing-groups-regex-virtual-0b2ce64608/0/cache/@babel-plugin-transform-named-capturing-groups-regex-npm-7.10.4-b34a270ea0-6b868806fd.zip/node_modules/@babel/plugin-transform-named-capturing-groups-regex/', + packageDependencies: [ + [ + '@babel/plugin-transform-named-capturing-groups-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-create-regexp-features-plugin', + 'virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-new-target', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-new-target-npm-7.10.4-cf31f63f69-a4742428d2.zip/node_modules/@babel/plugin-transform-new-target/', + packageDependencies: [ + ['@babel/plugin-transform-new-target', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-new-target-virtual-2360ddb123/0/cache/@babel-plugin-transform-new-target-npm-7.10.4-cf31f63f69-a4742428d2.zip/node_modules/@babel/plugin-transform-new-target/', + packageDependencies: [ + [ + '@babel/plugin-transform-new-target', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-object-super', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-object-super-npm-7.10.4-58b77a18e2-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/', + packageDependencies: [ + ['@babel/plugin-transform-object-super', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-8d59aaf057/0/cache/@babel-plugin-transform-object-super-npm-7.10.4-58b77a18e2-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/', + packageDependencies: [ + [ + '@babel/plugin-transform-object-super', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-object-super-virtual-92c9d5b9f3/0/cache/@babel-plugin-transform-object-super-npm-7.10.4-58b77a18e2-30485dd88b.zip/node_modules/@babel/plugin-transform-object-super/', + packageDependencies: [ + [ + '@babel/plugin-transform-object-super', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-replace-supers', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-parameters', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-parameters-npm-7.10.5-6bb4f9a7bc-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/', + packageDependencies: [ + ['@babel/plugin-transform-parameters', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-a01c537737/0/cache/@babel-plugin-transform-parameters-npm-7.10.5-6bb4f9a7bc-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/', + packageDependencies: [ + [ + '@babel/plugin-transform-parameters', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-get-function-arity', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-parameters-virtual-1f6dccd824/0/cache/@babel-plugin-transform-parameters-npm-7.10.5-6bb4f9a7bc-f5da5726a2.zip/node_modules/@babel/plugin-transform-parameters/', + packageDependencies: [ + [ + '@babel/plugin-transform-parameters', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-get-function-arity', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-property-literals', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-property-literals-npm-7.10.4-2e0a4d5fb9-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/', + packageDependencies: [ + ['@babel/plugin-transform-property-literals', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-db3fc61c6d/0/cache/@babel-plugin-transform-property-literals-npm-7.10.4-2e0a4d5fb9-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-property-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-property-literals-virtual-9b4d0b1b17/0/cache/@babel-plugin-transform-property-literals-npm-7.10.4-2e0a4d5fb9-06ced62af4.zip/node_modules/@babel/plugin-transform-property-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-property-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-react-display-name', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-react-display-name-npm-7.10.4-57638c56b7-7a224e1163.zip/node_modules/@babel/plugin-transform-react-display-name/', + packageDependencies: [ + ['@babel/plugin-transform-react-display-name', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-7661d57007/0/cache/@babel-plugin-transform-react-display-name-npm-7.10.4-57638c56b7-7a224e1163.zip/node_modules/@babel/plugin-transform-react-display-name/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-display-name', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-display-name-virtual-697c513230/0/cache/@babel-plugin-transform-react-display-name-npm-7.10.4-57638c56b7-7a224e1163.zip/node_modules/@babel/plugin-transform-react-display-name/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-display-name', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-react-jsx', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-react-jsx-npm-7.10.4-1a0658d38c-0fb7d136c8.zip/node_modules/@babel/plugin-transform-react-jsx/', + packageDependencies: [ + ['@babel/plugin-transform-react-jsx', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-2fa8a545a8/0/cache/@babel-plugin-transform-react-jsx-npm-7.10.4-1a0658d38c-0fb7d136c8.zip/node_modules/@babel/plugin-transform-react-jsx/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-jsx', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-builder-react-jsx', 'npm:7.10.4'], + [ + '@babel/helper-builder-react-jsx-experimental', + 'npm:7.10.5', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-jsx', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-jsx-virtual-ec4ee2cbf5/0/cache/@babel-plugin-transform-react-jsx-npm-7.10.4-1a0658d38c-0fb7d136c8.zip/node_modules/@babel/plugin-transform-react-jsx/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-jsx', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-builder-react-jsx', 'npm:7.10.4'], + [ + '@babel/helper-builder-react-jsx-experimental', + 'npm:7.10.5', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-jsx', + 'virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-react-jsx-development', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-react-jsx-development-npm-7.10.4-0633aaad1d-ca014ab370.zip/node_modules/@babel/plugin-transform-react-jsx-development/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-jsx-development', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-jsx-development-virtual-5aac06bbe3/0/cache/@babel-plugin-transform-react-jsx-development-npm-7.10.4-0633aaad1d-ca014ab370.zip/node_modules/@babel/plugin-transform-react-jsx-development/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-jsx-development', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-builder-react-jsx-experimental', + 'npm:7.10.5', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-jsx', + 'virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-react-jsx-self', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.10.4-3215726374-5447767b73.zip/node_modules/@babel/plugin-transform-react-jsx-self/', + packageDependencies: [ + ['@babel/plugin-transform-react-jsx-self', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-jsx-self-virtual-c0078c75ef/0/cache/@babel-plugin-transform-react-jsx-self-npm-7.10.4-3215726374-5447767b73.zip/node_modules/@babel/plugin-transform-react-jsx-self/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-jsx-self', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-jsx', + 'virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-react-jsx-source', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.10.5-bde95cec6b-9dc5d9bad0.zip/node_modules/@babel/plugin-transform-react-jsx-source/', + packageDependencies: [ + ['@babel/plugin-transform-react-jsx-source', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-react-jsx-source-virtual-b6f550a18a/0/cache/@babel-plugin-transform-react-jsx-source-npm-7.10.5-bde95cec6b-9dc5d9bad0.zip/node_modules/@babel/plugin-transform-react-jsx-source/', + packageDependencies: [ + [ + '@babel/plugin-transform-react-jsx-source', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-jsx', + 'virtual:ec4ee2cbf5bbb13f9b744ef22ad13c4ecff979fed95dc9cd3fc3eb7a33f70281077501c2942ff0038cd1636c4716eafb9338e0df12b2a64ea78b226f776b18fd#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-regenerator', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-regenerator-npm-7.10.4-7f18fbe1a1-932b35c5ed.zip/node_modules/@babel/plugin-transform-regenerator/', + packageDependencies: [ + ['@babel/plugin-transform-regenerator', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-regenerator-virtual-e6bb38bb7a/0/cache/@babel-plugin-transform-regenerator-npm-7.10.4-7f18fbe1a1-932b35c5ed.zip/node_modules/@babel/plugin-transform-regenerator/', + packageDependencies: [ + [ + '@babel/plugin-transform-regenerator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@types/babel__core', null], + ['regenerator-transform', 'npm:0.14.5'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-reserved-words', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-reserved-words-npm-7.10.4-e14d8e8460-457433e66e.zip/node_modules/@babel/plugin-transform-reserved-words/', + packageDependencies: [ + ['@babel/plugin-transform-reserved-words', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-reserved-words-virtual-350458acd3/0/cache/@babel-plugin-transform-reserved-words-npm-7.10.4-e14d8e8460-457433e66e.zip/node_modules/@babel/plugin-transform-reserved-words/', + packageDependencies: [ + [ + '@babel/plugin-transform-reserved-words', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-runtime', + [ + [ + 'npm:7.9.6', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-runtime-npm-7.9.6-1c0318cd8d-3657c437c8.zip/node_modules/@babel/plugin-transform-runtime/', + packageDependencies: [ + ['@babel/plugin-transform-runtime', 'npm:7.9.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-runtime-virtual-78d7e8409e/0/cache/@babel-plugin-transform-runtime-npm-7.9.6-1c0318cd8d-3657c437c8.zip/node_modules/@babel/plugin-transform-runtime/', + packageDependencies: [ + [ + '@babel/plugin-transform-runtime', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ['semver', 'npm:5.7.1'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-shorthand-properties', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-2e051c68b9-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/', + packageDependencies: [ + [ + '@babel/plugin-transform-shorthand-properties', + 'npm:7.10.4', + ], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-81af0f40fc/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-2e051c68b9-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/', + packageDependencies: [ + [ + '@babel/plugin-transform-shorthand-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-shorthand-properties-virtual-b3aab0dba5/0/cache/@babel-plugin-transform-shorthand-properties-npm-7.10.4-2e051c68b9-91ba5aa099.zip/node_modules/@babel/plugin-transform-shorthand-properties/', + packageDependencies: [ + [ + '@babel/plugin-transform-shorthand-properties', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-spread', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-spread-npm-7.10.4-d8b2e3f660-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/', + packageDependencies: [ + ['@babel/plugin-transform-spread', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-spread-virtual-bb4bceca09/0/cache/@babel-plugin-transform-spread-npm-7.10.4-d8b2e3f660-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/', + packageDependencies: [ + [ + '@babel/plugin-transform-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-spread-virtual-f404a18df5/0/cache/@babel-plugin-transform-spread-npm-7.10.4-d8b2e3f660-67ac6ffa64.zip/node_modules/@babel/plugin-transform-spread/', + packageDependencies: [ + [ + '@babel/plugin-transform-spread', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-sticky-regex', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-sticky-regex-npm-7.10.4-7690d92b96-56eed04e48.zip/node_modules/@babel/plugin-transform-sticky-regex/', + packageDependencies: [ + ['@babel/plugin-transform-sticky-regex', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-sticky-regex-virtual-2b013b6ceb/0/cache/@babel-plugin-transform-sticky-regex-npm-7.10.4-7690d92b96-56eed04e48.zip/node_modules/@babel/plugin-transform-sticky-regex/', + packageDependencies: [ + [ + '@babel/plugin-transform-sticky-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@babel/helper-regex', 'npm:7.10.5'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-template-literals', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-template-literals-npm-7.10.5-b943e4cd9e-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/', + packageDependencies: [ + ['@babel/plugin-transform-template-literals', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-65d364b7f0/0/cache/@babel-plugin-transform-template-literals-npm-7.10.5-b943e4cd9e-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-template-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-template-literals-virtual-c04eb8dc57/0/cache/@babel-plugin-transform-template-literals-npm-7.10.5-b943e4cd9e-bd5e87e407.zip/node_modules/@babel/plugin-transform-template-literals/', + packageDependencies: [ + [ + '@babel/plugin-transform-template-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-typeof-symbol', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-typeof-symbol-npm-7.10.4-bb7b796978-13f3e75372.zip/node_modules/@babel/plugin-transform-typeof-symbol/', + packageDependencies: [ + ['@babel/plugin-transform-typeof-symbol', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-typeof-symbol-virtual-ceaa7827f1/0/cache/@babel-plugin-transform-typeof-symbol-npm-7.10.4-bb7b796978-13f3e75372.zip/node_modules/@babel/plugin-transform-typeof-symbol/', + packageDependencies: [ + [ + '@babel/plugin-transform-typeof-symbol', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-typescript', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-typescript-npm-7.10.5-10568da73a-fed2784756.zip/node_modules/@babel/plugin-transform-typescript/', + packageDependencies: [ + ['@babel/plugin-transform-typescript', 'npm:7.10.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:6f043737060e7a600eea2de37c5838fee59824564eb3b688ab0a46664bbd618516d00daccfdd2c3f3920168b9c176d204d9d1a1fdc69d8fb59052208a09f0cfc#npm:7.10.5', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-typescript-virtual-6232242153/0/cache/@babel-plugin-transform-typescript-npm-7.10.5-10568da73a-fed2784756.zip/node_modules/@babel/plugin-transform-typescript/', + packageDependencies: [ + [ + '@babel/plugin-transform-typescript', + 'virtual:6f043737060e7a600eea2de37c5838fee59824564eb3b688ab0a46664bbd618516d00daccfdd2c3f3920168b9c176d204d9d1a1fdc69d8fb59052208a09f0cfc#npm:7.10.5', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-create-class-features-plugin', + 'virtual:22fc93b2d70b3ff0c89dfe15a0047c11c7a4fc87e6127351695e5fea982513bad0d564503df3f45344fa69fbb68da27240a6f45da64c4fb5a95fa4aaf25fd1b7#npm:7.10.5', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-syntax-typescript', + 'virtual:623224215376bbf26ad6591e20351796bbc4ae8bf2649c6f5552485372412400178794299ab8c7a196c37dd726954696da257a1265decf2479d60c1823749e47#npm:7.10.4', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/plugin-transform-unicode-regex', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-plugin-transform-unicode-regex-npm-7.10.4-ef2e9c1e21-2e0762e7fa.zip/node_modules/@babel/plugin-transform-unicode-regex/', + packageDependencies: [ + ['@babel/plugin-transform-unicode-regex', 'npm:7.10.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + { + packageLocation: + './.yarn/$$virtual/@babel-plugin-transform-unicode-regex-virtual-ed19817c5c/0/cache/@babel-plugin-transform-unicode-regex-npm-7.10.4-ef2e9c1e21-2e0762e7fa.zip/node_modules/@babel/plugin-transform-unicode-regex/', + packageDependencies: [ + [ + '@babel/plugin-transform-unicode-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-create-regexp-features-plugin', + 'virtual:bc23502dda1d1fcd5984bb0823a39740517ba19ad228a435d50ecde5766c93358e34907ff9a22aee7211c18e8eb9c0da3493b8fb6a3b07bfcfb38a48840b0c66#npm:7.10.4', + ], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/polyfill', + [ + [ + 'npm:7.12.1', + { + packageLocation: + './.yarn/cache/@babel-polyfill-npm-7.12.1-a393b8d870-299db4d426.zip/node_modules/@babel/polyfill/', + packageDependencies: [ + ['@babel/polyfill', 'npm:7.12.1'], + ['core-js', 'npm:2.6.11'], + ['regenerator-runtime', 'npm:0.13.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/preset-env', + [ + [ + 'npm:7.9.6', + { + packageLocation: + './.yarn/cache/@babel-preset-env-npm-7.9.6-60acaa71e1-7a2e219878.zip/node_modules/@babel/preset-env/', + packageDependencies: [['@babel/preset-env', 'npm:7.9.6']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + { + packageLocation: + './.yarn/$$virtual/@babel-preset-env-virtual-59abe550ee/0/cache/@babel-preset-env-npm-7.9.6-60acaa71e1-7a2e219878.zip/node_modules/@babel/preset-env/', + packageDependencies: [ + [ + '@babel/preset-env', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + ['@babel/compat-data', 'npm:7.10.5'], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/helper-compilation-targets', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-proposal-async-generator-functions', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + [ + '@babel/plugin-proposal-dynamic-import', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-json-strings', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-numeric-separator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-optional-catch-binding', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-optional-chaining', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-unicode-property-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-async-generators', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.4', + ], + [ + '@babel/plugin-syntax-dynamic-import', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-json-strings', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:463f98e5ea84ce67647e34966dd447f1e8413bfdf3e46684f6ef7610ba609c7d21d4842361af2455f2de6824ed84d3447588f88fbbd1492b56454159317a44e3#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:9db32571dd8975df8e6986cd96f756d1fd0f6fddac03933e8b304df5d39f0797b9cb8815675515f84b88c696fa8c3f9646f642ac0d8bd4819f46172dfb3fa946#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-optional-catch-binding', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:b940925a19b05f913d7287423a7ad9499036d37517872870b0b85167a1726a1df2216ca1552b1ebb7af5fa59f648329a693470d7286fab3ad960c71d486230c1#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-top-level-await', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-arrow-functions', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-async-to-generator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-block-scoped-functions', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-block-scoping', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + [ + '@babel/plugin-transform-classes', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-computed-properties', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-destructuring', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-dotall-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-duplicate-keys', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-exponentiation-operator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-for-of', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-function-name', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-member-expression-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-modules-amd', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-modules-systemjs', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + [ + '@babel/plugin-transform-modules-umd', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-named-capturing-groups-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-new-target', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-object-super', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-parameters', + 'virtual:66bf226e28eb858a21d09ab4adf50f9d4dfa8db037bf91622d273668d505979f5ba26a5274880f89e7af95102aac2f1fcf273b0fcef82be0eb92c8279af6e93c#npm:7.10.5', + ], + [ + '@babel/plugin-transform-property-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-regenerator', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-reserved-words', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-shorthand-properties', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-spread', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-sticky-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-template-literals', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.5', + ], + [ + '@babel/plugin-transform-typeof-symbol', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-unicode-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/preset-modules', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3', + ], + ['@babel/types', 'npm:7.10.5'], + ['@types/babel__core', null], + ['browserslist', 'npm:4.13.0'], + ['core-js-compat', 'npm:3.6.5'], + ['invariant', 'npm:2.2.4'], + ['levenary', 'npm:1.1.1'], + ['semver', 'npm:5.7.1'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/preset-modules', + [ + [ + 'npm:0.1.3', + { + packageLocation: + './.yarn/cache/@babel-preset-modules-npm-0.1.3-d63a86113f-341c13de18.zip/node_modules/@babel/preset-modules/', + packageDependencies: [['@babel/preset-modules', 'npm:0.1.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3', + { + packageLocation: + './.yarn/$$virtual/@babel-preset-modules-virtual-f7052f90a6/0/cache/@babel-preset-modules-npm-0.1.3-d63a86113f-341c13de18.zip/node_modules/@babel/preset-modules/', + packageDependencies: [ + [ + '@babel/preset-modules', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-proposal-unicode-property-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-dotall-regex', + 'virtual:59abe550eed3751757691e9c2d5ca2ff1073975d871e7a319ba5c075189193b7c759ca342ecdab7ddd4d35ac6c090b2c7a5f408ea177c175973701819a27af1e#npm:7.10.4', + ], + ['@babel/types', 'npm:7.10.5'], + ['@types/babel__core', null], + ['esutils', 'npm:2.0.3'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/preset-react', + [ + [ + 'npm:7.9.4', + { + packageLocation: + './.yarn/cache/@babel-preset-react-npm-7.9.4-ca865f2a55-1c5bc15363.zip/node_modules/@babel/preset-react/', + packageDependencies: [['@babel/preset-react', 'npm:7.9.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4', + { + packageLocation: + './.yarn/$$virtual/@babel-preset-react-virtual-527926d043/0/cache/@babel-preset-react-npm-7.9.4-ca865f2a55-1c5bc15363.zip/node_modules/@babel/preset-react/', + packageDependencies: [ + [ + '@babel/preset-react', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-transform-react-display-name', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + [ + '@babel/plugin-transform-react-jsx', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + [ + '@babel/plugin-transform-react-jsx-development', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + [ + '@babel/plugin-transform-react-jsx-self', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.4', + ], + [ + '@babel/plugin-transform-react-jsx-source', + 'virtual:527926d043e4c04ce95d575b4d8d0dd5d21f838d91600a5082395c907f5b093791b37047e5576deac7b1d74cc4012c803469b00970866721c6e0443b47108c21#npm:7.10.5', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/preset-typescript', + [ + [ + 'npm:7.9.0', + { + packageLocation: + './.yarn/cache/@babel-preset-typescript-npm-7.9.0-5fa2781fcb-d83ac83919.zip/node_modules/@babel/preset-typescript/', + packageDependencies: [ + ['@babel/preset-typescript', 'npm:7.9.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + { + packageLocation: + './.yarn/$$virtual/@babel-preset-typescript-virtual-6f04373706/0/cache/@babel-preset-typescript-npm-7.9.0-5fa2781fcb-d83ac83919.zip/node_modules/@babel/preset-typescript/', + packageDependencies: [ + [ + '@babel/preset-typescript', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + ], + ['@babel/core', 'npm:7.7.7'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + [ + '@babel/plugin-transform-typescript', + 'virtual:6f043737060e7a600eea2de37c5838fee59824564eb3b688ab0a46664bbd618516d00daccfdd2c3f3920168b9c176d204d9d1a1fdc69d8fb59052208a09f0cfc#npm:7.10.5', + ], + ['@types/babel__core', null], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/runtime', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-runtime-npm-7.10.5-d60a3721cd-222bc7c75b.zip/node_modules/@babel/runtime/', + packageDependencies: [ + ['@babel/runtime', 'npm:7.10.5'], + ['regenerator-runtime', 'npm:0.13.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.2', + { + packageLocation: + './.yarn/cache/@babel-runtime-npm-7.11.2-f2cfabd212-2f127ad60a.zip/node_modules/@babel/runtime/', + packageDependencies: [ + ['@babel/runtime', 'npm:7.11.2'], + ['regenerator-runtime', 'npm:0.13.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.12.5', + { + packageLocation: + './.yarn/cache/@babel-runtime-npm-7.12.5-b3edb8ee8e-423fb00793.zip/node_modules/@babel/runtime/', + packageDependencies: [ + ['@babel/runtime', 'npm:7.12.5'], + ['regenerator-runtime', 'npm:0.13.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.9.6', + { + packageLocation: + './.yarn/cache/@babel-runtime-npm-7.9.6-93b1a0d418-ff94d6861d.zip/node_modules/@babel/runtime/', + packageDependencies: [ + ['@babel/runtime', 'npm:7.9.6'], + ['regenerator-runtime', 'npm:0.13.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/runtime-corejs2', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-runtime-corejs2-npm-7.10.5-3cdfa78ec5-b9f06973c7.zip/node_modules/@babel/runtime-corejs2/', + packageDependencies: [ + ['@babel/runtime-corejs2', 'npm:7.10.5'], + ['core-js', 'npm:2.6.11'], + ['regenerator-runtime', 'npm:0.13.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/template', + [ + [ + 'npm:7.10.4', + { + packageLocation: + './.yarn/cache/@babel-template-npm-7.10.4-521586243b-23a5c4f7ab.zip/node_modules/@babel/template/', + packageDependencies: [ + ['@babel/template', 'npm:7.10.4'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/traverse', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-traverse-npm-7.10.5-057ce0190c-4292255a99.zip/node_modules/@babel/traverse/', + packageDependencies: [ + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@babel/generator', 'npm:7.10.5'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.10.4'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['globals', 'npm:11.12.0'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.5', + { + packageLocation: + './.yarn/cache/@babel-traverse-npm-7.11.5-2395052be8-206010caee.zip/node_modules/@babel/traverse/', + packageDependencies: [ + ['@babel/traverse', 'npm:7.11.5'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@babel/generator', 'npm:7.11.6'], + ['@babel/helper-function-name', 'npm:7.10.4'], + ['@babel/helper-split-export-declaration', 'npm:7.11.0'], + ['@babel/parser', 'npm:7.11.5'], + ['@babel/types', 'npm:7.11.5'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['globals', 'npm:11.12.0'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@babel/types', + [ + [ + 'npm:7.10.5', + { + packageLocation: + './.yarn/cache/@babel-types-npm-7.10.5-41ba4293dd-00bdeb6f46.zip/node_modules/@babel/types/', + packageDependencies: [ + ['@babel/types', 'npm:7.10.5'], + ['@babel/helper-validator-identifier', 'npm:7.10.4'], + ['lodash', 'npm:4.17.19'], + ['to-fast-properties', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.5', + { + packageLocation: + './.yarn/cache/@babel-types-npm-7.11.5-d0fc2e4f15-a1515b3ed1.zip/node_modules/@babel/types/', + packageDependencies: [ + ['@babel/types', 'npm:7.11.5'], + ['@babel/helper-validator-identifier', 'npm:7.10.4'], + ['lodash', 'npm:4.17.19'], + ['to-fast-properties', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.13.0', + { + packageLocation: + './.yarn/cache/@babel-types-npm-7.13.0-737e1b9971-a47357647a.zip/node_modules/@babel/types/', + packageDependencies: [ + ['@babel/types', 'npm:7.13.0'], + ['@babel/helper-validator-identifier', 'npm:7.12.11'], + ['lodash', 'npm:4.17.19'], + ['to-fast-properties', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.8.3', + { + packageLocation: + './.yarn/cache/@babel-types-npm-7.8.3-00702cfcbf-d3a4f0b6bc.zip/node_modules/@babel/types/', + packageDependencies: [ + ['@babel/types', 'npm:7.8.3'], + ['esutils', 'npm:2.0.3'], + ['lodash', 'npm:4.17.19'], + ['to-fast-properties', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.9.6', + { + packageLocation: + './.yarn/cache/@babel-types-npm-7.9.6-c2ad0830d8-e67bd07450.zip/node_modules/@babel/types/', + packageDependencies: [ + ['@babel/types', 'npm:7.9.6'], + ['@babel/helper-validator-identifier', 'npm:7.10.4'], + ['lodash', 'npm:4.17.19'], + ['to-fast-properties', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@bcoe/v8-coverage', + [ + [ + 'npm:0.2.3', + { + packageLocation: + './.yarn/cache/@bcoe-v8-coverage-npm-0.2.3-9e27b3c57e-4fc6fb784b.zip/node_modules/@bcoe/v8-coverage/', + packageDependencies: [['@bcoe/v8-coverage', 'npm:0.2.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@cnakazawa/watch', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/@cnakazawa-watch-npm-1.0.4-ee43493884-7909f89bbe.zip/node_modules/@cnakazawa/watch/', + packageDependencies: [ + ['@cnakazawa/watch', 'npm:1.0.4'], + ['exec-sh', 'npm:0.3.4'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@emotion/is-prop-valid', + [ + [ + 'npm:0.8.8', + { + packageLocation: + './.yarn/cache/@emotion-is-prop-valid-npm-0.8.8-261a0f2426-4a6993c4e6.zip/node_modules/@emotion/is-prop-valid/', + packageDependencies: [ + ['@emotion/is-prop-valid', 'npm:0.8.8'], + ['@emotion/memoize', 'npm:0.7.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@emotion/memoize', + [ + [ + 'npm:0.7.4', + { + packageLocation: + './.yarn/cache/@emotion-memoize-npm-0.7.4-5648cf11b8-874123a94c.zip/node_modules/@emotion/memoize/', + packageDependencies: [['@emotion/memoize', 'npm:0.7.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@emotion/stylis', + [ + [ + 'npm:0.8.5', + { + packageLocation: + './.yarn/cache/@emotion-stylis-npm-0.8.5-3e9db8959f-bb43a77f78.zip/node_modules/@emotion/stylis/', + packageDependencies: [['@emotion/stylis', 'npm:0.8.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@emotion/unitless', + [ + [ + 'npm:0.7.5', + { + packageLocation: + './.yarn/cache/@emotion-unitless-npm-0.7.5-14e1171640-0be366ef09.zip/node_modules/@emotion/unitless/', + packageDependencies: [['@emotion/unitless', 'npm:0.7.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@fullhuman/postcss-purgecss', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/@fullhuman-postcss-purgecss-npm-2.3.0-c864899fae-18c6b2896a.zip/node_modules/@fullhuman/postcss-purgecss/', + packageDependencies: [ + ['@fullhuman/postcss-purgecss', 'npm:2.3.0'], + ['postcss', 'npm:7.0.32'], + ['purgecss', 'npm:2.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-codegen/core', + [ + [ + 'npm:1.17.6', + { + packageLocation: + './.yarn/cache/@graphql-codegen-core-npm-1.17.6-ab96e1cc8a-f5dff42d12.zip/node_modules/@graphql-codegen/core/', + packageDependencies: [['@graphql-codegen/core', 'npm:1.17.6']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + { + packageLocation: + './.yarn/$$virtual/@graphql-codegen-core-virtual-3367fcdf1a/0/cache/@graphql-codegen-core-npm-1.17.6-ab96e1cc8a-f5dff42d12.zip/node_modules/@graphql-codegen/core/', + packageDependencies: [ + [ + '@graphql-codegen/core', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/plugin-helpers', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6', + ], + [ + '@graphql-tools/merge', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + [ + '@graphql-tools/utils', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-codegen/plugin-helpers', + [ + [ + 'npm:1.17.6', + { + packageLocation: + './.yarn/cache/@graphql-codegen-plugin-helpers-npm-1.17.6-b149e539aa-6793149a95.zip/node_modules/@graphql-codegen/plugin-helpers/', + packageDependencies: [ + ['@graphql-codegen/plugin-helpers', 'npm:1.17.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6', + { + packageLocation: + './.yarn/$$virtual/@graphql-codegen-plugin-helpers-virtual-70ebea4abd/0/cache/@graphql-codegen-plugin-helpers-npm-1.17.6-b149e539aa-6793149a95.zip/node_modules/@graphql-codegen/plugin-helpers/', + packageDependencies: [ + [ + '@graphql-codegen/plugin-helpers', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6', + ], + [ + '@graphql-tools/utils', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + ['@types/graphql', null], + ['camel-case', 'npm:4.1.1'], + ['common-tags', 'npm:1.8.0'], + ['constant-case', 'npm:3.0.3'], + ['graphql', 'npm:15.3.0'], + ['import-from', 'npm:3.0.0'], + ['lodash', 'npm:4.17.19'], + ['lower-case', 'npm:2.0.1'], + ['param-case', 'npm:3.0.3'], + ['pascal-case', 'npm:3.1.1'], + ['tslib', 'npm:2.0.0'], + ['upper-case', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-codegen/typescript', + [ + [ + 'npm:1.17.6', + { + packageLocation: + './.yarn/cache/@graphql-codegen-typescript-npm-1.17.6-0ccefb6ee7-6ea0907cf3.zip/node_modules/@graphql-codegen/typescript/', + packageDependencies: [ + ['@graphql-codegen/typescript', 'npm:1.17.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + { + packageLocation: + './.yarn/$$virtual/@graphql-codegen-typescript-virtual-6a1d1cfdce/0/cache/@graphql-codegen-typescript-npm-1.17.6-0ccefb6ee7-6ea0907cf3.zip/node_modules/@graphql-codegen/typescript/', + packageDependencies: [ + [ + '@graphql-codegen/typescript', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/plugin-helpers', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6', + ], + [ + '@graphql-codegen/visitor-plugin-common', + 'virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6', + ], + ['@types/graphql', null], + ['auto-bind', 'npm:4.0.0'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-codegen/typescript-operations', + [ + [ + 'npm:1.17.6', + { + packageLocation: + './.yarn/cache/@graphql-codegen-typescript-operations-npm-1.17.6-2b533a2a6c-7021153678.zip/node_modules/@graphql-codegen/typescript-operations/', + packageDependencies: [ + ['@graphql-codegen/typescript-operations', 'npm:1.17.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + { + packageLocation: + './.yarn/$$virtual/@graphql-codegen-typescript-operations-virtual-024f2ecff0/0/cache/@graphql-codegen-typescript-operations-npm-1.17.6-2b533a2a6c-7021153678.zip/node_modules/@graphql-codegen/typescript-operations/', + packageDependencies: [ + [ + '@graphql-codegen/typescript-operations', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/plugin-helpers', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/visitor-plugin-common', + 'virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6', + ], + ['@types/graphql', null], + ['auto-bind', 'npm:4.0.0'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-codegen/visitor-plugin-common', + [ + [ + 'npm:1.17.6', + { + packageLocation: + './.yarn/cache/@graphql-codegen-visitor-plugin-common-npm-1.17.6-5812c8bc85-68c3ecbcbd.zip/node_modules/@graphql-codegen/visitor-plugin-common/', + packageDependencies: [ + ['@graphql-codegen/visitor-plugin-common', 'npm:1.17.6'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6', + { + packageLocation: + './.yarn/$$virtual/@graphql-codegen-visitor-plugin-common-virtual-5d3d34b432/0/cache/@graphql-codegen-visitor-plugin-common-npm-1.17.6-5812c8bc85-68c3ecbcbd.zip/node_modules/@graphql-codegen/visitor-plugin-common/', + packageDependencies: [ + [ + '@graphql-codegen/visitor-plugin-common', + 'virtual:024f2ecff066bf0557b490f46993e57a459ae08c921a4210e433b423470c7d65b289dccb0c759f94b9c99f2bb0c294e66489aee0ed72a808220d4b4e4ac20e39#npm:1.17.6', + ], + [ + '@graphql-codegen/plugin-helpers', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:1.17.6', + ], + [ + '@graphql-tools/relay-operation-optimizer', + 'virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:6.0.15', + ], + ['@types/graphql', null], + ['array.prototype.flatmap', 'npm:1.2.3'], + ['auto-bind', 'npm:4.0.0'], + ['dependency-graph', 'npm:0.9.0'], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:2.10.4', + ], + ['parse-filepath', 'npm:1.0.2'], + ['pascal-case', 'npm:3.1.1'], + ['tslib', 'npm:2.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/batch-delegate', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-batch-delegate-npm-6.2.1-0ff9a7fda7-fd24db9586.zip/node_modules/@graphql-tools/batch-delegate/', + packageDependencies: [ + ['@graphql-tools/batch-delegate', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-batch-delegate-virtual-231c97edb1/0/cache/@graphql-tools-batch-delegate-npm-6.2.1-0ff9a7fda7-fd24db9586.zip/node_modules/@graphql-tools/batch-delegate/', + packageDependencies: [ + [ + '@graphql-tools/batch-delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@types/graphql', null], + ['dataloader', 'npm:2.0.0'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/code-file-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-code-file-loader-npm-6.2.1-0a94a2cf19-428da4ea0e.zip/node_modules/@graphql-tools/code-file-loader/', + packageDependencies: [ + ['@graphql-tools/code-file-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-code-file-loader-virtual-f3016cfb76/0/cache/@graphql-tools-code-file-loader-npm-6.2.1-0a94a2cf19-428da4ea0e.zip/node_modules/@graphql-tools/code-file-loader/', + packageDependencies: [ + [ + '@graphql-tools/code-file-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/graphql-tag-pluck', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['fs-extra', 'npm:9.0.1'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/delegate', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-delegate-npm-6.2.1-3b6c6f2859-8077f1ec36.zip/node_modules/@graphql-tools/delegate/', + packageDependencies: [['@graphql-tools/delegate', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-delegate-virtual-0be9dce121/0/cache/@graphql-tools-delegate-npm-6.2.1-3b6c6f2859-8077f1ec36.zip/node_modules/@graphql-tools/delegate/', + packageDependencies: [ + [ + '@graphql-tools/delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@ardatan/aggregate-error', 'npm:0.0.6'], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['dataloader', 'npm:2.0.0'], + ['graphql', 'npm:15.3.0'], + ['is-promise', 'npm:4.0.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/git-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-git-loader-npm-6.2.1-cef3810aa0-4b8ce65404.zip/node_modules/@graphql-tools/git-loader/', + packageDependencies: [ + ['@graphql-tools/git-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-git-loader-virtual-a621c485cd/0/cache/@graphql-tools-git-loader-npm-6.2.1-cef3810aa0-4b8ce65404.zip/node_modules/@graphql-tools/git-loader/', + packageDependencies: [ + [ + '@graphql-tools/git-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/graphql-tag-pluck', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/github-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-github-loader-npm-6.2.1-21d1bf09e5-a66bd8215a.zip/node_modules/@graphql-tools/github-loader/', + packageDependencies: [ + ['@graphql-tools/github-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-github-loader-virtual-0c35dc29bd/0/cache/@graphql-tools-github-loader-npm-6.2.1-21d1bf09e5-a66bd8215a.zip/node_modules/@graphql-tools/github-loader/', + packageDependencies: [ + [ + '@graphql-tools/github-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/graphql-tag-pluck', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['cross-fetch', 'npm:3.0.5'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/graphql-file-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-graphql-file-loader-npm-6.2.1-5ac4611456-b71b1e632c.zip/node_modules/@graphql-tools/graphql-file-loader/', + packageDependencies: [ + ['@graphql-tools/graphql-file-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-graphql-file-loader-virtual-d31bac0e1e/0/cache/@graphql-tools-graphql-file-loader-npm-6.2.1-5ac4611456-b71b1e632c.zip/node_modules/@graphql-tools/graphql-file-loader/', + packageDependencies: [ + [ + '@graphql-tools/graphql-file-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/import', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['fs-extra', 'npm:9.0.1'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/graphql-tag-pluck', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-graphql-tag-pluck-npm-6.2.1-6fc8c90c0d-ff4bb0459b.zip/node_modules/@graphql-tools/graphql-tag-pluck/', + packageDependencies: [ + ['@graphql-tools/graphql-tag-pluck', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-graphql-tag-pluck-virtual-0bbda4ffaa/0/cache/@graphql-tools-graphql-tag-pluck-npm-6.2.1-6fc8c90c0d-ff4bb0459b.zip/node_modules/@graphql-tools/graphql-tag-pluck/', + packageDependencies: [ + [ + '@graphql-tools/graphql-tag-pluck', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@babel/parser', 'npm:7.11.5'], + ['@babel/traverse', 'npm:7.11.5'], + ['@babel/types', 'npm:7.11.5'], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ['vue-template-compiler', 'npm:2.6.12'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/import', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-import-npm-6.2.1-177c18c3f7-0ca28228d6.zip/node_modules/@graphql-tools/import/', + packageDependencies: [['@graphql-tools/import', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-import-virtual-402c9b6527/0/cache/@graphql-tools-import-npm-6.2.1-177c18c3f7-0ca28228d6.zip/node_modules/@graphql-tools/import/', + packageDependencies: [ + [ + '@graphql-tools/import', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@types/graphql', null], + ['fs-extra', 'npm:9.0.1'], + ['graphql', 'npm:15.3.0'], + ['resolve-from', 'npm:5.0.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/json-file-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-json-file-loader-npm-6.2.1-6e2976fb94-56681dad6a.zip/node_modules/@graphql-tools/json-file-loader/', + packageDependencies: [ + ['@graphql-tools/json-file-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-json-file-loader-virtual-7339d0df40/0/cache/@graphql-tools-json-file-loader-npm-6.2.1-6e2976fb94-56681dad6a.zip/node_modules/@graphql-tools/json-file-loader/', + packageDependencies: [ + [ + '@graphql-tools/json-file-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['fs-extra', 'npm:9.0.1'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/links', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-links-npm-6.2.1-554f2fbcf7-53299b8ef3.zip/node_modules/@graphql-tools/links/', + packageDependencies: [['@graphql-tools/links', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-links-virtual-36c8256c19/0/cache/@graphql-tools-links-npm-6.2.1-554f2fbcf7-53299b8ef3.zip/node_modules/@graphql-tools/links/', + packageDependencies: [ + [ + '@graphql-tools/links', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + [ + 'apollo-link', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:1.2.14', + ], + [ + 'apollo-upload-client', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:14.1.1', + ], + ['cross-fetch', 'npm:3.0.5'], + ['form-data', 'npm:3.0.0'], + ['graphql', 'npm:15.3.0'], + ['is-promise', 'npm:4.0.0'], + [ + 'subscriptions-transport-ws', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18', + ], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/load', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-load-npm-6.2.1-162672a40c-0e9d96974a.zip/node_modules/@graphql-tools/load/', + packageDependencies: [['@graphql-tools/load', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-load-virtual-44ea70c4be/0/cache/@graphql-tools-load-npm-6.2.1-162672a40c-0e9d96974a.zip/node_modules/@graphql-tools/load/', + packageDependencies: [ + [ + '@graphql-tools/load', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/merge', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['globby', 'npm:11.0.1'], + ['graphql', 'npm:15.3.0'], + ['import-from', 'npm:3.0.0'], + ['is-glob', 'npm:4.0.1'], + ['p-limit', 'npm:3.0.2'], + ['tslib', 'npm:2.0.1'], + ['unixify', 'npm:1.0.0'], + ['valid-url', 'npm:1.0.9'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/load-files', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-load-files-npm-6.2.1-4214d64c42-243f321295.zip/node_modules/@graphql-tools/load-files/', + packageDependencies: [ + ['@graphql-tools/load-files', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-load-files-virtual-b787612d28/0/cache/@graphql-tools-load-files-npm-6.2.1-4214d64c42-243f321295.zip/node_modules/@graphql-tools/load-files/', + packageDependencies: [ + [ + '@graphql-tools/load-files', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@types/graphql', null], + ['fs-extra', 'npm:9.0.1'], + ['globby', 'npm:11.0.1'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ['unixify', 'npm:1.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/merge', + [ + [ + 'npm:6.0.15', + { + packageLocation: + './.yarn/cache/@graphql-tools-merge-npm-6.0.15-ef74044dfb-63050b1571.zip/node_modules/@graphql-tools/merge/', + packageDependencies: [['@graphql-tools/merge', 'npm:6.0.15']], + linkType: 'SOFT', + }, + ], + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-merge-npm-6.2.1-9e61b15563-10ba3c3757.zip/node_modules/@graphql-tools/merge/', + packageDependencies: [['@graphql-tools/merge', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-merge-virtual-2c43e74cc7/0/cache/@graphql-tools-merge-npm-6.0.15-ef74044dfb-63050b1571.zip/node_modules/@graphql-tools/merge/', + packageDependencies: [ + [ + '@graphql-tools/merge', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + [ + '@graphql-tools/schema', + 'virtual:2c43e74cc74e2da15f73776b7478d075eea3e828cc6b976807f7f57f101e533c7eff4220a19cb7122d04152b85e90f21b0b181a30a1b07f221db5cb39e5a524a#npm:6.0.15', + ], + [ + '@graphql-tools/utils', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-merge-virtual-b886ff7db2/0/cache/@graphql-tools-merge-npm-6.2.1-9e61b15563-10ba3c3757.zip/node_modules/@graphql-tools/merge/', + packageDependencies: [ + [ + '@graphql-tools/merge', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/mock', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-mock-npm-6.2.1-2516e5d198-b9d9c6a4f7.zip/node_modules/@graphql-tools/mock/', + packageDependencies: [['@graphql-tools/mock', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-mock-virtual-19438ce14b/0/cache/@graphql-tools-mock-npm-6.2.1-2516e5d198-b9d9c6a4f7.zip/node_modules/@graphql-tools/mock/', + packageDependencies: [ + [ + '@graphql-tools/mock', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/module-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-module-loader-npm-6.2.1-6d99b782d5-b6c32497fa.zip/node_modules/@graphql-tools/module-loader/', + packageDependencies: [ + ['@graphql-tools/module-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-module-loader-virtual-f4370eaa04/0/cache/@graphql-tools-module-loader-npm-6.2.1-6d99b782d5-b6c32497fa.zip/node_modules/@graphql-tools/module-loader/', + packageDependencies: [ + [ + '@graphql-tools/module-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/relay-operation-optimizer', + [ + [ + 'npm:6.0.15', + { + packageLocation: + './.yarn/cache/@graphql-tools-relay-operation-optimizer-npm-6.0.15-7bf2e36441-2e8526e2bd.zip/node_modules/@graphql-tools/relay-operation-optimizer/', + packageDependencies: [ + ['@graphql-tools/relay-operation-optimizer', 'npm:6.0.15'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-relay-operation-optimizer-npm-6.2.1-fed1f20f9b-aa0ef7d3af.zip/node_modules/@graphql-tools/relay-operation-optimizer/', + packageDependencies: [ + ['@graphql-tools/relay-operation-optimizer', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:6.0.15', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-relay-operation-optimizer-virtual-8fbc380fbf/0/cache/@graphql-tools-relay-operation-optimizer-npm-6.0.15-7bf2e36441-2e8526e2bd.zip/node_modules/@graphql-tools/relay-operation-optimizer/', + packageDependencies: [ + [ + '@graphql-tools/relay-operation-optimizer', + 'virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:6.0.15', + ], + [ + '@graphql-tools/utils', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + [ + 'relay-compiler', + 'virtual:8fbc380fbfb83c446fbdff9c5e4a5a07a118a4ec957bed39a2469c831dc686ce78446613f276fcd08ce9f58738f2ee08b7fd1d21a072eac3274c73f305301c47#npm:10.0.0', + ], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-relay-operation-optimizer-virtual-0d29aff9ae/0/cache/@graphql-tools-relay-operation-optimizer-npm-6.2.1-fed1f20f9b-aa0ef7d3af.zip/node_modules/@graphql-tools/relay-operation-optimizer/', + packageDependencies: [ + [ + '@graphql-tools/relay-operation-optimizer', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + [ + 'relay-compiler', + 'virtual:0d29aff9ae5afdd8990e2be771603920ab2d59b5164cd84e0f85b11a3f75d71ccd9baea28e8b2d3b8333f6ddd85a9edc4c9ba67f3127625e4af946bf37dd49d9#npm:10.0.1', + ], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/resolvers-composition', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-resolvers-composition-npm-6.2.1-45c30d9629-0500d9a034.zip/node_modules/@graphql-tools/resolvers-composition/', + packageDependencies: [ + ['@graphql-tools/resolvers-composition', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-resolvers-composition-virtual-ef322d011b/0/cache/@graphql-tools-resolvers-composition-npm-6.2.1-45c30d9629-0500d9a034.zip/node_modules/@graphql-tools/resolvers-composition/', + packageDependencies: [ + [ + '@graphql-tools/resolvers-composition', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['lodash', 'npm:4.17.20'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/schema', + [ + [ + 'npm:6.0.15', + { + packageLocation: + './.yarn/cache/@graphql-tools-schema-npm-6.0.15-607fefe8aa-0112bfb36a.zip/node_modules/@graphql-tools/schema/', + packageDependencies: [['@graphql-tools/schema', 'npm:6.0.15']], + linkType: 'SOFT', + }, + ], + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-schema-npm-6.2.1-ecea5211c5-91d2dbc1ce.zip/node_modules/@graphql-tools/schema/', + packageDependencies: [['@graphql-tools/schema', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:2c43e74cc74e2da15f73776b7478d075eea3e828cc6b976807f7f57f101e533c7eff4220a19cb7122d04152b85e90f21b0b181a30a1b07f221db5cb39e5a524a#npm:6.0.15', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-schema-virtual-473592b131/0/cache/@graphql-tools-schema-npm-6.0.15-607fefe8aa-0112bfb36a.zip/node_modules/@graphql-tools/schema/', + packageDependencies: [ + [ + '@graphql-tools/schema', + 'virtual:2c43e74cc74e2da15f73776b7478d075eea3e828cc6b976807f7f57f101e533c7eff4220a19cb7122d04152b85e90f21b0b181a30a1b07f221db5cb39e5a524a#npm:6.0.15', + ], + [ + '@graphql-tools/utils', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-schema-virtual-a08a0a2e77/0/cache/@graphql-tools-schema-npm-6.2.1-ecea5211c5-91d2dbc1ce.zip/node_modules/@graphql-tools/schema/', + packageDependencies: [ + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/stitch', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-stitch-npm-6.2.1-91be47999c-efffb132ef.zip/node_modules/@graphql-tools/stitch/', + packageDependencies: [['@graphql-tools/stitch', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-stitch-virtual-c1a56fd2d5/0/cache/@graphql-tools-stitch-npm-6.2.1-91be47999c-efffb132ef.zip/node_modules/@graphql-tools/stitch/', + packageDependencies: [ + [ + '@graphql-tools/stitch', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/batch-delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/merge', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + [ + '@graphql-tools/wrap', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['is-promise', 'npm:4.0.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/url-loader', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-url-loader-npm-6.2.1-3e49ee66a5-9d855b9970.zip/node_modules/@graphql-tools/url-loader/', + packageDependencies: [ + ['@graphql-tools/url-loader', 'npm:6.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-url-loader-virtual-574da51a38/0/cache/@graphql-tools-url-loader-npm-6.2.1-3e49ee66a5-9d855b9970.zip/node_modules/@graphql-tools/url-loader/', + packageDependencies: [ + [ + '@graphql-tools/url-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + [ + '@graphql-tools/wrap', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@types/graphql', null], + ['@types/websocket', 'npm:1.0.1'], + ['cross-fetch', 'npm:3.0.5'], + ['graphql', 'npm:15.3.0'], + [ + 'subscriptions-transport-ws', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18', + ], + ['tslib', 'npm:2.0.1'], + ['valid-url', 'npm:1.0.9'], + ['websocket', 'npm:1.0.32'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/utils', + [ + [ + 'npm:6.0.15', + { + packageLocation: + './.yarn/cache/@graphql-tools-utils-npm-6.0.15-041d8cd8eb-d68a753b32.zip/node_modules/@graphql-tools/utils/', + packageDependencies: [['@graphql-tools/utils', 'npm:6.0.15']], + linkType: 'SOFT', + }, + ], + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-utils-npm-6.2.1-867a9ee267-ebfdf1fccf.zip/node_modules/@graphql-tools/utils/', + packageDependencies: [['@graphql-tools/utils', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-utils-virtual-5a678ab629/0/cache/@graphql-tools-utils-npm-6.0.15-041d8cd8eb-d68a753b32.zip/node_modules/@graphql-tools/utils/', + packageDependencies: [ + [ + '@graphql-tools/utils', + 'virtual:3367fcdf1a927237098ba1efa3c5cc852aa3cb73531e1af854ef3a6db09bd805358bde01a89fdb00807f9ce545f62d032d14e17faf016a4769a46febce08fd59#npm:6.0.15', + ], + ['@ardatan/aggregate-error', 'npm:0.0.1'], + ['@types/graphql', null], + ['camel-case', 'npm:4.1.1'], + ['graphql', 'npm:15.3.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-utils-virtual-7110f1bcf9/0/cache/@graphql-tools-utils-npm-6.2.1-867a9ee267-ebfdf1fccf.zip/node_modules/@graphql-tools/utils/', + packageDependencies: [ + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@ardatan/aggregate-error', 'npm:0.0.6'], + ['@types/graphql', null], + ['camel-case', 'npm:4.1.1'], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@graphql-tools/wrap', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/@graphql-tools-wrap-npm-6.2.1-bf597dc71c-4bf50c5bc4.zip/node_modules/@graphql-tools/wrap/', + packageDependencies: [['@graphql-tools/wrap', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/@graphql-tools-wrap-virtual-dd77e91574/0/cache/@graphql-tools-wrap-npm-6.2.1-bf597dc71c-4bf50c5bc4.zip/node_modules/@graphql-tools/wrap/', + packageDependencies: [ + [ + '@graphql-tools/wrap', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['is-promise', 'npm:4.0.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@hapi/accept', + [ + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/@hapi-accept-npm-5.0.1-3f6811ac1f-29e3281bd8.zip/node_modules/@hapi/accept/', + packageDependencies: [ + ['@hapi/accept', 'npm:5.0.1'], + ['@hapi/boom', 'npm:9.1.2'], + ['@hapi/hoek', 'npm:9.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@hapi/boom', + [ + [ + 'npm:9.1.2', + { + packageLocation: + './.yarn/cache/@hapi-boom-npm-9.1.2-de293ac5a5-abf911cc05.zip/node_modules/@hapi/boom/', + packageDependencies: [ + ['@hapi/boom', 'npm:9.1.2'], + ['@hapi/hoek', 'npm:9.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@hapi/hoek', + [ + [ + 'npm:9.2.0', + { + packageLocation: + './.yarn/cache/@hapi-hoek-npm-9.2.0-efd2a3831f-c68d43f3fa.zip/node_modules/@hapi/hoek/', + packageDependencies: [['@hapi/hoek', 'npm:9.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@icons/material', + [ + [ + 'npm:0.2.4', + { + packageLocation: + './.yarn/cache/@icons-material-npm-0.2.4-7c2363ec33-10b1841bfb.zip/node_modules/@icons/material/', + packageDependencies: [['@icons/material', 'npm:0.2.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:0.2.4', + { + packageLocation: + './.yarn/$$virtual/@icons-material-virtual-a6f54c4477/0/cache/@icons-material-npm-0.2.4-7c2363ec33-10b1841bfb.zip/node_modules/@icons/material/', + packageDependencies: [ + [ + '@icons/material', + 'virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:0.2.4', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@istanbuljs/load-nyc-config', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/@istanbuljs-load-nyc-config-npm-1.1.0-42d17c9cb1-f7f3b1c922.zip/node_modules/@istanbuljs/load-nyc-config/', + packageDependencies: [ + ['@istanbuljs/load-nyc-config', 'npm:1.1.0'], + ['camelcase', 'npm:5.3.1'], + ['find-up', 'npm:4.1.0'], + ['get-package-type', 'npm:0.1.0'], + ['js-yaml', 'npm:3.14.0'], + ['resolve-from', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@istanbuljs/schema', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/@istanbuljs-schema-npm-0.1.2-cec4e49c8d-ebc6bd5f14.zip/node_modules/@istanbuljs/schema/', + packageDependencies: [['@istanbuljs/schema', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/console', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-console-npm-26.1.0-4b9dc97b8e-b43be58c31.zip/node_modules/@jest/console/', + packageDependencies: [ + ['@jest/console', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-console-npm-26.6.2-bfe95527e4-72920a893e.zip/node_modules/@jest/console/', + packageDependencies: [ + ['@jest/console', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['chalk', 'npm:4.1.0'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/core', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-core-npm-26.1.0-846995c194-0ceb5a15d0.zip/node_modules/@jest/core/', + packageDependencies: [ + ['@jest/core', 'npm:26.1.0'], + ['@jest/console', 'npm:26.1.0'], + ['@jest/reporters', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/transform', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['ansi-escapes', 'npm:4.3.1'], + ['chalk', 'npm:4.1.0'], + ['exit', 'npm:0.1.2'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-changed-files', 'npm:26.1.0'], + ['jest-config', 'npm:26.1.0'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-resolve', 'npm:26.1.0'], + ['jest-resolve-dependencies', 'npm:26.1.0'], + ['jest-runner', 'npm:26.1.0'], + ['jest-runtime', 'npm:26.1.0'], + ['jest-snapshot', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-validate', 'npm:26.1.0'], + ['jest-watcher', 'npm:26.1.0'], + ['micromatch', 'npm:4.0.2'], + ['p-each-series', 'npm:2.1.0'], + ['rimraf', 'npm:3.0.2'], + ['slash', 'npm:3.0.0'], + ['strip-ansi', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/@jest-core-npm-26.6.3-9bb6c92d6b-e0d35e40fc.zip/node_modules/@jest/core/', + packageDependencies: [ + ['@jest/core', 'npm:26.6.3'], + ['@jest/console', 'npm:26.6.2'], + ['@jest/reporters', 'npm:26.6.2'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/transform', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['ansi-escapes', 'npm:4.3.1'], + ['chalk', 'npm:4.1.0'], + ['exit', 'npm:0.1.2'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-changed-files', 'npm:26.6.2'], + [ + 'jest-config', + 'virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3', + ], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-resolve', 'npm:26.6.2'], + ['jest-resolve-dependencies', 'npm:26.6.3'], + ['jest-runner', 'npm:26.6.3'], + ['jest-runtime', 'npm:26.6.3'], + ['jest-snapshot', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['jest-validate', 'npm:26.6.2'], + ['jest-watcher', 'npm:26.6.2'], + ['micromatch', 'npm:4.0.2'], + ['p-each-series', 'npm:2.1.0'], + ['rimraf', 'npm:3.0.2'], + ['slash', 'npm:3.0.0'], + ['strip-ansi', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/environment', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-environment-npm-26.1.0-2c8bd3aa6d-944ef58527.zip/node_modules/@jest/environment/', + packageDependencies: [ + ['@jest/environment', 'npm:26.1.0'], + ['@jest/fake-timers', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['jest-mock', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-environment-npm-26.6.2-bc869bb23e-a4f4265468.zip/node_modules/@jest/environment/', + packageDependencies: [ + ['@jest/environment', 'npm:26.6.2'], + ['@jest/fake-timers', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['jest-mock', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/fake-timers', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-fake-timers-npm-26.1.0-cc72efb0d4-dcfd8199f2.zip/node_modules/@jest/fake-timers/', + packageDependencies: [ + ['@jest/fake-timers', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['@sinonjs/fake-timers', 'npm:6.0.1'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-mock', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-fake-timers-npm-26.6.2-511850bedc-a82aa6d2f3.zip/node_modules/@jest/fake-timers/', + packageDependencies: [ + ['@jest/fake-timers', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@sinonjs/fake-timers', 'npm:6.0.1'], + ['@types/node', 'npm:14.0.27'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-mock', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/globals', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-globals-npm-26.1.0-72303ab9f8-51e4298dd2.zip/node_modules/@jest/globals/', + packageDependencies: [ + ['@jest/globals', 'npm:26.1.0'], + ['@jest/environment', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['expect', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-globals-npm-26.6.2-8ad9bc1dd5-d8f68a24ad.zip/node_modules/@jest/globals/', + packageDependencies: [ + ['@jest/globals', 'npm:26.6.2'], + ['@jest/environment', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['expect', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/reporters', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-reporters-npm-26.1.0-7f0071f612-ddbaa926a5.zip/node_modules/@jest/reporters/', + packageDependencies: [ + ['@jest/reporters', 'npm:26.1.0'], + ['@bcoe/v8-coverage', 'npm:0.2.3'], + ['@jest/console', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/transform', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['collect-v8-coverage', 'npm:1.0.1'], + ['exit', 'npm:0.1.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['istanbul-lib-coverage', 'npm:3.0.0'], + ['istanbul-lib-instrument', 'npm:4.0.3'], + ['istanbul-lib-report', 'npm:3.0.0'], + ['istanbul-lib-source-maps', 'npm:4.0.0'], + ['istanbul-reports', 'npm:3.0.2'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-resolve', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-worker', 'npm:26.1.0'], + ['node-notifier', 'npm:7.0.2'], + ['slash', 'npm:3.0.0'], + ['source-map', 'npm:0.6.1'], + ['string-length', 'npm:4.0.1'], + ['terminal-link', 'npm:2.1.1'], + ['v8-to-istanbul', 'npm:4.1.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-reporters-npm-26.6.2-d75b358f51-86ed8563dd.zip/node_modules/@jest/reporters/', + packageDependencies: [ + ['@jest/reporters', 'npm:26.6.2'], + ['@bcoe/v8-coverage', 'npm:0.2.3'], + ['@jest/console', 'npm:26.6.2'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/transform', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['chalk', 'npm:4.1.0'], + ['collect-v8-coverage', 'npm:1.0.1'], + ['exit', 'npm:0.1.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['istanbul-lib-coverage', 'npm:3.0.0'], + ['istanbul-lib-instrument', 'npm:4.0.3'], + ['istanbul-lib-report', 'npm:3.0.0'], + ['istanbul-lib-source-maps', 'npm:4.0.0'], + ['istanbul-reports', 'npm:3.0.2'], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-resolve', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['jest-worker', 'npm:26.6.2'], + ['node-notifier', 'npm:8.0.2'], + ['slash', 'npm:3.0.0'], + ['source-map', 'npm:0.6.1'], + ['string-length', 'npm:4.0.1'], + ['terminal-link', 'npm:2.1.1'], + ['v8-to-istanbul', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/source-map', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-source-map-npm-26.1.0-7c05504c9d-f2d1d8cee4.zip/node_modules/@jest/source-map/', + packageDependencies: [ + ['@jest/source-map', 'npm:26.1.0'], + ['callsites', 'npm:3.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-source-map-npm-26.6.2-a3b9d7d3b0-9a6d3e6506.zip/node_modules/@jest/source-map/', + packageDependencies: [ + ['@jest/source-map', 'npm:26.6.2'], + ['callsites', 'npm:3.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/test-result', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-test-result-npm-26.1.0-50b04bf6f7-e399e0d76b.zip/node_modules/@jest/test-result/', + packageDependencies: [ + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/console', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['collect-v8-coverage', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-test-result-npm-26.6.2-7ffd75a97e-0ecd35212b.zip/node_modules/@jest/test-result/', + packageDependencies: [ + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/console', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['collect-v8-coverage', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/test-sequencer', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-test-sequencer-npm-26.1.0-be37c287d8-3e22753891.zip/node_modules/@jest/test-sequencer/', + packageDependencies: [ + ['@jest/test-sequencer', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-runner', 'npm:26.1.0'], + ['jest-runtime', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/@jest-test-sequencer-npm-26.6.3-04c59ff624-c0c2c7917a.zip/node_modules/@jest/test-sequencer/', + packageDependencies: [ + ['@jest/test-sequencer', 'npm:26.6.3'], + ['@jest/test-result', 'npm:26.6.2'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-runner', 'npm:26.6.3'], + ['jest-runtime', 'npm:26.6.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/transform', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-transform-npm-26.1.0-911cc277e4-0cb99690a1.zip/node_modules/@jest/transform/', + packageDependencies: [ + ['@jest/transform', 'npm:26.1.0'], + ['@babel/core', 'npm:7.10.5'], + ['@jest/types', 'npm:26.1.0'], + ['babel-plugin-istanbul', 'npm:6.0.0'], + ['chalk', 'npm:4.1.0'], + ['convert-source-map', 'npm:1.7.0'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-util', 'npm:26.1.0'], + ['micromatch', 'npm:4.0.2'], + ['pirates', 'npm:4.0.1'], + ['slash', 'npm:3.0.0'], + ['source-map', 'npm:0.6.1'], + ['write-file-atomic', 'npm:3.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-transform-npm-26.6.2-151c44db49-28e97c9eb8.zip/node_modules/@jest/transform/', + packageDependencies: [ + ['@jest/transform', 'npm:26.6.2'], + ['@babel/core', 'npm:7.10.5'], + ['@jest/types', 'npm:26.6.2'], + ['babel-plugin-istanbul', 'npm:6.0.0'], + ['chalk', 'npm:4.1.0'], + ['convert-source-map', 'npm:1.7.0'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-util', 'npm:26.6.2'], + ['micromatch', 'npm:4.0.2'], + ['pirates', 'npm:4.0.1'], + ['slash', 'npm:3.0.0'], + ['source-map', 'npm:0.6.1'], + ['write-file-atomic', 'npm:3.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@jest/types', + [ + [ + 'npm:25.5.0', + { + packageLocation: + './.yarn/cache/@jest-types-npm-25.5.0-45f0640591-33ad68320e.zip/node_modules/@jest/types/', + packageDependencies: [ + ['@jest/types', 'npm:25.5.0'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['@types/istanbul-reports', 'npm:1.1.2'], + ['@types/yargs', 'npm:15.0.5'], + ['chalk', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/@jest-types-npm-26.1.0-07270e1c75-8676c8bb0e.zip/node_modules/@jest/types/', + packageDependencies: [ + ['@jest/types', 'npm:26.1.0'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['@types/istanbul-reports', 'npm:1.1.2'], + ['@types/yargs', 'npm:15.0.5'], + ['chalk', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.3.0', + { + packageLocation: + './.yarn/cache/@jest-types-npm-26.3.0-e431bc9d13-151547a8fd.zip/node_modules/@jest/types/', + packageDependencies: [ + ['@jest/types', 'npm:26.3.0'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['@types/istanbul-reports', 'npm:3.0.0'], + ['@types/node', 'npm:14.0.27'], + ['@types/yargs', 'npm:15.0.5'], + ['chalk', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/@jest-types-npm-26.6.2-fca9877d98-5c511d7807.zip/node_modules/@jest/types/', + packageDependencies: [ + ['@jest/types', 'npm:26.6.2'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['@types/istanbul-reports', 'npm:3.0.0'], + ['@types/node', 'npm:14.0.27'], + ['@types/yargs', 'npm:15.0.5'], + ['chalk', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@mrmlnc/readdir-enhanced', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/@mrmlnc-readdir-enhanced-npm-2.2.1-5286808663-e01193b783.zip/node_modules/@mrmlnc/readdir-enhanced/', + packageDependencies: [ + ['@mrmlnc/readdir-enhanced', 'npm:2.2.1'], + ['call-me-maybe', 'npm:1.0.1'], + ['glob-to-regexp', 'npm:0.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@next/env', + [ + [ + 'npm:10.0.5', + { + packageLocation: + './.yarn/cache/@next-env-npm-10.0.5-e82ce9de45-11479ceb24.zip/node_modules/@next/env/', + packageDependencies: [['@next/env', 'npm:10.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@next/polyfill-module', + [ + [ + 'npm:10.0.5', + { + packageLocation: + './.yarn/cache/@next-polyfill-module-npm-10.0.5-6dbf040c0f-8147e6319a.zip/node_modules/@next/polyfill-module/', + packageDependencies: [['@next/polyfill-module', 'npm:10.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@next/react-dev-overlay', + [ + [ + 'npm:10.0.5', + { + packageLocation: + './.yarn/cache/@next-react-dev-overlay-npm-10.0.5-ca540f1b0f-6872e5bc89.zip/node_modules/@next/react-dev-overlay/', + packageDependencies: [ + ['@next/react-dev-overlay', 'npm:10.0.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:9.4.2', + { + packageLocation: + './.yarn/cache/@next-react-dev-overlay-npm-9.4.2-f682087cb5-72db3ab958.zip/node_modules/@next/react-dev-overlay/', + packageDependencies: [['@next/react-dev-overlay', 'npm:9.4.2']], + linkType: 'SOFT', + }, + ], + [ + 'npm:9.5.1', + { + packageLocation: + './.yarn/cache/@next-react-dev-overlay-npm-9.5.1-10410bae0e-524c91fe62.zip/node_modules/@next/react-dev-overlay/', + packageDependencies: [['@next/react-dev-overlay', 'npm:9.5.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + { + packageLocation: + './.yarn/$$virtual/@next-react-dev-overlay-virtual-05cd8aeb53/0/cache/@next-react-dev-overlay-npm-10.0.5-ca540f1b0f-6872e5bc89.zip/node_modules/@next/react-dev-overlay/', + packageDependencies: [ + [ + '@next/react-dev-overlay', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + ], + ['@babel/code-frame', 'npm:7.12.11'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/webpack', null], + ['anser', 'npm:1.4.9'], + ['chalk', 'npm:4.0.0'], + ['classnames', 'npm:2.2.6'], + ['css.escape', 'npm:1.5.1'], + ['data-uri-to-buffer', 'npm:3.0.1'], + ['platform', 'npm:1.3.6'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['shell-quote', 'npm:1.7.2'], + ['source-map', 'npm:0.8.0-beta.0'], + ['stacktrace-parser', 'npm:0.1.10'], + ['strip-ansi', 'npm:6.0.0'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + '@types/webpack', + 'react-dom', + 'react', + 'webpack', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1', + { + packageLocation: + './.yarn/$$virtual/@next-react-dev-overlay-virtual-6b47a90cd5/0/cache/@next-react-dev-overlay-npm-9.5.1-10410bae0e-524c91fe62.zip/node_modules/@next/react-dev-overlay/', + packageDependencies: [ + [ + '@next/react-dev-overlay', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1', + ], + ['@babel/code-frame', 'npm:7.8.3'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/webpack', null], + ['ally.js', 'npm:1.4.1'], + ['anser', 'npm:1.4.9'], + ['chalk', 'npm:4.0.0'], + ['classnames', 'npm:2.2.6'], + ['data-uri-to-buffer', 'npm:3.0.0'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['shell-quote', 'npm:1.7.2'], + ['source-map', 'npm:0.8.0-beta.0'], + ['stacktrace-parser', 'npm:0.1.10'], + ['strip-ansi', 'npm:6.0.0'], + ['webpack', 'npm:4.44.0'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + '@types/webpack', + 'react-dom', + 'react', + 'webpack', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2', + { + packageLocation: + './.yarn/$$virtual/@next-react-dev-overlay-virtual-aada581692/0/cache/@next-react-dev-overlay-npm-9.4.2-f682087cb5-72db3ab958.zip/node_modules/@next/react-dev-overlay/', + packageDependencies: [ + [ + '@next/react-dev-overlay', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2', + ], + ['@babel/code-frame', 'npm:7.8.3'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['ally.js', 'npm:1.4.1'], + ['anser', 'npm:1.4.9'], + ['chalk', 'npm:4.0.0'], + ['classnames', 'npm:2.2.6'], + ['data-uri-to-buffer', 'npm:3.0.0'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['shell-quote', 'npm:1.7.2'], + ['source-map', 'npm:0.8.0-beta.0'], + ['stacktrace-parser', 'npm:0.1.10'], + ['strip-ansi', 'npm:6.0.0'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + 'react-dom', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@next/react-refresh-utils', + [ + [ + 'npm:10.0.5', + { + packageLocation: + './.yarn/cache/@next-react-refresh-utils-npm-10.0.5-704cdafec6-6cfdfd6e52.zip/node_modules/@next/react-refresh-utils/', + packageDependencies: [ + ['@next/react-refresh-utils', 'npm:10.0.5'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:9.4.2', + { + packageLocation: + './.yarn/cache/@next-react-refresh-utils-npm-9.4.2-a4fd295d9d-7bb8fa4063.zip/node_modules/@next/react-refresh-utils/', + packageDependencies: [ + ['@next/react-refresh-utils', 'npm:9.4.2'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:9.5.1', + { + packageLocation: + './.yarn/cache/@next-react-refresh-utils-npm-9.5.1-61f8ca85a7-53387312a9.zip/node_modules/@next/react-refresh-utils/', + packageDependencies: [ + ['@next/react-refresh-utils', 'npm:9.5.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + { + packageLocation: + './.yarn/$$virtual/@next-react-refresh-utils-virtual-52f8f4e49f/0/cache/@next-react-refresh-utils-npm-10.0.5-704cdafec6-6cfdfd6e52.zip/node_modules/@next/react-refresh-utils/', + packageDependencies: [ + [ + '@next/react-refresh-utils', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + ], + ['@types/react-refresh', null], + ['@types/webpack', null], + ['react-refresh', 'npm:0.8.3'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ], + packagePeers: [ + '@types/react-refresh', + '@types/webpack', + 'react-refresh', + 'webpack', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1', + { + packageLocation: + './.yarn/$$virtual/@next-react-refresh-utils-virtual-0d900127b3/0/cache/@next-react-refresh-utils-npm-9.5.1-61f8ca85a7-53387312a9.zip/node_modules/@next/react-refresh-utils/', + packageDependencies: [ + [ + '@next/react-refresh-utils', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1', + ], + ['@types/react-refresh', null], + ['@types/webpack', null], + ['react-refresh', 'npm:0.8.3'], + ['webpack', 'npm:4.44.0'], + ], + packagePeers: [ + '@types/react-refresh', + '@types/webpack', + 'react-refresh', + 'webpack', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2', + { + packageLocation: + './.yarn/$$virtual/@next-react-refresh-utils-virtual-8ce35b29e6/0/cache/@next-react-refresh-utils-npm-9.4.2-a4fd295d9d-7bb8fa4063.zip/node_modules/@next/react-refresh-utils/', + packageDependencies: [ + [ + '@next/react-refresh-utils', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2', + ], + ['@types/react-refresh', null], + ['@types/webpack', null], + ['react-refresh', 'npm:0.8.2'], + ['webpack', 'npm:4.43.0'], + ], + packagePeers: [ + '@types/react-refresh', + '@types/webpack', + 'react-refresh', + 'webpack', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@nodelib/fs.scandir', + [ + [ + 'npm:2.1.3', + { + packageLocation: + './.yarn/cache/@nodelib-fs.scandir-npm-2.1.3-92e0b8f0d5-1f100655dd.zip/node_modules/@nodelib/fs.scandir/', + packageDependencies: [ + ['@nodelib/fs.scandir', 'npm:2.1.3'], + ['@nodelib/fs.stat', 'npm:2.0.3'], + ['run-parallel', 'npm:1.1.9'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@nodelib/fs.stat', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/@nodelib-fs.stat-npm-1.1.3-95bc1892a0-351499088e.zip/node_modules/@nodelib/fs.stat/', + packageDependencies: [['@nodelib/fs.stat', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/@nodelib-fs.stat-npm-2.0.3-be9eaa5ef7-1bfdb2f419.zip/node_modules/@nodelib/fs.stat/', + packageDependencies: [['@nodelib/fs.stat', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@nodelib/fs.walk', + [ + [ + 'npm:1.2.4', + { + packageLocation: + './.yarn/cache/@nodelib-fs.walk-npm-1.2.4-1ae6c97d00-f4bffba16c.zip/node_modules/@nodelib/fs.walk/', + packageDependencies: [ + ['@nodelib/fs.walk', 'npm:1.2.4'], + ['@nodelib/fs.scandir', 'npm:2.1.3'], + ['fastq', 'npm:1.8.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/auth-app', + [ + [ + 'npm:2.10.0', + { + packageLocation: + './.yarn/cache/@octokit-auth-app-npm-2.10.0-a144f6f44b-dc1f5fcd7e.zip/node_modules/@octokit/auth-app/', + packageDependencies: [ + ['@octokit/auth-app', 'npm:2.10.0'], + ['@octokit/request', 'npm:5.4.9'], + ['@octokit/request-error', 'npm:2.0.2'], + ['@octokit/types', 'npm:5.5.0'], + ['@types/lru-cache', 'npm:5.1.0'], + ['deprecation', 'npm:2.3.1'], + ['lru-cache', 'npm:6.0.0'], + ['universal-github-app-jwt', 'npm:1.1.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/auth-token', + [ + [ + 'npm:2.4.2', + { + packageLocation: + './.yarn/cache/@octokit-auth-token-npm-2.4.2-71ed1e5725-e3347630bb.zip/node_modules/@octokit/auth-token/', + packageDependencies: [ + ['@octokit/auth-token', 'npm:2.4.2'], + ['@octokit/types', 'npm:5.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.4.5', + { + packageLocation: + './.yarn/cache/@octokit-auth-token-npm-2.4.5-91cd7149bb-4cd8ef3bc0.zip/node_modules/@octokit/auth-token/', + packageDependencies: [ + ['@octokit/auth-token', 'npm:2.4.5'], + ['@octokit/types', 'npm:6.12.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/core', + [ + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/@octokit-core-npm-3.2.0-394bb982d4-7a6c5e4466.zip/node_modules/@octokit/core/', + packageDependencies: [ + ['@octokit/core', 'npm:3.2.0'], + ['@octokit/auth-token', 'npm:2.4.2'], + ['@octokit/graphql', 'npm:4.5.6'], + ['@octokit/request', 'npm:5.4.9'], + ['@octokit/types', 'npm:5.5.0'], + ['before-after-hook', 'npm:2.1.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/@octokit-core-npm-3.3.0-b331a83789-76015d8515.zip/node_modules/@octokit/core/', + packageDependencies: [ + ['@octokit/core', 'npm:3.3.0'], + ['@octokit/auth-token', 'npm:2.4.5'], + ['@octokit/graphql', 'npm:4.6.1'], + ['@octokit/request', 'npm:5.4.14'], + ['@octokit/request-error', 'npm:2.0.5'], + ['@octokit/types', 'npm:6.12.2'], + ['before-after-hook', 'npm:2.2.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/endpoint', + [ + [ + 'npm:6.0.8', + { + packageLocation: + './.yarn/cache/@octokit-endpoint-npm-6.0.8-e4f13e2069-9aee14e175.zip/node_modules/@octokit/endpoint/', + packageDependencies: [ + ['@octokit/endpoint', 'npm:6.0.8'], + ['@octokit/types', 'npm:5.5.0'], + ['is-plain-object', 'npm:5.0.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/graphql', + [ + [ + 'npm:4.5.6', + { + packageLocation: + './.yarn/cache/@octokit-graphql-npm-4.5.6-53e3d97de0-22456d3ac8.zip/node_modules/@octokit/graphql/', + packageDependencies: [ + ['@octokit/graphql', 'npm:4.5.6'], + ['@octokit/request', 'npm:5.4.9'], + ['@octokit/types', 'npm:5.5.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.6.1', + { + packageLocation: + './.yarn/cache/@octokit-graphql-npm-4.6.1-b0d2b63384-bcac6e3d90.zip/node_modules/@octokit/graphql/', + packageDependencies: [ + ['@octokit/graphql', 'npm:4.6.1'], + ['@octokit/request', 'npm:5.4.9'], + ['@octokit/types', 'npm:6.12.2'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/openapi-types', + [ + [ + 'npm:5.3.2', + { + packageLocation: + './.yarn/cache/@octokit-openapi-types-npm-5.3.2-f5b8c2e3e0-5c5f2f2f6e.zip/node_modules/@octokit/openapi-types/', + packageDependencies: [['@octokit/openapi-types', 'npm:5.3.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/plugin-paginate-rest', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/@octokit-plugin-paginate-rest-npm-1.1.2-b0b3e646dc-3a60026e4c.zip/node_modules/@octokit/plugin-paginate-rest/', + packageDependencies: [ + ['@octokit/plugin-paginate-rest', 'npm:1.1.2'], + ['@octokit/types', 'npm:2.16.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.4.0', + { + packageLocation: + './.yarn/cache/@octokit-plugin-paginate-rest-npm-2.4.0-ae5b5835bf-547d66b14e.zip/node_modules/@octokit/plugin-paginate-rest/', + packageDependencies: [ + ['@octokit/plugin-paginate-rest', 'npm:2.4.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.4.0', + { + packageLocation: + './.yarn/$$virtual/@octokit-plugin-paginate-rest-virtual-27ff16ba6f/0/cache/@octokit-plugin-paginate-rest-npm-2.4.0-ae5b5835bf-547d66b14e.zip/node_modules/@octokit/plugin-paginate-rest/', + packageDependencies: [ + [ + '@octokit/plugin-paginate-rest', + 'virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.4.0', + ], + ['@octokit/core', 'npm:3.2.0'], + ['@octokit/types', 'npm:5.5.0'], + ['@types/octokit__core', null], + ], + packagePeers: ['@octokit/core', '@types/octokit__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/plugin-request-log', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/@octokit-plugin-request-log-npm-1.0.2-e4bca3d662-c587973f42.zip/node_modules/@octokit/plugin-request-log/', + packageDependencies: [ + ['@octokit/plugin-request-log', 'npm:1.0.2'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.2', + { + packageLocation: + './.yarn/$$virtual/@octokit-plugin-request-log-virtual-ae17a1fece/0/cache/@octokit-plugin-request-log-npm-1.0.2-e4bca3d662-c587973f42.zip/node_modules/@octokit/plugin-request-log/', + packageDependencies: [ + [ + '@octokit/plugin-request-log', + 'virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.2', + ], + ['@octokit/core', 'npm:3.2.0'], + ['@types/octokit__core', null], + ], + packagePeers: ['@octokit/core', '@types/octokit__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:1.0.2', + { + packageLocation: + './.yarn/$$virtual/@octokit-plugin-request-log-virtual-8b613a8639/0/cache/@octokit-plugin-request-log-npm-1.0.2-e4bca3d662-c587973f42.zip/node_modules/@octokit/plugin-request-log/', + packageDependencies: [ + [ + '@octokit/plugin-request-log', + 'virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:1.0.2', + ], + ['@octokit/core', 'npm:3.3.0'], + ['@types/octokit__core', null], + ], + packagePeers: ['@octokit/core', '@types/octokit__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/plugin-rest-endpoint-methods', + [ + [ + 'npm:2.4.0', + { + packageLocation: + './.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-2.4.0-c786d75f5b-5b4673449f.zip/node_modules/@octokit/plugin-rest-endpoint-methods/', + packageDependencies: [ + ['@octokit/plugin-rest-endpoint-methods', 'npm:2.4.0'], + ['@octokit/types', 'npm:2.16.2'], + ['deprecation', 'npm:2.3.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-4.2.0-72a4a17ab8-4ab0c2eb8d.zip/node_modules/@octokit/plugin-rest-endpoint-methods/', + packageDependencies: [ + ['@octokit/plugin-rest-endpoint-methods', 'npm:4.2.0'], + ['@octokit/types', 'npm:5.5.0'], + ['deprecation', 'npm:2.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/request', + [ + [ + 'npm:5.4.14', + { + packageLocation: + './.yarn/cache/@octokit-request-npm-5.4.14-47e6e4e873-06aa040100.zip/node_modules/@octokit/request/', + packageDependencies: [ + ['@octokit/request', 'npm:5.4.14'], + ['@octokit/endpoint', 'npm:6.0.8'], + ['@octokit/request-error', 'npm:2.0.2'], + ['@octokit/types', 'npm:6.12.2'], + ['deprecation', 'npm:2.3.1'], + ['is-plain-object', 'npm:5.0.0'], + ['node-fetch', 'npm:2.6.1'], + ['once', 'npm:1.4.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.4.9', + { + packageLocation: + './.yarn/cache/@octokit-request-npm-5.4.9-fbb56bc96e-0c62dac923.zip/node_modules/@octokit/request/', + packageDependencies: [ + ['@octokit/request', 'npm:5.4.9'], + ['@octokit/endpoint', 'npm:6.0.8'], + ['@octokit/request-error', 'npm:2.0.2'], + ['@octokit/types', 'npm:5.5.0'], + ['deprecation', 'npm:2.3.1'], + ['is-plain-object', 'npm:5.0.0'], + ['node-fetch', 'npm:2.6.1'], + ['once', 'npm:1.4.0'], + ['universal-user-agent', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/request-error', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/@octokit-request-error-npm-1.2.1-0af51a468f-8612f7a037.zip/node_modules/@octokit/request-error/', + packageDependencies: [ + ['@octokit/request-error', 'npm:1.2.1'], + ['@octokit/types', 'npm:2.16.2'], + ['deprecation', 'npm:2.3.1'], + ['once', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/@octokit-request-error-npm-2.0.2-d8f7f2bfcf-3ba45b3179.zip/node_modules/@octokit/request-error/', + packageDependencies: [ + ['@octokit/request-error', 'npm:2.0.2'], + ['@octokit/types', 'npm:5.5.0'], + ['deprecation', 'npm:2.3.1'], + ['once', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.5', + { + packageLocation: + './.yarn/cache/@octokit-request-error-npm-2.0.5-cfd366d8eb-0d3a3103a5.zip/node_modules/@octokit/request-error/', + packageDependencies: [ + ['@octokit/request-error', 'npm:2.0.5'], + ['@octokit/types', 'npm:6.12.2'], + ['deprecation', 'npm:2.3.1'], + ['once', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/rest', + [ + [ + 'npm:16.43.2', + { + packageLocation: + './.yarn/cache/@octokit-rest-npm-16.43.2-dd2de884c3-d7a7a7cf5a.zip/node_modules/@octokit/rest/', + packageDependencies: [ + ['@octokit/rest', 'npm:16.43.2'], + ['@octokit/auth-token', 'npm:2.4.2'], + ['@octokit/core', 'npm:3.3.0'], + ['@octokit/plugin-paginate-rest', 'npm:1.1.2'], + [ + '@octokit/plugin-request-log', + 'virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:1.0.2', + ], + ['@octokit/plugin-rest-endpoint-methods', 'npm:2.4.0'], + ['@octokit/request', 'npm:5.4.9'], + ['@octokit/request-error', 'npm:1.2.1'], + ['atob-lite', 'npm:2.0.0'], + ['before-after-hook', 'npm:2.1.0'], + ['btoa-lite', 'npm:1.0.0'], + ['deprecation', 'npm:2.3.1'], + ['graphql', 'npm:14.7.0'], + ['lodash.get', 'npm:4.4.2'], + ['lodash.set', 'npm:4.3.2'], + ['lodash.uniq', 'npm:4.5.0'], + ['octokit-pagination-methods', 'npm:1.1.0'], + ['once', 'npm:1.4.0'], + [ + 'subscriptions-transport-ws', + 'virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:0.9.18', + ], + ['universal-user-agent', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:18.0.6', + { + packageLocation: + './.yarn/cache/@octokit-rest-npm-18.0.6-8101dad60c-3353b232ff.zip/node_modules/@octokit/rest/', + packageDependencies: [ + ['@octokit/rest', 'npm:18.0.6'], + ['@octokit/core', 'npm:3.2.0'], + [ + '@octokit/plugin-paginate-rest', + 'virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:2.4.0', + ], + [ + '@octokit/plugin-request-log', + 'virtual:8101dad60c1950bdeaf35178276fcf2ca519e6dd365270aeb3886d44f946f64096d7c5058649d9c63365ba6f0efa47df41a4194435a2a406080ad34b65b98d43#npm:1.0.2', + ], + ['@octokit/plugin-rest-endpoint-methods', 'npm:4.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@octokit/types', + [ + [ + 'npm:2.16.2', + { + packageLocation: + './.yarn/cache/@octokit-types-npm-2.16.2-67cc6da7f2-0cdd051034.zip/node_modules/@octokit/types/', + packageDependencies: [ + ['@octokit/types', 'npm:2.16.2'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.5.0', + { + packageLocation: + './.yarn/cache/@octokit-types-npm-5.5.0-9fc65c7f63-ef5429c90b.zip/node_modules/@octokit/types/', + packageDependencies: [ + ['@octokit/types', 'npm:5.5.0'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.12.2', + { + packageLocation: + './.yarn/cache/@octokit-types-npm-6.12.2-93c422055a-d96bb9fae7.zip/node_modules/@octokit/types/', + packageDependencies: [ + ['@octokit/types', 'npm:6.12.2'], + ['@octokit/openapi-types', 'npm:5.3.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@opentelemetry/api', + [ + [ + 'npm:0.14.0', + { + packageLocation: + './.yarn/cache/@opentelemetry-api-npm-0.14.0-32418757fd-ce601aba39.zip/node_modules/@opentelemetry/api/', + packageDependencies: [ + ['@opentelemetry/api', 'npm:0.14.0'], + ['@opentelemetry/context-base', 'npm:0.14.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@opentelemetry/context-base', + [ + [ + 'npm:0.14.0', + { + packageLocation: + './.yarn/cache/@opentelemetry-context-base-npm-0.14.0-4989dcd15f-f1e637a191.zip/node_modules/@opentelemetry/context-base/', + packageDependencies: [ + ['@opentelemetry/context-base', 'npm:0.14.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@rollup/plugin-node-resolve', + [ + [ + 'npm:11.2.0', + { + packageLocation: + './.yarn/cache/@rollup-plugin-node-resolve-npm-11.2.0-1858611eb0-173bb5822b.zip/node_modules/@rollup/plugin-node-resolve/', + packageDependencies: [ + ['@rollup/plugin-node-resolve', 'npm:11.2.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:cada2ee815a8bb9867bc6df56f6788ca4baf721877021470643cf1a10fa7eba82dd37f67ca56abb44a0f639613382e6443afc40fbe67a4ad334cfe4cb2e0fe13#npm:11.2.0', + { + packageLocation: + './.yarn/$$virtual/@rollup-plugin-node-resolve-virtual-5cf8352cc9/0/cache/@rollup-plugin-node-resolve-npm-11.2.0-1858611eb0-173bb5822b.zip/node_modules/@rollup/plugin-node-resolve/', + packageDependencies: [ + [ + '@rollup/plugin-node-resolve', + 'virtual:cada2ee815a8bb9867bc6df56f6788ca4baf721877021470643cf1a10fa7eba82dd37f67ca56abb44a0f639613382e6443afc40fbe67a4ad334cfe4cb2e0fe13#npm:11.2.0', + ], + [ + '@rollup/pluginutils', + 'virtual:5cf8352cc913cf87e832dd22564fd4857eb4eef83ac9d05039b36c768bda82b22df4b8b0677ce89a2ca55f40b51571c6e4bc946d40cc45d60079eb20d93361f1#npm:3.1.0', + ], + ['@types/resolve', 'npm:1.17.1'], + ['@types/rollup', null], + ['builtin-modules', 'npm:3.2.0'], + ['deepmerge', 'npm:4.2.2'], + ['is-module', 'npm:1.0.0'], + [ + 'resolve', + 'patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa', + ], + ['rollup', 'npm:2.40.0'], + ], + packagePeers: ['@types/rollup', 'rollup'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@rollup/pluginutils', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/@rollup-pluginutils-npm-3.1.0-b44b222e7d-45da6411e0.zip/node_modules/@rollup/pluginutils/', + packageDependencies: [['@rollup/pluginutils', 'npm:3.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:5cf8352cc913cf87e832dd22564fd4857eb4eef83ac9d05039b36c768bda82b22df4b8b0677ce89a2ca55f40b51571c6e4bc946d40cc45d60079eb20d93361f1#npm:3.1.0', + { + packageLocation: + './.yarn/$$virtual/@rollup-pluginutils-virtual-d9eeb86a93/0/cache/@rollup-pluginutils-npm-3.1.0-b44b222e7d-45da6411e0.zip/node_modules/@rollup/pluginutils/', + packageDependencies: [ + [ + '@rollup/pluginutils', + 'virtual:5cf8352cc913cf87e832dd22564fd4857eb4eef83ac9d05039b36c768bda82b22df4b8b0677ce89a2ca55f40b51571c6e4bc946d40cc45d60079eb20d93361f1#npm:3.1.0', + ], + ['@types/estree', 'npm:0.0.39'], + ['@types/rollup', null], + ['estree-walker', 'npm:1.0.1'], + ['picomatch', 'npm:2.2.2'], + ['rollup', 'npm:2.40.0'], + ], + packagePeers: ['@types/rollup', 'rollup'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@sambego/storybook-styles', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/@sambego-storybook-styles-npm-1.0.0-cd66c7139e-b3c03c8f99.zip/node_modules/@sambego/storybook-styles/', + packageDependencies: [ + ['@sambego/storybook-styles', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@samverschueren/stream-to-observable', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/@samverschueren-stream-to-observable-npm-0.3.0-3da2ac7de0-70b3766c46.zip/node_modules/@samverschueren/stream-to-observable/', + packageDependencies: [ + ['@samverschueren/stream-to-observable', 'npm:0.3.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.3.0', + { + packageLocation: + './.yarn/$$virtual/@samverschueren-stream-to-observable-virtual-d72f438b4b/0/cache/@samverschueren-stream-to-observable-npm-0.3.0-3da2ac7de0-70b3766c46.zip/node_modules/@samverschueren/stream-to-observable/', + packageDependencies: [ + [ + '@samverschueren/stream-to-observable', + 'virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.3.0', + ], + [ + 'any-observable', + 'virtual:d72f438b4b2c02cba8c9422efe9af9e0755567b346f12e7152df53f6f348d8a2c444986b3521966cafae9d9dbb5b3e0c8ac16137f1c4251596b45bdf8129a3cf#npm:0.3.0', + ], + ['rxjs', 'npm:6.6.0'], + ['zenObservable', null], + ], + packagePeers: ['rxjs', 'zenObservable'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@sindresorhus/is', + [ + [ + 'npm:0.14.0', + { + packageLocation: + './.yarn/cache/@sindresorhus-is-npm-0.14.0-9f906ea34b-da26389d6e.zip/node_modules/@sindresorhus/is/', + packageDependencies: [['@sindresorhus/is', 'npm:0.14.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.7.0', + { + packageLocation: + './.yarn/cache/@sindresorhus-is-npm-0.7.0-306ce07075-643ca18f80.zip/node_modules/@sindresorhus/is/', + packageDependencies: [['@sindresorhus/is', 'npm:0.7.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/@sindresorhus-is-npm-3.1.0-91502099ae-36aa125d24.zip/node_modules/@sindresorhus/is/', + packageDependencies: [['@sindresorhus/is', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@sinonjs/commons', + [ + [ + 'npm:1.8.1', + { + packageLocation: + './.yarn/cache/@sinonjs-commons-npm-1.8.1-5b909def60-adbf84a27b.zip/node_modules/@sinonjs/commons/', + packageDependencies: [ + ['@sinonjs/commons', 'npm:1.8.1'], + ['type-detect', 'npm:4.0.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@sinonjs/fake-timers', + [ + [ + 'npm:6.0.1', + { + packageLocation: + './.yarn/cache/@sinonjs-fake-timers-npm-6.0.1-cebf4d0bfb-64458b9087.zip/node_modules/@sinonjs/fake-timers/', + packageDependencies: [ + ['@sinonjs/fake-timers', 'npm:6.0.1'], + ['@sinonjs/commons', 'npm:1.8.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@szmarczak/http-timer', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/@szmarczak-http-timer-npm-1.1.2-ea82ca2d55-a46ec85423.zip/node_modules/@szmarczak/http-timer/', + packageDependencies: [ + ['@szmarczak/http-timer', 'npm:1.1.2'], + ['defer-to-connect', 'npm:1.1.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.5', + { + packageLocation: + './.yarn/cache/@szmarczak-http-timer-npm-4.0.5-03463d10ab-13d8f71dbd.zip/node_modules/@szmarczak/http-timer/', + packageDependencies: [ + ['@szmarczak/http-timer', 'npm:4.0.5'], + ['defer-to-connect', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tailwindcss/custom-forms', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/@tailwindcss-custom-forms-npm-0.2.1-128e89db00-ceb3dfa2a7.zip/node_modules/@tailwindcss/custom-forms/', + packageDependencies: [ + ['@tailwindcss/custom-forms', 'npm:0.2.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4435316c1e84bacbf4420f328c9a7d9ac854d02e794a8fc6e2114aefec188a15fdf4fecfdc950fcb6de7583f8a457fcb72e7b1caf1d47eede80d3b2ee30b0708#npm:0.2.1', + { + packageLocation: + './.yarn/$$virtual/@tailwindcss-custom-forms-virtual-6c1b05046c/0/cache/@tailwindcss-custom-forms-npm-0.2.1-128e89db00-ceb3dfa2a7.zip/node_modules/@tailwindcss/custom-forms/', + packageDependencies: [ + [ + '@tailwindcss/custom-forms', + 'virtual:4435316c1e84bacbf4420f328c9a7d9ac854d02e794a8fc6e2114aefec188a15fdf4fecfdc950fcb6de7583f8a457fcb72e7b1caf1d47eede80d3b2ee30b0708#npm:0.2.1', + ], + ['@types/tailwindcss', null], + ['lodash', 'npm:4.17.19'], + ['mini-svg-data-uri', 'npm:1.2.3'], + ['tailwindcss', 'npm:1.6.0'], + ['traverse', 'npm:0.6.6'], + ], + packagePeers: ['@types/tailwindcss', 'tailwindcss'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tailwindcss/ui', + [ + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/@tailwindcss-ui-npm-0.3.1-cb39406d44-72021b052e.zip/node_modules/@tailwindcss/ui/', + packageDependencies: [['@tailwindcss/ui', 'npm:0.3.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1', + { + packageLocation: + './.yarn/$$virtual/@tailwindcss-ui-virtual-4435316c1e/0/cache/@tailwindcss-ui-npm-0.3.1-cb39406d44-72021b052e.zip/node_modules/@tailwindcss/ui/', + packageDependencies: [ + [ + '@tailwindcss/ui', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1', + ], + [ + '@tailwindcss/custom-forms', + 'virtual:4435316c1e84bacbf4420f328c9a7d9ac854d02e794a8fc6e2114aefec188a15fdf4fecfdc950fcb6de7583f8a457fcb72e7b1caf1d47eede80d3b2ee30b0708#npm:0.2.1', + ], + ['@types/tailwindcss', null], + ['hex-rgb', 'npm:4.1.0'], + ['postcss-selector-parser', 'npm:6.0.2'], + ['tailwindcss', 'npm:1.6.0'], + ], + packagePeers: ['@types/tailwindcss', 'tailwindcss'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/alerts', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-alerts-npm-0.31.0-30cccb4f38-f86ddd2494.zip/node_modules/@tinacms/alerts/', + packageDependencies: [['@tinacms/alerts', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-alerts-virtual-9746454700/0/cache/@tinacms-alerts-npm-0.31.0-30cccb4f38-f86ddd2494.zip/node_modules/@tinacms/alerts/', + packageDependencies: [ + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + ['@types/tinacms__core', null], + ], + packagePeers: ['@tinacms/core', '@types/tinacms__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/core', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-core-npm-0.31.0-df4184f33f-ecab9ab7d8.zip/node_modules/@tinacms/core/', + packageDependencies: [['@tinacms/core', 'npm:0.31.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.32.0', + { + packageLocation: + './.yarn/cache/@tinacms-core-npm-0.32.0-398240ed83-9cf5f13854.zip/node_modules/@tinacms/core/', + packageDependencies: [['@tinacms/core', 'npm:0.32.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.9.0', + { + packageLocation: + './.yarn/cache/@tinacms-core-npm-0.9.0-e0f12301b8-9dbae9afb4.zip/node_modules/@tinacms/core/', + packageDependencies: [['@tinacms/core', 'npm:0.9.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/fields', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/', + packageDependencies: [['@tinacms/fields', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-fields-virtual-3b432b9464/0/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/', + packageDependencies: [ + [ + '@tinacms/fields', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@sambego/storybook-styles', 'npm:1.0.0'], + [ + '@tinacms/form-builder', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-beautiful-dnd', null], + ['@types/react-dom', null], + ['@types/react-select', 'npm:2.0.19'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__styles', null], + ['color-string', 'npm:1.5.3'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-color', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-dropzone', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/styles', + '@types/prop-types', + '@types/react-beautiful-dnd', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__styles', + 'prop-types', + 'react-beautiful-dnd', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-fields-virtual-2d671f8976/0/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/', + packageDependencies: [ + [ + '@tinacms/fields', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + ['@sambego/storybook-styles', 'npm:1.0.0'], + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-beautiful-dnd', null], + ['@types/react-dom', null], + ['@types/react-select', 'npm:2.0.19'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__styles', null], + ['color-string', 'npm:1.5.3'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-color', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-dropzone', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/styles', + '@types/prop-types', + '@types/react-beautiful-dnd', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__styles', + 'prop-types', + 'react-beautiful-dnd', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-fields-virtual-f71b608304/0/cache/@tinacms-fields-npm-0.31.0-24a696dccf-6185aa054b.zip/node_modules/@tinacms/fields/', + packageDependencies: [ + [ + '@tinacms/fields', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + ['@sambego/storybook-styles', 'npm:1.0.0'], + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-beautiful-dnd', null], + ['@types/react-dom', null], + ['@types/react-select', 'npm:2.0.19'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__styles', null], + ['color-string', 'npm:1.5.3'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-color', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-dropzone', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/styles', + '@types/prop-types', + '@types/react-beautiful-dnd', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__styles', + 'prop-types', + 'react-beautiful-dnd', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/form-builder', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/', + packageDependencies: [['@tinacms/form-builder', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.32.0', + { + packageLocation: + './.yarn/cache/@tinacms-form-builder-npm-0.32.0-2d7405477c-7c7ed3758d.zip/node_modules/@tinacms/form-builder/', + packageDependencies: [['@tinacms/form-builder', 'npm:0.32.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-form-builder-virtual-b9947bb0a4/0/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/', + packageDependencies: [ + [ + '@tinacms/form-builder', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-final-form', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/final-form', + '@types/prop-types', + '@types/react', + '@types/styled-components', + 'final-form', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-form-builder-virtual-4dcd7060a2/0/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/', + packageDependencies: [ + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-final-form', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/final-form', + '@types/prop-types', + '@types/react', + '@types/styled-components', + 'final-form', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-form-builder-virtual-297f469f88/0/cache/@tinacms-form-builder-npm-0.31.0-e132b54713-f818a0b314.zip/node_modules/@tinacms/form-builder/', + packageDependencies: [ + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-final-form', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/final-form', + '@types/prop-types', + '@types/react', + '@types/styled-components', + 'final-form', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:0.32.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-form-builder-virtual-0da5c6aeb3/0/cache/@tinacms-form-builder-npm-0.32.0-2d7405477c-7c7ed3758d.zip/node_modules/@tinacms/form-builder/', + packageDependencies: [ + [ + '@tinacms/form-builder', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:0.32.0', + ], + [ + '@tinacms/forms', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + ], + [ + '@tinacms/react-core', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-final-form', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/final-form', + '@types/prop-types', + '@types/react', + '@types/styled-components', + 'final-form', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/forms', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-forms-npm-0.31.0-dbef5ad46e-1bf6a10bdf.zip/node_modules/@tinacms/forms/', + packageDependencies: [['@tinacms/forms', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.32.0', + { + packageLocation: + './.yarn/cache/@tinacms-forms-npm-0.32.0-c31fdcff59-6481028d1f.zip/node_modules/@tinacms/forms/', + packageDependencies: [['@tinacms/forms', 'npm:0.32.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.38.0', + { + packageLocation: + './.yarn/cache/@tinacms-forms-npm-0.38.0-61938be951-979495c7c6.zip/node_modules/@tinacms/forms/', + packageDependencies: [['@tinacms/forms', 'npm:0.38.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.5.0', + { + packageLocation: + './.yarn/cache/@tinacms-forms-npm-0.5.0-12683c7358-5115898ec6.zip/node_modules/@tinacms/forms/', + packageDependencies: [['@tinacms/forms', 'npm:0.5.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-forms-virtual-dd459a67f7/0/cache/@tinacms-forms-npm-0.32.0-c31fdcff59-6481028d1f.zip/node_modules/@tinacms/forms/', + packageDependencies: [ + [ + '@tinacms/forms', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + ], + ['@types/react', 'npm:16.9.43'], + ['final-form', 'npm:4.19.1'], + [ + 'final-form-arrays', + 'virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2', + ], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-forms-virtual-64a1756ac6/0/cache/@tinacms-forms-npm-0.31.0-dbef5ad46e-1bf6a10bdf.zip/node_modules/@tinacms/forms/', + packageDependencies: [ + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/react', 'npm:16.9.43'], + ['final-form', 'npm:4.20.1'], + [ + 'final-form-arrays', + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + ], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-forms-virtual-16f39fd00e/0/cache/@tinacms-forms-npm-0.38.0-61938be951-979495c7c6.zip/node_modules/@tinacms/forms/', + packageDependencies: [ + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + ['@types/react', 'npm:16.9.43'], + ['final-form', 'npm:4.19.1'], + [ + 'final-form-arrays', + 'virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2', + ], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:eb413aa78c45515cef3eebccf217565e6b0f8e8b59b1e3be1665449eab7cb981570903f7ab7d15ca68e05f7378ec31ed8c7789b03f3f5d070f5a62ce0bb9c6e3#npm:0.5.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-forms-virtual-9fa808ddc2/0/cache/@tinacms-forms-npm-0.5.0-12683c7358-5115898ec6.zip/node_modules/@tinacms/forms/', + packageDependencies: [ + [ + '@tinacms/forms', + 'virtual:eb413aa78c45515cef3eebccf217565e6b0f8e8b59b1e3be1665449eab7cb981570903f7ab7d15ca68e05f7378ec31ed8c7789b03f3f5d070f5a62ce0bb9c6e3#npm:0.5.0', + ], + ['@types/react', 'npm:16.9.43'], + ['final-form', 'npm:4.20.1'], + [ + 'final-form-arrays', + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + ], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/icons', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-icons-npm-0.31.0-0aafa0a0ea-142ea1f364.zip/node_modules/@tinacms/icons/', + packageDependencies: [['@tinacms/icons', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.7.0', + { + packageLocation: + './.yarn/cache/@tinacms-icons-npm-0.7.0-4677f6ba67-d4880a2577.zip/node_modules/@tinacms/icons/', + packageDependencies: [['@tinacms/icons', 'npm:0.7.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-icons-virtual-c84a3467a2/0/cache/@tinacms-icons-npm-0.31.0-0aafa0a0ea-142ea1f364.zip/node_modules/@tinacms/icons/', + packageDependencies: [ + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-icons-virtual-ce0de6ef73/0/cache/@tinacms-icons-npm-0.7.0-4677f6ba67-d4880a2577.zip/node_modules/@tinacms/icons/', + packageDependencies: [ + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-alerts', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/', + packageDependencies: [['@tinacms/react-alerts', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-alerts-virtual-087bbd636b/0/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/', + packageDependencies: [ + [ + '@tinacms/react-alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__alerts', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/alerts', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react', + '@types/styled-components', + '@types/tinacms__alerts', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-alerts-virtual-06fe54a86e/0/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/', + packageDependencies: [ + [ + '@tinacms/react-alerts', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__alerts', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/alerts', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react', + '@types/styled-components', + '@types/tinacms__alerts', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-alerts-virtual-cb78b640ea/0/cache/@tinacms-react-alerts-npm-0.31.0-0b3fdd446d-e990fc7409.zip/node_modules/@tinacms/react-alerts/', + packageDependencies: [ + [ + '@tinacms/react-alerts', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__alerts', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/alerts', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react', + '@types/styled-components', + '@types/tinacms__alerts', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-core', + [ + [ + 'npm:0.2.13', + { + packageLocation: + './.yarn/cache/@tinacms-react-core-npm-0.2.13-6ad15fe210-a2fa479ff3.zip/node_modules/@tinacms/react-core/', + packageDependencies: [['@tinacms/react-core', 'npm:0.2.13']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-core-npm-0.31.0-662a22091d-df7d9ee9cf.zip/node_modules/@tinacms/react-core/', + packageDependencies: [['@tinacms/react-core', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.32.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-core-npm-0.32.0-959031142e-8650d12a94.zip/node_modules/@tinacms/react-core/', + packageDependencies: [['@tinacms/react-core', 'npm:0.32.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-core-virtual-5a4a85fa3e/0/cache/@tinacms-react-core-npm-0.32.0-959031142e-8650d12a94.zip/node_modules/@tinacms/react-core/', + packageDependencies: [ + [ + '@tinacms/react-core', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + ], + ['@tinacms/core', 'npm:0.32.0'], + [ + '@tinacms/forms', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:0.32.0', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-core-virtual-7faa160b86/0/cache/@tinacms-react-core-npm-0.31.0-662a22091d-df7d9ee9cf.zip/node_modules/@tinacms/react-core/', + packageDependencies: [ + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-core-virtual-eb413aa78c/0/cache/@tinacms-react-core-npm-0.2.13-6ad15fe210-a2fa479ff3.zip/node_modules/@tinacms/react-core/', + packageDependencies: [ + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + ['@tinacms/core', 'npm:0.9.0'], + [ + '@tinacms/forms', + 'virtual:eb413aa78c45515cef3eebccf217565e6b0f8e8b59b1e3be1665449eab7cb981570903f7ab7d15ca68e05f7378ec31ed8c7789b03f3f5d070f5a62ce0bb9c6e3#npm:0.5.0', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-forms', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [['@tinacms/react-forms', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.32.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-forms-npm-0.32.0-80592336f5-72d188936b.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [['@tinacms/react-forms', 'npm:0.32.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-forms-virtual-0e28938c6e/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [ + [ + '@tinacms/react-forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/final-form', + '@types/prop-types', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'final-form', + 'prop-types', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-forms-virtual-9c101bc2dd/0/cache/@tinacms-react-forms-npm-0.32.0-80592336f5-72d188936b.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [ + [ + '@tinacms/react-forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0', + ], + [ + '@tinacms/form-builder', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:0.32.0', + ], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-modals', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/final-form', + '@types/prop-types', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'final-form', + 'prop-types', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-forms-virtual-6d41a94fd6/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [ + [ + '@tinacms/react-forms', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/final-form', + '@types/prop-types', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'final-form', + 'prop-types', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-forms-virtual-7c1d8771fa/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [ + [ + '@tinacms/react-forms', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-modals', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/final-form', + '@types/prop-types', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'final-form', + 'prop-types', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-forms-virtual-7505813313/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [ + [ + '@tinacms/react-forms', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/final-form', + '@types/prop-types', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'final-form', + 'prop-types', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-forms-virtual-694916a241/0/cache/@tinacms-react-forms-npm-0.31.0-2d1a42791d-91d562d724.zip/node_modules/@tinacms/react-forms/', + packageDependencies: [ + [ + '@tinacms/react-forms', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-modals', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/final-form', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/final-form', + '@types/prop-types', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'final-form', + 'prop-types', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-modals', + [ + [ + 'npm:0.1.12', + { + packageLocation: + './.yarn/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [['@tinacms/react-modals', 'npm:0.1.12']], + linkType: 'SOFT', + }, + ], + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [['@tinacms/react-modals', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-modals-virtual-1a986ac7ad/0/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [ + [ + '@tinacms/react-modals', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-modals-virtual-02c630c7e2/0/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [ + [ + '@tinacms/react-modals', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-modals-virtual-24bdc8ebd1/0/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [ + [ + '@tinacms/react-modals', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-modals-virtual-262216c786/0/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [ + [ + '@tinacms/react-modals', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-modals-virtual-018b8454e4/0/cache/@tinacms-react-modals-npm-0.31.0-606d315281-1cfdfc9997.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [ + [ + '@tinacms/react-modals', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-modals-virtual-d88073254b/0/cache/@tinacms-react-modals-npm-0.1.12-550b5f97a3-56ad506340.zip/node_modules/@tinacms/react-modals/', + packageDependencies: [ + [ + '@tinacms/react-modals', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__styles', null], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/styles', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__styles', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-screens', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/', + packageDependencies: [['@tinacms/react-screens', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-screens-virtual-5be71eb81e/0/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/', + packageDependencies: [ + [ + '@tinacms/react-screens', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/tinacms__core', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['react', 'npm:16.13.1'], + ], + packagePeers: [ + '@tinacms/core', + '@tinacms/react-core', + '@tinacms/react-modals', + '@types/react', + '@types/tinacms__core', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + 'react', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-screens-virtual-2937bdd5a1/0/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/', + packageDependencies: [ + [ + '@tinacms/react-screens', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/tinacms__core', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['react', 'npm:16.13.1'], + ], + packagePeers: [ + '@tinacms/core', + '@tinacms/react-core', + '@tinacms/react-modals', + '@types/react', + '@types/tinacms__core', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + 'react', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-screens-virtual-ea0b6da4b2/0/cache/@tinacms-react-screens-npm-0.31.0-791e6da1e8-62cc1f6146.zip/node_modules/@tinacms/react-screens/', + packageDependencies: [ + [ + '@tinacms/react-screens', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/tinacms__core', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-modals', null], + ['react', 'npm:16.13.1'], + ], + packagePeers: [ + '@tinacms/core', + '@tinacms/react-core', + '@tinacms/react-modals', + '@types/react', + '@types/tinacms__core', + '@types/tinacms__react-core', + '@types/tinacms__react-modals', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-sidebar', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/', + packageDependencies: [['@tinacms/react-sidebar', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-sidebar-virtual-ecf8bd2461/0/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/', + packageDependencies: [ + [ + '@tinacms/react-sidebar', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/form-builder', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__react-screens', null], + ['@types/tinacms__styles', null], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/react-screens', + '@tinacms/styles', + '@types/prop-types', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__react-screens', + '@types/tinacms__styles', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-sidebar-virtual-d1cd418cda/0/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/', + packageDependencies: [ + [ + '@tinacms/react-sidebar', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__react-screens', null], + ['@types/tinacms__styles', null], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/react-screens', + '@tinacms/styles', + '@types/prop-types', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__react-screens', + '@types/tinacms__styles', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-sidebar-virtual-30c2f67d1d/0/cache/@tinacms-react-sidebar-npm-0.31.0-24ddd45921-126389b927.zip/node_modules/@tinacms/react-sidebar/', + packageDependencies: [ + [ + '@tinacms/react-sidebar', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__react-screens', null], + ['@types/tinacms__styles', null], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/react-screens', + '@tinacms/styles', + '@types/prop-types', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__react-screens', + '@types/tinacms__styles', + 'prop-types', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/react-toolbar', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/', + packageDependencies: [['@tinacms/react-toolbar', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-toolbar-virtual-5690ff861e/0/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/', + packageDependencies: [ + [ + '@tinacms/react-toolbar', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/fields', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-beautiful-dnd', null], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__react-screens', null], + ['@types/tinacms__styles', null], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/react-screens', + '@tinacms/styles', + '@types/prop-types', + '@types/react-beautiful-dnd', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__react-screens', + '@types/tinacms__styles', + 'prop-types', + 'react-beautiful-dnd', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-toolbar-virtual-2d1a2e9907/0/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/', + packageDependencies: [ + [ + '@tinacms/react-toolbar', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/fields', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-beautiful-dnd', null], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__react-screens', null], + ['@types/tinacms__styles', null], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/react-screens', + '@tinacms/styles', + '@types/prop-types', + '@types/react-beautiful-dnd', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__react-screens', + '@types/tinacms__styles', + 'prop-types', + 'react-beautiful-dnd', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-react-toolbar-virtual-c2f001ed4c/0/cache/@tinacms-react-toolbar-npm-0.31.0-118e140d39-1db74e06ad.zip/node_modules/@tinacms/react-toolbar/', + packageDependencies: [ + [ + '@tinacms/react-toolbar', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/fields', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-beautiful-dnd', null], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms__form-builder', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__react-screens', null], + ['@types/tinacms__styles', null], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@tinacms/form-builder', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/react-screens', + '@tinacms/styles', + '@types/prop-types', + '@types/react-beautiful-dnd', + '@types/react-dom', + '@types/react', + '@types/styled-components', + '@types/tinacms__form-builder', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__react-screens', + '@types/tinacms__styles', + 'prop-types', + 'react-beautiful-dnd', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@tinacms/styles', + [ + [ + 'npm:0.29.0', + { + packageLocation: + './.yarn/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/', + packageDependencies: [['@tinacms/styles', 'npm:0.29.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-styles-virtual-4ec7d8fb8c/0/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/', + packageDependencies: [ + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['react', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ['webfontloader', 'npm:1.6.28'], + ], + packagePeers: [ + '@types/react', + '@types/styled-components', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-styles-virtual-3d8010decb/0/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/', + packageDependencies: [ + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['react', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ['webfontloader', 'npm:1.6.28'], + ], + packagePeers: [ + '@types/react', + '@types/styled-components', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + { + packageLocation: + './.yarn/$$virtual/@tinacms-styles-virtual-fe32c468c2/0/cache/@tinacms-styles-npm-0.29.0-2ef0e213c1-0d5413bef1.zip/node_modules/@tinacms/styles/', + packageDependencies: [ + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['react', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ['webfontloader', 'npm:1.6.28'], + ], + packagePeers: [ + '@types/react', + '@types/styled-components', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/babel__core', + [ + [ + 'npm:7.1.9', + { + packageLocation: + './.yarn/cache/@types-babel__core-npm-7.1.9-23e959fd72-251c4d3c2a.zip/node_modules/@types/babel__core/', + packageDependencies: [ + ['@types/babel__core', 'npm:7.1.9'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ['@types/babel__generator', 'npm:7.6.1'], + ['@types/babel__template', 'npm:7.0.2'], + ['@types/babel__traverse', 'npm:7.0.13'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/babel__generator', + [ + [ + 'npm:7.6.1', + { + packageLocation: + './.yarn/cache/@types-babel__generator-npm-7.6.1-1afd3e1fa9-d9f19e0e47.zip/node_modules/@types/babel__generator/', + packageDependencies: [ + ['@types/babel__generator', 'npm:7.6.1'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/babel__template', + [ + [ + 'npm:7.0.2', + { + packageLocation: + './.yarn/cache/@types-babel__template-npm-7.0.2-32d369837a-dd13bcf6f0.zip/node_modules/@types/babel__template/', + packageDependencies: [ + ['@types/babel__template', 'npm:7.0.2'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/babel__traverse', + [ + [ + 'npm:7.0.13', + { + packageLocation: + './.yarn/cache/@types-babel__traverse-npm-7.0.13-ada6dc334d-25d3cf96fc.zip/node_modules/@types/babel__traverse/', + packageDependencies: [ + ['@types/babel__traverse', 'npm:7.0.13'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.11.0', + { + packageLocation: + './.yarn/cache/@types-babel__traverse-npm-7.11.0-b03ec93f29-cfb83f1633.zip/node_modules/@types/babel__traverse/', + packageDependencies: [ + ['@types/babel__traverse', 'npm:7.11.0'], + ['@babel/types', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/body-parser', + [ + [ + 'npm:1.19.0', + { + packageLocation: + './.yarn/cache/@types-body-parser-npm-1.19.0-3ca4d08a60-4576f3fde5.zip/node_modules/@types/body-parser/', + packageDependencies: [ + ['@types/body-parser', 'npm:1.19.0'], + ['@types/connect', 'npm:3.4.33'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/cacheable-request', + [ + [ + 'npm:6.0.1', + { + packageLocation: + './.yarn/cache/@types-cacheable-request-npm-6.0.1-067bf7714d-3dae802a08.zip/node_modules/@types/cacheable-request/', + packageDependencies: [ + ['@types/cacheable-request', 'npm:6.0.1'], + ['@types/http-cache-semantics', 'npm:4.0.0'], + ['@types/keyv', 'npm:3.1.1'], + ['@types/node', 'npm:14.0.27'], + ['@types/responselike', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/clear', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/@types-clear-npm-0.1.0-64ea71813f-7fb35c8d89.zip/node_modules/@types/clear/', + packageDependencies: [['@types/clear', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/color-name', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/@types-color-name-npm-1.1.1-00b0925070-8311db94a9.zip/node_modules/@types/color-name/', + packageDependencies: [['@types/color-name', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/connect', + [ + [ + 'npm:3.4.33', + { + packageLocation: + './.yarn/cache/@types-connect-npm-3.4.33-959638d9c6-6414495b59.zip/node_modules/@types/connect/', + packageDependencies: [ + ['@types/connect', 'npm:3.4.33'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/cors', + [ + [ + 'npm:2.8.5', + { + packageLocation: + './.yarn/cache/@types-cors-npm-2.8.5-4aecf2889a-1b3485943d.zip/node_modules/@types/cors/', + packageDependencies: [ + ['@types/cors', 'npm:2.8.5'], + ['@types/express', 'npm:4.17.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.8.7', + { + packageLocation: + './.yarn/cache/@types-cors-npm-2.8.7-0e79501842-5a2f88615b.zip/node_modules/@types/cors/', + packageDependencies: [ + ['@types/cors', 'npm:2.8.7'], + ['@types/express', 'npm:4.17.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/crypto-js', + [ + [ + 'npm:3.1.47', + { + packageLocation: + './.yarn/cache/@types-crypto-js-npm-3.1.47-94e6343487-50a491aacb.zip/node_modules/@types/crypto-js/', + packageDependencies: [['@types/crypto-js', 'npm:3.1.47']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/emscripten', + [ + [ + 'npm:1.39.4', + { + packageLocation: + './.yarn/cache/@types-emscripten-npm-1.39.4-4d03380faa-b848421e25.zip/node_modules/@types/emscripten/', + packageDependencies: [['@types/emscripten', 'npm:1.39.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/estree', + [ + [ + 'npm:0.0.39', + { + packageLocation: + './.yarn/cache/@types-estree-npm-0.0.39-f898500e96-43e5361de3.zip/node_modules/@types/estree/', + packageDependencies: [['@types/estree', 'npm:0.0.39']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/express', + [ + [ + 'npm:4.17.7', + { + packageLocation: + './.yarn/cache/@types-express-npm-4.17.7-3f74d07476-99b795c60e.zip/node_modules/@types/express/', + packageDependencies: [ + ['@types/express', 'npm:4.17.7'], + ['@types/body-parser', 'npm:1.19.0'], + ['@types/express-serve-static-core', 'npm:4.17.9'], + ['@types/qs', 'npm:6.9.4'], + ['@types/serve-static', 'npm:1.13.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.17.8', + { + packageLocation: + './.yarn/cache/@types-express-npm-4.17.8-c21b94ed16-9220ef3cb0.zip/node_modules/@types/express/', + packageDependencies: [ + ['@types/express', 'npm:4.17.8'], + ['@types/body-parser', 'npm:1.19.0'], + ['@types/express-serve-static-core', 'npm:4.17.9'], + ['@types/qs', 'npm:6.9.4'], + ['@types/serve-static', 'npm:1.13.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/express-graphql', + [ + [ + 'npm:0.9.0', + { + packageLocation: + './.yarn/cache/@types-express-graphql-npm-0.9.0-81ccb0b6d9-c2d9d403ad.zip/node_modules/@types/express-graphql/', + packageDependencies: [ + ['@types/express-graphql', 'npm:0.9.0'], + [ + 'express-graphql', + 'virtual:81ccb0b6d9dec0de8117538ffcff243340f76bc1d9e508d68bcd2e95fad3568eca34fcb375bfffd59e37a816a80c197efedec7ace2a30b447f88f1e672f9663e#npm:0.11.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/express-jwt', + [ + [ + 'npm:0.0.42', + { + packageLocation: + './.yarn/cache/@types-express-jwt-npm-0.0.42-14edaf70c3-82477e875e.zip/node_modules/@types/express-jwt/', + packageDependencies: [ + ['@types/express-jwt', 'npm:0.0.42'], + ['@types/express', 'npm:4.17.7'], + ['@types/express-unless', 'npm:0.5.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/express-serve-static-core', + [ + [ + 'npm:4.17.9', + { + packageLocation: + './.yarn/cache/@types-express-serve-static-core-npm-4.17.9-b40b44c418-20ddd0d263.zip/node_modules/@types/express-serve-static-core/', + packageDependencies: [ + ['@types/express-serve-static-core', 'npm:4.17.9'], + ['@types/node', 'npm:14.0.27'], + ['@types/qs', 'npm:6.9.4'], + ['@types/range-parser', 'npm:1.2.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/express-unless', + [ + [ + 'npm:0.5.1', + { + packageLocation: + './.yarn/cache/@types-express-unless-npm-0.5.1-c2a605edb2-3477cf7ff5.zip/node_modules/@types/express-unless/', + packageDependencies: [ + ['@types/express-unless', 'npm:0.5.1'], + ['@types/express', 'npm:4.17.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/figlet', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/@types-figlet-npm-1.2.0-803b4bb472-24a19da02d.zip/node_modules/@types/figlet/', + packageDependencies: [['@types/figlet', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/fs-extra', + [ + [ + 'npm:9.0.2', + { + packageLocation: + './.yarn/cache/@types-fs-extra-npm-9.0.2-76105aa5a6-9fb00885d8.zip/node_modules/@types/fs-extra/', + packageDependencies: [ + ['@types/fs-extra', 'npm:9.0.2'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/glob', + [ + [ + 'npm:7.1.3', + { + packageLocation: + './.yarn/cache/@types-glob-npm-7.1.3-44516e2aab-633bf1dda9.zip/node_modules/@types/glob/', + packageDependencies: [ + ['@types/glob', 'npm:7.1.3'], + ['@types/minimatch', 'npm:3.0.3'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/graceful-fs', + [ + [ + 'npm:4.1.3', + { + packageLocation: + './.yarn/cache/@types-graceful-fs-npm-4.1.3-fa91c32dd0-5e2ec610a9.zip/node_modules/@types/graceful-fs/', + packageDependencies: [ + ['@types/graceful-fs', 'npm:4.1.3'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/hoist-non-react-statics', + [ + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/@types-hoist-non-react-statics-npm-3.3.1-c0081332b2-16ab4c45d4.zip/node_modules/@types/hoist-non-react-statics/', + packageDependencies: [ + ['@types/hoist-non-react-statics', 'npm:3.3.1'], + ['@types/react', 'npm:16.9.43'], + ['hoist-non-react-statics', 'npm:3.3.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/http-cache-semantics', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/@types-http-cache-semantics-npm-4.0.0-000c9dc8e0-e16fae56d4.zip/node_modules/@types/http-cache-semantics/', + packageDependencies: [ + ['@types/http-cache-semantics', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/inquirer', + [ + [ + 'npm:6.5.0', + { + packageLocation: + './.yarn/cache/@types-inquirer-npm-6.5.0-384e809dad-29a6b2db1d.zip/node_modules/@types/inquirer/', + packageDependencies: [ + ['@types/inquirer', 'npm:6.5.0'], + ['@types/through', 'npm:0.0.30'], + ['rxjs', 'npm:6.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/istanbul-lib-coverage', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/@types-istanbul-lib-coverage-npm-2.0.3-67a37eb00a-d6f6dbf66d.zip/node_modules/@types/istanbul-lib-coverage/', + packageDependencies: [ + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/istanbul-lib-report', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/@types-istanbul-lib-report-npm-3.0.0-50de3e6b3b-78aa9f859b.zip/node_modules/@types/istanbul-lib-report/', + packageDependencies: [ + ['@types/istanbul-lib-report', 'npm:3.0.0'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/istanbul-reports', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/@types-istanbul-reports-npm-1.1.2-4f435a3d0f-92bd1f76a4.zip/node_modules/@types/istanbul-reports/', + packageDependencies: [ + ['@types/istanbul-reports', 'npm:1.1.2'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['@types/istanbul-lib-report', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/@types-istanbul-reports-npm-3.0.0-e6fb7a309c-8aee794ea2.zip/node_modules/@types/istanbul-reports/', + packageDependencies: [ + ['@types/istanbul-reports', 'npm:3.0.0'], + ['@types/istanbul-lib-report', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/jest', + [ + [ + 'npm:26.0.4', + { + packageLocation: + './.yarn/cache/@types-jest-npm-26.0.4-2789c10ba6-f815792ecc.zip/node_modules/@types/jest/', + packageDependencies: [ + ['@types/jest', 'npm:26.0.4'], + ['jest-diff', 'npm:25.5.0'], + ['pretty-format', 'npm:25.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.0.7', + { + packageLocation: + './.yarn/cache/@types-jest-npm-26.0.7-1410edc6d4-9c54f6cdce.zip/node_modules/@types/jest/', + packageDependencies: [ + ['@types/jest', 'npm:26.0.7'], + ['jest-diff', 'npm:25.5.0'], + ['pretty-format', 'npm:25.5.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/js-cookie', + [ + [ + 'npm:2.2.6', + { + packageLocation: + './.yarn/cache/@types-js-cookie-npm-2.2.6-dd551f922c-08d3a2a014.zip/node_modules/@types/js-cookie/', + packageDependencies: [['@types/js-cookie', 'npm:2.2.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/js-yaml', + [ + [ + 'npm:3.12.5', + { + packageLocation: + './.yarn/cache/@types-js-yaml-npm-3.12.5-9b6b585722-82ca4b40ee.zip/node_modules/@types/js-yaml/', + packageDependencies: [['@types/js-yaml', 'npm:3.12.5']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/@types-js-yaml-npm-4.0.0-a67e683a65-7a4431db30.zip/node_modules/@types/js-yaml/', + packageDependencies: [['@types/js-yaml', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/json-schema', + [ + [ + 'npm:7.0.5', + { + packageLocation: + './.yarn/cache/@types-json-schema-npm-7.0.5-6c7647c88d-6290f9fe93.zip/node_modules/@types/json-schema/', + packageDependencies: [['@types/json-schema', 'npm:7.0.5']], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.7', + { + packageLocation: + './.yarn/cache/@types-json-schema-npm-7.0.7-95fb8178d7-b9d2c509fa.zip/node_modules/@types/json-schema/', + packageDependencies: [['@types/json-schema', 'npm:7.0.7']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/jsonwebtoken', + [ + [ + 'npm:8.5.0', + { + packageLocation: + './.yarn/cache/@types-jsonwebtoken-npm-8.5.0-9d7d29ea0b-d1a6b28f82.zip/node_modules/@types/jsonwebtoken/', + packageDependencies: [ + ['@types/jsonwebtoken', 'npm:8.5.0'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/keyv', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/@types-keyv-npm-3.1.1-779a80f2c7-3aaf557d5b.zip/node_modules/@types/keyv/', + packageDependencies: [ + ['@types/keyv', 'npm:3.1.1'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/listr', + [ + [ + 'npm:0.14.2', + { + packageLocation: + './.yarn/cache/@types-listr-npm-0.14.2-b7d234532c-0143d8b25f.zip/node_modules/@types/listr/', + packageDependencies: [ + ['@types/listr', 'npm:0.14.2'], + ['@types/node', 'npm:14.0.27'], + ['rxjs', 'npm:6.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lodash', + [ + [ + 'npm:4.14.158', + { + packageLocation: + './.yarn/cache/@types-lodash-npm-4.14.158-ddc174121c-edee47e7db.zip/node_modules/@types/lodash/', + packageDependencies: [['@types/lodash', 'npm:4.14.158']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.14.161', + { + packageLocation: + './.yarn/cache/@types-lodash-npm-4.14.161-3f926592cc-c3657517da.zip/node_modules/@types/lodash/', + packageDependencies: [['@types/lodash', 'npm:4.14.161']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.14.165', + { + packageLocation: + './.yarn/cache/@types-lodash-npm-4.14.165-fad4191e95-525bfc34b0.zip/node_modules/@types/lodash/', + packageDependencies: [['@types/lodash', 'npm:4.14.165']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.14.169', + { + packageLocation: + './.yarn/cache/@types-lodash-npm-4.14.169-64630f427b-a6032afed6.zip/node_modules/@types/lodash/', + packageDependencies: [['@types/lodash', 'npm:4.14.169']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lodash.camelcase', + [ + [ + 'npm:4.3.6', + { + packageLocation: + './.yarn/cache/@types-lodash.camelcase-npm-4.3.6-c67f703dab-3aca4bbcb9.zip/node_modules/@types/lodash.camelcase/', + packageDependencies: [ + ['@types/lodash.camelcase', 'npm:4.3.6'], + ['@types/lodash', 'npm:4.14.158'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lodash.get', + [ + [ + 'npm:4.4.6', + { + packageLocation: + './.yarn/cache/@types-lodash.get-npm-4.4.6-16fd48a468-f08237e3d4.zip/node_modules/@types/lodash.get/', + packageDependencies: [ + ['@types/lodash.get', 'npm:4.4.6'], + ['@types/lodash', 'npm:4.14.158'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lodash.kebabcase', + [ + [ + 'npm:4.1.6', + { + packageLocation: + './.yarn/cache/@types-lodash.kebabcase-npm-4.1.6-e373626542-4f566c1e82.zip/node_modules/@types/lodash.kebabcase/', + packageDependencies: [ + ['@types/lodash.kebabcase', 'npm:4.1.6'], + ['@types/lodash', 'npm:4.14.158'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lodash.set', + [ + [ + 'npm:4.3.6', + { + packageLocation: + './.yarn/cache/@types-lodash.set-npm-4.3.6-76bc60f272-04a52fea04.zip/node_modules/@types/lodash.set/', + packageDependencies: [ + ['@types/lodash.set', 'npm:4.3.6'], + ['@types/lodash', 'npm:4.14.158'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lodash.upperfirst', + [ + [ + 'npm:4.3.6', + { + packageLocation: + './.yarn/cache/@types-lodash.upperfirst-npm-4.3.6-36a7d840dc-0f8c8120e6.zip/node_modules/@types/lodash.upperfirst/', + packageDependencies: [ + ['@types/lodash.upperfirst', 'npm:4.3.6'], + ['@types/lodash', 'npm:4.14.158'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/lru-cache', + [ + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/@types-lru-cache-npm-5.1.0-eea307985c-55bffcbc95.zip/node_modules/@types/lru-cache/', + packageDependencies: [['@types/lru-cache', 'npm:5.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/mdast', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/@types-mdast-npm-3.0.3-3eaccff045-d271df999e.zip/node_modules/@types/mdast/', + packageDependencies: [ + ['@types/mdast', 'npm:3.0.3'], + ['@types/unist', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/mime', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/@types-mime-npm-2.0.3-809d6f0e0f-6df548a912.zip/node_modules/@types/mime/', + packageDependencies: [['@types/mime', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/minimatch', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/@types-minimatch-npm-3.0.3-c8b0625f84-672ccdac19.zip/node_modules/@types/minimatch/', + packageDependencies: [['@types/minimatch', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/node', + [ + [ + 'npm:13.13.15', + { + packageLocation: + './.yarn/cache/@types-node-npm-13.13.15-7b0338b527-767eefa702.zip/node_modules/@types/node/', + packageDependencies: [['@types/node', 'npm:13.13.15']], + linkType: 'HARD', + }, + ], + [ + 'npm:14.0.27', + { + packageLocation: + './.yarn/cache/@types-node-npm-14.0.27-d33df6dc81-54ecf408eb.zip/node_modules/@types/node/', + packageDependencies: [['@types/node', 'npm:14.0.27']], + linkType: 'HARD', + }, + ], + [ + 'npm:14.14.31', + { + packageLocation: + './.yarn/cache/@types-node-npm-14.14.31-4f1a9dff64-635dc8a089.zip/node_modules/@types/node/', + packageDependencies: [['@types/node', 'npm:14.14.31']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/normalize-package-data', + [ + [ + 'npm:2.4.0', + { + packageLocation: + './.yarn/cache/@types-normalize-package-data-npm-2.4.0-ed928aaaa8-6d077e73be.zip/node_modules/@types/normalize-package-data/', + packageDependencies: [ + ['@types/normalize-package-data', 'npm:2.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/parse-json', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-4a8f720afa.zip/node_modules/@types/parse-json/', + packageDependencies: [['@types/parse-json', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/prettier', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/@types-prettier-npm-2.0.2-6cb7f49b31-f661ba2c63.zip/node_modules/@types/prettier/', + packageDependencies: [['@types/prettier', 'npm:2.0.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/@types-prettier-npm-2.2.1-bc35c4da60-9dc257dfc5.zip/node_modules/@types/prettier/', + packageDependencies: [['@types/prettier', 'npm:2.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/prop-types', + [ + [ + 'npm:15.7.3', + { + packageLocation: + './.yarn/cache/@types-prop-types-npm-15.7.3-084e0015c6-bd0eab69d5.zip/node_modules/@types/prop-types/', + packageDependencies: [['@types/prop-types', 'npm:15.7.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/q', + [ + [ + 'npm:1.5.4', + { + packageLocation: + './.yarn/cache/@types-q-npm-1.5.4-af8ca8cb0d-1a19cf2c41.zip/node_modules/@types/q/', + packageDependencies: [['@types/q', 'npm:1.5.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/qs', + [ + [ + 'npm:6.9.4', + { + packageLocation: + './.yarn/cache/@types-qs-npm-6.9.4-259b993015-152d2431f7.zip/node_modules/@types/qs/', + packageDependencies: [['@types/qs', 'npm:6.9.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/range-parser', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/@types-range-parser-npm-1.2.3-c06253b351-092fabae0e.zip/node_modules/@types/range-parser/', + packageDependencies: [['@types/range-parser', 'npm:1.2.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/react', + [ + [ + 'npm:16.9.43', + { + packageLocation: + './.yarn/cache/@types-react-npm-16.9.43-ffdd276940-b9d4491463.zip/node_modules/@types/react/', + packageDependencies: [ + ['@types/react', 'npm:16.9.43'], + ['@types/prop-types', 'npm:15.7.3'], + ['csstype', 'npm:2.6.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/react-dom', + [ + [ + 'npm:16.9.8', + { + packageLocation: + './.yarn/cache/@types-react-dom-npm-16.9.8-9dde59da5d-53a223c026.zip/node_modules/@types/react-dom/', + packageDependencies: [ + ['@types/react-dom', 'npm:16.9.8'], + ['@types/react', 'npm:16.9.43'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/react-native', + [ + [ + 'npm:0.63.8', + { + packageLocation: + './.yarn/cache/@types-react-native-npm-0.63.8-d7b1bee3d1-a4b5d5ab79.zip/node_modules/@types/react-native/', + packageDependencies: [ + ['@types/react-native', 'npm:0.63.8'], + ['@types/react', 'npm:16.9.43'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/react-select', + [ + [ + 'npm:2.0.19', + { + packageLocation: + './.yarn/cache/@types-react-select-npm-2.0.19-b26a60274d-1faa59a991.zip/node_modules/@types/react-select/', + packageDependencies: [ + ['@types/react-select', 'npm:2.0.19'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', 'npm:16.9.8'], + ['@types/react-transition-group', 'npm:4.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/react-transition-group', + [ + [ + 'npm:4.4.0', + { + packageLocation: + './.yarn/cache/@types-react-transition-group-npm-4.4.0-dc81edfd45-b761f70623.zip/node_modules/@types/react-transition-group/', + packageDependencies: [ + ['@types/react-transition-group', 'npm:4.4.0'], + ['@types/react', 'npm:16.9.43'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/resolve', + [ + [ + 'npm:1.17.1', + { + packageLocation: + './.yarn/cache/@types-resolve-npm-1.17.1-9a8396bef2-8e72a73574.zip/node_modules/@types/resolve/', + packageDependencies: [ + ['@types/resolve', 'npm:1.17.1'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/responselike', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/@types-responselike-npm-1.0.0-85dd08af42-e6e6613c80.zip/node_modules/@types/responselike/', + packageDependencies: [ + ['@types/responselike', 'npm:1.0.0'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/serve-static', + [ + [ + 'npm:1.13.5', + { + packageLocation: + './.yarn/cache/@types-serve-static-npm-1.13.5-9e6c8c7261-1d4e222e24.zip/node_modules/@types/serve-static/', + packageDependencies: [ + ['@types/serve-static', 'npm:1.13.5'], + ['@types/express-serve-static-core', 'npm:4.17.9'], + ['@types/mime', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/stack-utils', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/@types-stack-utils-npm-1.0.1-e2f2f7a882-59738e4b71.zip/node_modules/@types/stack-utils/', + packageDependencies: [['@types/stack-utils', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/@types-stack-utils-npm-2.0.0-8ded8461bc-662312302e.zip/node_modules/@types/stack-utils/', + packageDependencies: [['@types/stack-utils', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/styled-components', + [ + [ + 'npm:5.1.3', + { + packageLocation: + './.yarn/cache/@types-styled-components-npm-5.1.3-a937650ae0-094b368f2c.zip/node_modules/@types/styled-components/', + packageDependencies: [ + ['@types/styled-components', 'npm:5.1.3'], + ['@types/hoist-non-react-statics', 'npm:3.3.1'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-native', 'npm:0.63.8'], + ['csstype', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/through', + [ + [ + 'npm:0.0.30', + { + packageLocation: + './.yarn/cache/@types-through-npm-0.0.30-59be01cca3-67bae5cefe.zip/node_modules/@types/through/', + packageDependencies: [ + ['@types/through', 'npm:0.0.30'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/unist', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/@types-unist-npm-2.0.3-4b26dedfde-42e0dc4ac7.zip/node_modules/@types/unist/', + packageDependencies: [['@types/unist', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/websocket', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/@types-websocket-npm-1.0.1-3e28e1647f-93d407970a.zip/node_modules/@types/websocket/', + packageDependencies: [ + ['@types/websocket', 'npm:1.0.1'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/ws', + [ + [ + 'npm:7.2.6', + { + packageLocation: + './.yarn/cache/@types-ws-npm-7.2.6-274c888b6d-2f7c358c4b.zip/node_modules/@types/ws/', + packageDependencies: [ + ['@types/ws', 'npm:7.2.6'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/yargs', + [ + [ + 'npm:15.0.5', + { + packageLocation: + './.yarn/cache/@types-yargs-npm-15.0.5-18a2128a57-2133c8cb58.zip/node_modules/@types/yargs/', + packageDependencies: [ + ['@types/yargs', 'npm:15.0.5'], + ['@types/yargs-parser', 'npm:15.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/yargs-parser', + [ + [ + 'npm:15.0.0', + { + packageLocation: + './.yarn/cache/@types-yargs-parser-npm-15.0.0-db1d59832c-74bfaefde9.zip/node_modules/@types/yargs-parser/', + packageDependencies: [['@types/yargs-parser', 'npm:15.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/yup', + [ + [ + 'npm:0.29.10', + { + packageLocation: + './.yarn/cache/@types-yup-npm-0.29.10-687f791d10-6103d7a17e.zip/node_modules/@types/yup/', + packageDependencies: [['@types/yup', 'npm:0.29.10']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.29.11', + { + packageLocation: + './.yarn/cache/@types-yup-npm-0.29.11-217570c70e-2bc0528a6a.zip/node_modules/@types/yup/', + packageDependencies: [['@types/yup', 'npm:0.29.11']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.29.7', + { + packageLocation: + './.yarn/cache/@types-yup-npm-0.29.7-d69920410c-f23dda1240.zip/node_modules/@types/yup/', + packageDependencies: [['@types/yup', 'npm:0.29.7']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@types/zen-observable', + [ + [ + 'npm:0.8.1', + { + packageLocation: + './.yarn/cache/@types-zen-observable-npm-0.8.1-6bd035023b-4a58609be8.zip/node_modules/@types/zen-observable/', + packageDependencies: [['@types/zen-observable', 'npm:0.8.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@urql/core', + [ + [ + 'npm:1.12.3', + { + packageLocation: + './.yarn/cache/@urql-core-npm-1.12.3-c3b533fb6c-b4343868c6.zip/node_modules/@urql/core/', + packageDependencies: [['@urql/core', 'npm:1.12.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3', + { + packageLocation: + './.yarn/$$virtual/@urql-core-virtual-fbadc4ecbc/0/cache/@urql-core-npm-1.12.3-c3b533fb6c-b4343868c6.zip/node_modules/@urql/core/', + packageDependencies: [ + [ + '@urql/core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['wonka', 'npm:4.0.14'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/ast', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-ast-npm-1.9.0-8e3ce7800f-25d93900cc.zip/node_modules/@webassemblyjs/ast/', + packageDependencies: [ + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-module-context', 'npm:1.9.0'], + ['@webassemblyjs/helper-wasm-bytecode', 'npm:1.9.0'], + ['@webassemblyjs/wast-parser', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/floating-point-hex-parser', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-floating-point-hex-parser-npm-1.9.0-0994d081ef-af9e11a688.zip/node_modules/@webassemblyjs/floating-point-hex-parser/', + packageDependencies: [ + ['@webassemblyjs/floating-point-hex-parser', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-api-error', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-api-error-npm-1.9.0-ddb267a22d-ae7b9703ec.zip/node_modules/@webassemblyjs/helper-api-error/', + packageDependencies: [ + ['@webassemblyjs/helper-api-error', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-buffer', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-buffer-npm-1.9.0-6bac0f07b8-94bcf27ccf.zip/node_modules/@webassemblyjs/helper-buffer/', + packageDependencies: [ + ['@webassemblyjs/helper-buffer', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-code-frame', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-code-frame-npm-1.9.0-81d2d67e07-008fc534f2.zip/node_modules/@webassemblyjs/helper-code-frame/', + packageDependencies: [ + ['@webassemblyjs/helper-code-frame', 'npm:1.9.0'], + ['@webassemblyjs/wast-printer', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-fsm', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-fsm-npm-1.9.0-142437751c-3181e69c16.zip/node_modules/@webassemblyjs/helper-fsm/', + packageDependencies: [ + ['@webassemblyjs/helper-fsm', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-module-context', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-module-context-npm-1.9.0-f61a345630-9aa715a8d0.zip/node_modules/@webassemblyjs/helper-module-context/', + packageDependencies: [ + ['@webassemblyjs/helper-module-context', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-wasm-bytecode', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-wasm-bytecode-npm-1.9.0-956a55196e-27ba07f495.zip/node_modules/@webassemblyjs/helper-wasm-bytecode/', + packageDependencies: [ + ['@webassemblyjs/helper-wasm-bytecode', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/helper-wasm-section', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-helper-wasm-section-npm-1.9.0-bfcf6c79b2-0e2957efc4.zip/node_modules/@webassemblyjs/helper-wasm-section/', + packageDependencies: [ + ['@webassemblyjs/helper-wasm-section', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-buffer', 'npm:1.9.0'], + ['@webassemblyjs/helper-wasm-bytecode', 'npm:1.9.0'], + ['@webassemblyjs/wasm-gen', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/ieee754', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-ieee754-npm-1.9.0-81eeb71bbf-1474a87d86.zip/node_modules/@webassemblyjs/ieee754/', + packageDependencies: [ + ['@webassemblyjs/ieee754', 'npm:1.9.0'], + ['@xtuc/ieee754', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/leb128', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-leb128-npm-1.9.0-4ae214ef2b-af49765d06.zip/node_modules/@webassemblyjs/leb128/', + packageDependencies: [ + ['@webassemblyjs/leb128', 'npm:1.9.0'], + ['@xtuc/long', 'npm:4.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/utf8', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-utf8-npm-1.9.0-15e2572ae2-172fd362aa.zip/node_modules/@webassemblyjs/utf8/', + packageDependencies: [['@webassemblyjs/utf8', 'npm:1.9.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/wasm-edit', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-wasm-edit-npm-1.9.0-d249ae2fdf-16016c9ef5.zip/node_modules/@webassemblyjs/wasm-edit/', + packageDependencies: [ + ['@webassemblyjs/wasm-edit', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-buffer', 'npm:1.9.0'], + ['@webassemblyjs/helper-wasm-bytecode', 'npm:1.9.0'], + ['@webassemblyjs/helper-wasm-section', 'npm:1.9.0'], + ['@webassemblyjs/wasm-gen', 'npm:1.9.0'], + ['@webassemblyjs/wasm-opt', 'npm:1.9.0'], + ['@webassemblyjs/wasm-parser', 'npm:1.9.0'], + ['@webassemblyjs/wast-printer', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/wasm-gen', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-wasm-gen-npm-1.9.0-f4562ce247-1afcebfd12.zip/node_modules/@webassemblyjs/wasm-gen/', + packageDependencies: [ + ['@webassemblyjs/wasm-gen', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-wasm-bytecode', 'npm:1.9.0'], + ['@webassemblyjs/ieee754', 'npm:1.9.0'], + ['@webassemblyjs/leb128', 'npm:1.9.0'], + ['@webassemblyjs/utf8', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/wasm-opt', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-wasm-opt-npm-1.9.0-e4c3dd00c8-2ce89f206e.zip/node_modules/@webassemblyjs/wasm-opt/', + packageDependencies: [ + ['@webassemblyjs/wasm-opt', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-buffer', 'npm:1.9.0'], + ['@webassemblyjs/wasm-gen', 'npm:1.9.0'], + ['@webassemblyjs/wasm-parser', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/wasm-parser', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-wasm-parser-npm-1.9.0-a1515dd8ce-b8cb346c9b.zip/node_modules/@webassemblyjs/wasm-parser/', + packageDependencies: [ + ['@webassemblyjs/wasm-parser', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-api-error', 'npm:1.9.0'], + ['@webassemblyjs/helper-wasm-bytecode', 'npm:1.9.0'], + ['@webassemblyjs/ieee754', 'npm:1.9.0'], + ['@webassemblyjs/leb128', 'npm:1.9.0'], + ['@webassemblyjs/utf8', 'npm:1.9.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/wast-parser', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-wast-parser-npm-1.9.0-482b548b88-eaa0140a44.zip/node_modules/@webassemblyjs/wast-parser/', + packageDependencies: [ + ['@webassemblyjs/wast-parser', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/floating-point-hex-parser', 'npm:1.9.0'], + ['@webassemblyjs/helper-api-error', 'npm:1.9.0'], + ['@webassemblyjs/helper-code-frame', 'npm:1.9.0'], + ['@webassemblyjs/helper-fsm', 'npm:1.9.0'], + ['@xtuc/long', 'npm:4.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@webassemblyjs/wast-printer', + [ + [ + 'npm:1.9.0', + { + packageLocation: + './.yarn/cache/@webassemblyjs-wast-printer-npm-1.9.0-1fa1d3e613-9f013b27e2.zip/node_modules/@webassemblyjs/wast-printer/', + packageDependencies: [ + ['@webassemblyjs/wast-printer', 'npm:1.9.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/wast-parser', 'npm:1.9.0'], + ['@xtuc/long', 'npm:4.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@wry/context', + [ + [ + 'npm:0.5.2', + { + packageLocation: + './.yarn/cache/@wry-context-npm-0.5.2-d22b37e5d8-6547fb0eb5.zip/node_modules/@wry/context/', + packageDependencies: [ + ['@wry/context', 'npm:0.5.2'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@wry/equality', + [ + [ + 'npm:0.1.11', + { + packageLocation: + './.yarn/cache/@wry-equality-npm-0.1.11-e3cf830190-3d1da57999.zip/node_modules/@wry/equality/', + packageDependencies: [ + ['@wry/equality', 'npm:0.1.11'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/@wry-equality-npm-0.2.0-db7d0ba29d-ddd217fbef.zip/node_modules/@wry/equality/', + packageDependencies: [ + ['@wry/equality', 'npm:0.2.0'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@xstate/react', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/@xstate-react-npm-1.0.1-4fe3645829-cf3312e9bd.zip/node_modules/@xstate/react/', + packageDependencies: [['@xstate/react', 'npm:1.0.1']], + linkType: 'SOFT', + }, + ], + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/@xstate-react-npm-1.1.0-074408179e-3caa98ba54.zip/node_modules/@xstate/react/', + packageDependencies: [['@xstate/react', 'npm:1.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1', + { + packageLocation: + './.yarn/$$virtual/@xstate-react-virtual-89f4f6ff06/0/cache/@xstate-react-npm-1.0.1-4fe3645829-cf3312e9bd.zip/node_modules/@xstate/react/', + packageDependencies: [ + [ + '@xstate/react', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/xstate', null], + ['@types/xstate__fsm', null], + ['@xstate/fsm', null], + ['react', 'npm:16.13.1'], + [ + 'use-isomorphic-layout-effect', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0', + ], + [ + 'use-subscription', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1', + ], + ['xstate', 'npm:4.13.0'], + ], + packagePeers: [ + '@types/react', + '@types/xstate', + '@types/xstate__fsm', + '@xstate/fsm', + 'react', + 'xstate', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0', + { + packageLocation: + './.yarn/$$virtual/@xstate-react-virtual-3a322cd473/0/cache/@xstate-react-npm-1.1.0-074408179e-3caa98ba54.zip/node_modules/@xstate/react/', + packageDependencies: [ + [ + '@xstate/react', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/xstate', null], + ['@types/xstate__fsm', null], + ['@xstate/fsm', null], + ['react', 'npm:16.13.1'], + [ + 'use-isomorphic-layout-effect', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0', + ], + [ + 'use-subscription', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1', + ], + ['xstate', 'npm:4.15.1'], + ], + packagePeers: [ + '@types/react', + '@types/xstate', + '@types/xstate__fsm', + '@xstate/fsm', + 'react', + 'xstate', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@xtuc/ieee754', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/@xtuc-ieee754-npm-1.2.0-ec0ce4e025-65bb9c55a0.zip/node_modules/@xtuc/ieee754/', + packageDependencies: [['@xtuc/ieee754', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@xtuc/long', + [ + [ + 'npm:4.2.2', + { + packageLocation: + './.yarn/cache/@xtuc-long-npm-4.2.2-37236e6d72-ec09a359f9.zip/node_modules/@xtuc/long/', + packageDependencies: [['@xtuc/long', 'npm:4.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/core', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/@yarnpkg-core-npm-2.1.1-6708e55dd7-d01e24bde1.zip/node_modules/@yarnpkg/core/', + packageDependencies: [ + ['@yarnpkg/core', 'npm:2.1.1'], + ['@arcanis/slice-ansi', 'npm:1.0.2'], + ['@yarnpkg/fslib', 'npm:2.1.0'], + ['@yarnpkg/json-proxy', 'npm:2.1.0'], + ['@yarnpkg/libzip', 'npm:2.1.0'], + ['@yarnpkg/parsers', 'npm:2.1.0'], + ['@yarnpkg/pnp', 'npm:2.1.0'], + ['@yarnpkg/shell', 'npm:2.1.0'], + ['camelcase', 'npm:5.3.1'], + ['chalk', 'npm:3.0.0'], + ['ci-info', 'npm:2.0.0'], + ['clipanion', 'npm:2.4.4'], + ['cross-spawn', 'npm:7.0.3'], + ['diff', 'npm:4.0.2'], + ['globby', 'npm:10.0.2'], + ['got', 'npm:11.5.1'], + ['json-file-plus', 'npm:3.3.1'], + ['logic-solver', 'npm:2.0.1'], + ['micromatch', 'npm:4.0.2'], + ['mkdirp', 'npm:0.5.5'], + ['p-limit', 'npm:2.3.0'], + ['pluralize', 'npm:7.0.0'], + ['pretty-bytes', 'npm:5.3.0'], + ['semver', 'npm:7.3.2'], + ['stream-to-promise', 'npm:2.2.0'], + ['tar', 'npm:4.4.13'], + ['tslib', 'npm:1.13.0'], + ['tunnel', 'npm:0.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/fslib', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-fslib-npm-2.1.0-893912cd38-5a77427f2b.zip/node_modules/@yarnpkg/fslib/', + packageDependencies: [ + ['@yarnpkg/fslib', 'npm:2.1.0'], + ['@yarnpkg/libzip', 'npm:2.1.0'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/json-proxy', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-json-proxy-npm-2.1.0-2c9f0a202a-9c3877ca03.zip/node_modules/@yarnpkg/json-proxy/', + packageDependencies: [ + ['@yarnpkg/json-proxy', 'npm:2.1.0'], + ['@yarnpkg/fslib', 'npm:2.1.0'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/libzip', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-libzip-npm-2.1.0-75a28b18e6-886d4a269a.zip/node_modules/@yarnpkg/libzip/', + packageDependencies: [ + ['@yarnpkg/libzip', 'npm:2.1.0'], + ['@types/emscripten', 'npm:1.39.4'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/parsers', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-parsers-npm-2.1.0-bbaba9d471-3cd4e35435.zip/node_modules/@yarnpkg/parsers/', + packageDependencies: [ + ['@yarnpkg/parsers', 'npm:2.1.0'], + ['js-yaml', 'npm:3.14.0'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/pnp', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-pnp-npm-2.1.0-99304d96cb-610f875f59.zip/node_modules/@yarnpkg/pnp/', + packageDependencies: [ + ['@yarnpkg/pnp', 'npm:2.1.0'], + ['@types/node', 'npm:13.13.15'], + ['@yarnpkg/fslib', 'npm:2.1.0'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/pnpify', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-pnpify-npm-2.1.0-ba7c47ca3b-334ce4cc6c.zip/node_modules/@yarnpkg/pnpify/', + packageDependencies: [['@yarnpkg/pnpify', 'npm:2.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0', + { + packageLocation: + './.yarn/$$virtual/@yarnpkg-pnpify-virtual-5a0584e3de/0/cache/@yarnpkg-pnpify-npm-2.1.0-ba7c47ca3b-334ce4cc6c.zip/node_modules/@yarnpkg/pnpify/', + packageDependencies: [ + [ + '@yarnpkg/pnpify', + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0', + ], + ['@types/eslint', null], + ['@types/typescript', null], + ['@yarnpkg/core', 'npm:2.1.1'], + ['@yarnpkg/fslib', 'npm:2.1.0'], + ['@yarnpkg/parsers', 'npm:2.1.0'], + ['chalk', 'npm:3.0.0'], + ['clipanion', 'npm:2.4.4'], + ['comment-json', 'npm:2.4.2'], + ['eslint', 'npm:6.8.0'], + ['lodash', 'npm:4.17.19'], + ['tslib', 'npm:1.13.0'], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ], + packagePeers: [ + '@types/eslint', + '@types/typescript', + 'eslint', + 'typescript', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + '@yarnpkg/shell', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/@yarnpkg-shell-npm-2.1.0-c8669eea76-2e0b808965.zip/node_modules/@yarnpkg/shell/', + packageDependencies: [ + ['@yarnpkg/shell', 'npm:2.1.0'], + ['@yarnpkg/fslib', 'npm:2.1.0'], + ['@yarnpkg/parsers', 'npm:2.1.0'], + ['clipanion', 'npm:2.4.4'], + ['cross-spawn', 'npm:7.0.3'], + ['fast-glob', 'npm:3.2.4'], + ['stream-buffers', 'npm:3.0.2'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'JSONStream', + [ + [ + 'npm:1.3.5', + { + packageLocation: + './.yarn/cache/JSONStream-npm-1.3.5-1987f2e6dd-e9849f8a52.zip/node_modules/JSONStream/', + packageDependencies: [ + ['JSONStream', 'npm:1.3.5'], + ['jsonparse', 'npm:1.3.1'], + ['through', 'npm:2.3.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'abab', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/abab-npm-2.0.3-278ae51229-07bd561e87.zip/node_modules/abab/', + packageDependencies: [['abab', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.5', + { + packageLocation: + './.yarn/cache/abab-npm-2.0.5-ae8d5b629e-a42b91bd9d.zip/node_modules/abab/', + packageDependencies: [['abab', 'npm:2.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'abbrev', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/abbrev-npm-1.1.1-3659247eab-9f9236a3cc.zip/node_modules/abbrev/', + packageDependencies: [['abbrev', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'abort-controller', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/abort-controller-npm-3.0.0-2f3a9a2bcb-cc53ad8df9.zip/node_modules/abort-controller/', + packageDependencies: [ + ['abort-controller', 'npm:3.0.0'], + ['event-target-shim', 'npm:5.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'accepts', + [ + [ + 'npm:1.3.7', + { + packageLocation: + './.yarn/cache/accepts-npm-1.3.7-0dc9de65aa-2686fa30db.zip/node_modules/accepts/', + packageDependencies: [ + ['accepts', 'npm:1.3.7'], + ['mime-types', 'npm:2.1.27'], + ['negotiator', 'npm:0.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'acorn', + [ + [ + 'npm:6.4.1', + { + packageLocation: + './.yarn/cache/acorn-npm-6.4.1-77905520a8-7aa4623c6d.zip/node_modules/acorn/', + packageDependencies: [['acorn', 'npm:6.4.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:7.3.1', + { + packageLocation: + './.yarn/cache/acorn-npm-7.3.1-422605b2d6-3fa7039384.zip/node_modules/acorn/', + packageDependencies: [['acorn', 'npm:7.3.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:8.1.0', + { + packageLocation: + './.yarn/cache/acorn-npm-8.1.0-9bbab5b1e4-99ccf30832.zip/node_modules/acorn/', + packageDependencies: [['acorn', 'npm:8.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'acorn-globals', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/acorn-globals-npm-6.0.0-acbec28ad5-078ed9bc35.zip/node_modules/acorn-globals/', + packageDependencies: [ + ['acorn-globals', 'npm:6.0.0'], + ['acorn', 'npm:7.3.1'], + ['acorn-walk', 'npm:7.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'acorn-jsx', + [ + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/acorn-jsx-npm-5.2.0-4c0af33483-1247cc4b32.zip/node_modules/acorn-jsx/', + packageDependencies: [['acorn-jsx', 'npm:5.2.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:c3370c80228526bdc823c77589727bb12f010d7080bccc27a33a2dcce9848e6a7ca68b55a7a8ca98362554ae73296d381ef1ad94f002f07e2a08c76d959b5bbf#npm:5.2.0', + { + packageLocation: + './.yarn/$$virtual/acorn-jsx-virtual-150a37b7b0/0/cache/acorn-jsx-npm-5.2.0-4c0af33483-1247cc4b32.zip/node_modules/acorn-jsx/', + packageDependencies: [ + [ + 'acorn-jsx', + 'virtual:c3370c80228526bdc823c77589727bb12f010d7080bccc27a33a2dcce9848e6a7ca68b55a7a8ca98362554ae73296d381ef1ad94f002f07e2a08c76d959b5bbf#npm:5.2.0', + ], + ['@types/acorn', null], + ['acorn', 'npm:7.3.1'], + ], + packagePeers: ['@types/acorn', 'acorn'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'acorn-node', + [ + [ + 'npm:1.8.2', + { + packageLocation: + './.yarn/cache/acorn-node-npm-1.8.2-b30b72c499-a328a6ed63.zip/node_modules/acorn-node/', + packageDependencies: [ + ['acorn-node', 'npm:1.8.2'], + ['acorn', 'npm:7.3.1'], + ['acorn-walk', 'npm:7.2.0'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'acorn-walk', + [ + [ + 'npm:7.2.0', + { + packageLocation: + './.yarn/cache/acorn-walk-npm-7.2.0-5f8b515308-7b52d5d639.zip/node_modules/acorn-walk/', + packageDependencies: [['acorn-walk', 'npm:7.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'adjust-sourcemap-loader', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/adjust-sourcemap-loader-npm-2.0.0-cf1b7c6ac2-086470bacc.zip/node_modules/adjust-sourcemap-loader/', + packageDependencies: [ + ['adjust-sourcemap-loader', 'npm:2.0.0'], + ['assert', 'npm:1.4.1'], + ['camelcase', 'npm:5.0.0'], + ['loader-utils', 'npm:1.2.3'], + ['object-path', 'npm:0.11.4'], + ['regex-parser', 'npm:2.2.10'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/adjust-sourcemap-loader-npm-3.0.0-888da46170-18271da7f1.zip/node_modules/adjust-sourcemap-loader/', + packageDependencies: [ + ['adjust-sourcemap-loader', 'npm:3.0.0'], + ['loader-utils', 'npm:2.0.0'], + ['regex-parser', 'npm:2.2.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'agent-base', + [ + [ + 'npm:4.3.0', + { + packageLocation: + './.yarn/cache/agent-base-npm-4.3.0-48c7e81d60-b40b7d9675.zip/node_modules/agent-base/', + packageDependencies: [ + ['agent-base', 'npm:4.3.0'], + ['es6-promisify', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.2', + { + packageLocation: + './.yarn/cache/agent-base-npm-6.0.2-428f325a93-e77eff83e1.zip/node_modules/agent-base/', + packageDependencies: [ + ['agent-base', 'npm:6.0.2'], + [ + 'debug', + 'virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'aggregate-error', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/aggregate-error-npm-3.0.1-46f220b212-aee96f00c2.zip/node_modules/aggregate-error/', + packageDependencies: [ + ['aggregate-error', 'npm:3.0.1'], + ['clean-stack', 'npm:2.2.0'], + ['indent-string', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ajv', + [ + [ + 'npm:6.12.3', + { + packageLocation: + './.yarn/cache/ajv-npm-6.12.3-aaadf00f0f-b20a171bf3.zip/node_modules/ajv/', + packageDependencies: [ + ['ajv', 'npm:6.12.3'], + ['fast-deep-equal', 'npm:3.1.3'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['json-schema-traverse', 'npm:0.4.1'], + ['uri-js', 'npm:4.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.12.6', + { + packageLocation: + './.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-19a8f3b0a0.zip/node_modules/ajv/', + packageDependencies: [ + ['ajv', 'npm:6.12.6'], + ['fast-deep-equal', 'npm:3.1.3'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['json-schema-traverse', 'npm:0.4.1'], + ['uri-js', 'npm:4.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ajv-errors', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/ajv-errors-npm-1.0.1-32cd0b19f8-d8356aadcb.zip/node_modules/ajv-errors/', + packageDependencies: [['ajv-errors', 'npm:1.0.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:2b49db17d1e4e8854e6e7543c07eb7bc19ec9da65a1b99b9cb28e764846d419e5ecd6e057ad65249f2b928862ffd70dbf8a7c79643ccdd7c1c40cab5b59aa03f#npm:1.0.1', + { + packageLocation: + './.yarn/$$virtual/ajv-errors-virtual-917b473fab/0/cache/ajv-errors-npm-1.0.1-32cd0b19f8-d8356aadcb.zip/node_modules/ajv-errors/', + packageDependencies: [ + [ + 'ajv-errors', + 'virtual:2b49db17d1e4e8854e6e7543c07eb7bc19ec9da65a1b99b9cb28e764846d419e5ecd6e057ad65249f2b928862ffd70dbf8a7c79643ccdd7c1c40cab5b59aa03f#npm:1.0.1', + ], + ['@types/ajv', null], + ['ajv', 'npm:6.12.3'], + ], + packagePeers: ['@types/ajv', 'ajv'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ajv-keywords', + [ + [ + 'npm:3.5.2', + { + packageLocation: + './.yarn/cache/ajv-keywords-npm-3.5.2-0e391b70e2-01f26c2923.zip/node_modules/ajv-keywords/', + packageDependencies: [['ajv-keywords', 'npm:3.5.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + { + packageLocation: + './.yarn/$$virtual/ajv-keywords-virtual-3637c00b1c/0/cache/ajv-keywords-npm-3.5.2-0e391b70e2-01f26c2923.zip/node_modules/ajv-keywords/', + packageDependencies: [ + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ['@types/ajv', null], + ['ajv', 'npm:6.12.3'], + ], + packagePeers: ['@types/ajv', 'ajv'], + linkType: 'HARD', + }, + ], + [ + 'virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2', + { + packageLocation: + './.yarn/$$virtual/ajv-keywords-virtual-11d24a6cf1/0/cache/ajv-keywords-npm-3.5.2-0e391b70e2-01f26c2923.zip/node_modules/ajv-keywords/', + packageDependencies: [ + [ + 'ajv-keywords', + 'virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2', + ], + ['@types/ajv', null], + ['ajv', 'npm:6.12.6'], + ], + packagePeers: ['@types/ajv', 'ajv'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ally.js', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/ally.js-npm-1.4.1-0629987bfc-bf1cda2f02.zip/node_modules/ally.js/', + packageDependencies: [ + ['ally.js', 'npm:1.4.1'], + ['css.escape', 'npm:1.5.1'], + ['platform', 'npm:1.3.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'alphanum-sort', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/alphanum-sort-npm-1.0.2-78a592b492-28bad91719.zip/node_modules/alphanum-sort/', + packageDependencies: [['alphanum-sort', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'anser', + [ + [ + 'npm:1.4.9', + { + packageLocation: + './.yarn/cache/anser-npm-1.4.9-6b6677f7c6-39acb65797.zip/node_modules/anser/', + packageDependencies: [['anser', 'npm:1.4.9']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ansi', + [ + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/ansi-npm-0.3.1-ba86b03451-f06702313d.zip/node_modules/ansi/', + packageDependencies: [['ansi', 'npm:0.3.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ansi-align', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/ansi-align-npm-2.0.0-d2b1b30146-acd73a693a.zip/node_modules/ansi-align/', + packageDependencies: [ + ['ansi-align', 'npm:2.0.0'], + ['string-width', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/ansi-align-npm-3.0.0-2f770647c2-e6bea1d610.zip/node_modules/ansi-align/', + packageDependencies: [ + ['ansi-align', 'npm:3.0.0'], + ['string-width', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ansi-escapes', + [ + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/ansi-escapes-npm-1.4.0-9d1312ffbf-c0e83fa29b.zip/node_modules/ansi-escapes/', + packageDependencies: [['ansi-escapes', 'npm:1.4.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/ansi-escapes-npm-3.2.0-a9d573100e-0a106c53c7.zip/node_modules/ansi-escapes/', + packageDependencies: [['ansi-escapes', 'npm:3.2.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.3.1', + { + packageLocation: + './.yarn/cache/ansi-escapes-npm-4.3.1-f4aad61b5b-bcb39e57bd.zip/node_modules/ansi-escapes/', + packageDependencies: [ + ['ansi-escapes', 'npm:4.3.1'], + ['type-fest', 'npm:0.11.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ansi-regex', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/ansi-regex-npm-2.1.1-ddd24d102b-93a53c923f.zip/node_modules/ansi-regex/', + packageDependencies: [['ansi-regex', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/ansi-regex-npm-3.0.0-be0b845911-2e3c40d429.zip/node_modules/ansi-regex/', + packageDependencies: [['ansi-regex', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/ansi-regex-npm-4.1.0-4a7d8413fe-53b6fe447c.zip/node_modules/ansi-regex/', + packageDependencies: [['ansi-regex', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/ansi-regex-npm-5.0.0-9c076068d9-cbd9b5c9db.zip/node_modules/ansi-regex/', + packageDependencies: [['ansi-regex', 'npm:5.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ansi-styles', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/ansi-styles-npm-2.2.1-f3297e782c-108c749637.zip/node_modules/ansi-styles/', + packageDependencies: [['ansi-styles', 'npm:2.2.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.1', + { + packageLocation: + './.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-456e1c23d9.zip/node_modules/ansi-styles/', + packageDependencies: [ + ['ansi-styles', 'npm:3.2.1'], + ['color-convert', 'npm:1.9.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.1', + { + packageLocation: + './.yarn/cache/ansi-styles-npm-4.2.1-de50ec308d-c8c007d5da.zip/node_modules/ansi-styles/', + packageDependencies: [ + ['ansi-styles', 'npm:4.2.1'], + ['@types/color-name', 'npm:1.1.1'], + ['color-convert', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'any-observable', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/any-observable-npm-0.3.0-4832f4f3ed-8051aaf7b9.zip/node_modules/any-observable/', + packageDependencies: [['any-observable', 'npm:0.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:d72f438b4b2c02cba8c9422efe9af9e0755567b346f12e7152df53f6f348d8a2c444986b3521966cafae9d9dbb5b3e0c8ac16137f1c4251596b45bdf8129a3cf#npm:0.3.0', + { + packageLocation: + './.yarn/$$virtual/any-observable-virtual-d1521fbe82/0/cache/any-observable-npm-0.3.0-4832f4f3ed-8051aaf7b9.zip/node_modules/any-observable/', + packageDependencies: [ + [ + 'any-observable', + 'virtual:d72f438b4b2c02cba8c9422efe9af9e0755567b346f12e7152df53f6f348d8a2c444986b3521966cafae9d9dbb5b3e0c8ac16137f1c4251596b45bdf8129a3cf#npm:0.3.0', + ], + ['rxjs', 'npm:6.6.0'], + ['zenObservable', null], + ], + packagePeers: ['rxjs', 'zenObservable'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'any-promise', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/any-promise-npm-1.3.0-f34eeaa7e7-e829425e4a.zip/node_modules/any-promise/', + packageDependencies: [['any-promise', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'anymatch', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/anymatch-npm-2.0.0-f2fcb92f28-9e495910cc.zip/node_modules/anymatch/', + packageDependencies: [ + ['anymatch', 'npm:2.0.0'], + ['micromatch', 'npm:3.1.10'], + ['normalize-path', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/anymatch-npm-3.1.1-7dcfa6178a-cf61bbaf7f.zip/node_modules/anymatch/', + packageDependencies: [ + ['anymatch', 'npm:3.1.1'], + ['normalize-path', 'npm:3.0.0'], + ['picomatch', 'npm:2.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'apollo-link', + [ + [ + 'npm:1.2.14', + { + packageLocation: + './.yarn/cache/apollo-link-npm-1.2.14-74f0ba01f9-5cc96cd6df.zip/node_modules/apollo-link/', + packageDependencies: [['apollo-link', 'npm:1.2.14']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:1.2.14', + { + packageLocation: + './.yarn/$$virtual/apollo-link-virtual-7061219c31/0/cache/apollo-link-npm-1.2.14-74f0ba01f9-5cc96cd6df.zip/node_modules/apollo-link/', + packageDependencies: [ + [ + 'apollo-link', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:1.2.14', + ], + ['@types/graphql', null], + [ + 'apollo-utilities', + 'virtual:7061219c319bef59bce9b091ecd412f2b806f9949302f75d78ecdd2605eb6ee74208dde38595a702b510b7be1c809b9976547a1c28f0497c19f08cb710d68d9d#npm:1.3.4', + ], + ['graphql', 'npm:15.3.0'], + ['ts-invariant', 'npm:0.4.4'], + ['tslib', 'npm:1.13.0'], + ['zen-observable-ts', 'npm:0.8.21'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'apollo-upload-client', + [ + [ + 'npm:14.1.1', + { + packageLocation: + './.yarn/cache/apollo-upload-client-npm-14.1.1-b984563e20-d1e38a7c81.zip/node_modules/apollo-upload-client/', + packageDependencies: [['apollo-upload-client', 'npm:14.1.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:14.1.1', + { + packageLocation: + './.yarn/$$virtual/apollo-upload-client-virtual-b9b0e1dd83/0/cache/apollo-upload-client-npm-14.1.1-b984563e20-d1e38a7c81.zip/node_modules/apollo-upload-client/', + packageDependencies: [ + [ + 'apollo-upload-client', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:14.1.1', + ], + [ + '@apollo/client', + 'virtual:b9b0e1dd832f3eefdbdae1b04f9c91400316688efbe29541e6d687eb030bcce67b26083f769282e2f54c6b6ad7b02a34d34e6a5ae386ad9d99aef1f7f903bc24#npm:3.1.4', + ], + ['@babel/runtime', 'npm:7.10.5'], + ['@types/graphql', null], + ['@types/subscriptions-transport-ws', null], + ['extract-files', 'npm:9.0.0'], + ['graphql', 'npm:15.3.0'], + [ + 'subscriptions-transport-ws', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18', + ], + ], + packagePeers: [ + '@types/graphql', + '@types/subscriptions-transport-ws', + 'graphql', + 'subscriptions-transport-ws', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'apollo-utilities', + [ + [ + 'npm:1.3.4', + { + packageLocation: + './.yarn/cache/apollo-utilities-npm-1.3.4-2bafd621ff-5a046f8792.zip/node_modules/apollo-utilities/', + packageDependencies: [['apollo-utilities', 'npm:1.3.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:7061219c319bef59bce9b091ecd412f2b806f9949302f75d78ecdd2605eb6ee74208dde38595a702b510b7be1c809b9976547a1c28f0497c19f08cb710d68d9d#npm:1.3.4', + { + packageLocation: + './.yarn/$$virtual/apollo-utilities-virtual-726f6a6431/0/cache/apollo-utilities-npm-1.3.4-2bafd621ff-5a046f8792.zip/node_modules/apollo-utilities/', + packageDependencies: [ + [ + 'apollo-utilities', + 'virtual:7061219c319bef59bce9b091ecd412f2b806f9949302f75d78ecdd2605eb6ee74208dde38595a702b510b7be1c809b9976547a1c28f0497c19f08cb710d68d9d#npm:1.3.4', + ], + ['@types/graphql', null], + ['@wry/equality', 'npm:0.1.11'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['graphql', 'npm:15.3.0'], + ['ts-invariant', 'npm:0.4.4'], + ['tslib', 'npm:1.13.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'aproba', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/aproba-npm-1.2.0-34129f0778-d4bac3e640.zip/node_modules/aproba/', + packageDependencies: [['aproba', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'are-we-there-yet', + [ + [ + 'npm:1.1.5', + { + packageLocation: + './.yarn/cache/are-we-there-yet-npm-1.1.5-b8418908b0-2d6fdb0ddd.zip/node_modules/are-we-there-yet/', + packageDependencies: [ + ['are-we-there-yet', 'npm:1.1.5'], + ['delegates', 'npm:1.0.0'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'argparse', + [ + [ + 'npm:1.0.10', + { + packageLocation: + './.yarn/cache/argparse-npm-1.0.10-528934e59d-435adaef5f.zip/node_modules/argparse/', + packageDependencies: [ + ['argparse', 'npm:1.0.10'], + ['sprintf-js', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/argparse-npm-2.0.1-faff7999e6-160b7a25d2.zip/node_modules/argparse/', + packageDependencies: [['argparse', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'arity-n', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/arity-n-npm-1.0.4-5d0edda7a8-60e48e72da.zip/node_modules/arity-n/', + packageDependencies: [['arity-n', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'arr-diff', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/arr-diff-npm-4.0.0-cec86ae312-cbdff67cf5.zip/node_modules/arr-diff/', + packageDependencies: [['arr-diff', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'arr-flatten', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/arr-flatten-npm-1.1.0-0c12b693e4-564dc9c32c.zip/node_modules/arr-flatten/', + packageDependencies: [['arr-flatten', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'arr-union', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/arr-union-npm-3.1.0-853ada9729-78f0f75c47.zip/node_modules/arr-union/', + packageDependencies: [['arr-union', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array-differ', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/array-differ-npm-3.0.0-ddc0d89007-6d87a752b5.zip/node_modules/array-differ/', + packageDependencies: [['array-differ', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array-find-index', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/array-find-index-npm-1.0.2-a7d5fbff35-5320b3bd46.zip/node_modules/array-find-index/', + packageDependencies: [['array-find-index', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array-flatten', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/array-flatten-npm-1.1.1-9d94ad5f1d-de7a056451.zip/node_modules/array-flatten/', + packageDependencies: [['array-flatten', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/array-flatten-npm-3.0.0-bd1cc8ecc1-babaee814e.zip/node_modules/array-flatten/', + packageDependencies: [['array-flatten', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array-union', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/array-union-npm-1.0.2-cc61ee268f-5be2568acc.zip/node_modules/array-union/', + packageDependencies: [ + ['array-union', 'npm:1.0.2'], + ['array-uniq', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/array-union-npm-2.1.0-4e4852b221-93af542eb8.zip/node_modules/array-union/', + packageDependencies: [['array-union', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array-uniq', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/array-uniq-npm-1.0.3-e7f5d6f3a1-ae11b7fc1e.zip/node_modules/array-uniq/', + packageDependencies: [['array-uniq', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array-unique', + [ + [ + 'npm:0.3.2', + { + packageLocation: + './.yarn/cache/array-unique-npm-0.3.2-9f62c6ac93-7139dbbcaf.zip/node_modules/array-unique/', + packageDependencies: [['array-unique', 'npm:0.3.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'array.prototype.flatmap', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/array.prototype.flatmap-npm-1.2.3-5a87b1ccec-adbf30f271.zip/node_modules/array.prototype.flatmap/', + packageDependencies: [ + ['array.prototype.flatmap', 'npm:1.2.3'], + ['define-properties', 'npm:1.1.3'], + ['es-abstract', 'npm:1.17.6'], + ['function-bind', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'arrify', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/arrify-npm-1.0.1-affafba9fe-f1d3bae819.zip/node_modules/arrify/', + packageDependencies: [['arrify', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/arrify-npm-2.0.1-38c408f77c-2a19726815.zip/node_modules/arrify/', + packageDependencies: [['arrify', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'asap', + [ + [ + 'npm:2.0.6', + { + packageLocation: + './.yarn/cache/asap-npm-2.0.6-36714d439d-3d314f8c59.zip/node_modules/asap/', + packageDependencies: [['asap', 'npm:2.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'asn1', + [ + [ + 'npm:0.2.4', + { + packageLocation: + './.yarn/cache/asn1-npm-0.2.4-219dd49411-5743ace942.zip/node_modules/asn1/', + packageDependencies: [ + ['asn1', 'npm:0.2.4'], + ['safer-buffer', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'asn1.js', + [ + [ + 'npm:4.10.1', + { + packageLocation: + './.yarn/cache/asn1.js-npm-4.10.1-e813eef12f-9c57bcc4ca.zip/node_modules/asn1.js/', + packageDependencies: [ + ['asn1.js', 'npm:4.10.1'], + ['bn.js', 'npm:4.11.9'], + ['inherits', 'npm:2.0.4'], + ['minimalistic-assert', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'assert', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/assert-npm-1.4.1-023bb57287-0e5dd8f92e.zip/node_modules/assert/', + packageDependencies: [ + ['assert', 'npm:1.4.1'], + ['util', 'npm:0.10.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.5.0', + { + packageLocation: + './.yarn/cache/assert-npm-1.5.0-3303b97e04-9bd01a7a57.zip/node_modules/assert/', + packageDependencies: [ + ['assert', 'npm:1.5.0'], + ['object-assign', 'npm:4.1.1'], + ['util', 'npm:0.10.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'assert-plus', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/assert-plus-npm-1.0.0-cac95ef098-1bda24f673.zip/node_modules/assert-plus/', + packageDependencies: [['assert-plus', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'assign-symbols', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/assign-symbols-npm-1.0.0-fd803ccdf1-893e9389a5.zip/node_modules/assign-symbols/', + packageDependencies: [['assign-symbols', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ast-types', + [ + [ + 'npm:0.13.2', + { + packageLocation: + './.yarn/cache/ast-types-npm-0.13.2-bd7ee71c05-0c49bfbed3.zip/node_modules/ast-types/', + packageDependencies: [['ast-types', 'npm:0.13.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'astral-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/astral-regex-npm-1.0.0-2df7c41332-08e37f5996.zip/node_modules/astral-regex/', + packageDependencies: [['astral-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'async', + [ + [ + 'npm:0.9.2', + { + packageLocation: + './.yarn/cache/async-npm-0.9.2-d8cafe6cc3-78c0aad8ad.zip/node_modules/async/', + packageDependencies: [['async', 'npm:0.9.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.6.3', + { + packageLocation: + './.yarn/cache/async-npm-2.6.3-2de4150248-5c30ec6f3d.zip/node_modules/async/', + packageDependencies: [ + ['async', 'npm:2.6.3'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'async-each', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/async-each-npm-1.0.3-464af5d2f3-0cf01982ae.zip/node_modules/async-each/', + packageDependencies: [['async-each', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'async-limiter', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/async-limiter-npm-1.0.1-7e6819bcdb-d123312ace.zip/node_modules/async-limiter/', + packageDependencies: [['async-limiter', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'async-retry', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/async-retry-npm-1.2.3-eaddd454e1-a770aad562.zip/node_modules/async-retry/', + packageDependencies: [ + ['async-retry', 'npm:1.2.3'], + ['retry', 'npm:0.12.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'asynckit', + [ + [ + 'npm:0.4.0', + { + packageLocation: + './.yarn/cache/asynckit-npm-0.4.0-c718858525-a024000b9d.zip/node_modules/asynckit/', + packageDependencies: [['asynckit', 'npm:0.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'at-least-node', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/at-least-node-npm-1.0.0-2b36e661fa-8f33efc162.zip/node_modules/at-least-node/', + packageDependencies: [['at-least-node', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'atob', + [ + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/atob-npm-2.1.2-bcb583261e-597c0d1a74.zip/node_modules/atob/', + packageDependencies: [['atob', 'npm:2.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'atob-lite', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/atob-lite-npm-2.0.0-62802899eb-bb739d5e65.zip/node_modules/atob-lite/', + packageDependencies: [['atob-lite', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'attr-accept', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/attr-accept-npm-1.1.3-a846f77cd3-aec637f2ee.zip/node_modules/attr-accept/', + packageDependencies: [ + ['attr-accept', 'npm:1.1.3'], + ['core-js', 'npm:2.6.11'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.2', + { + packageLocation: + './.yarn/cache/attr-accept-npm-2.2.2-b9cd0d8eac-e9c5d3580f.zip/node_modules/attr-accept/', + packageDependencies: [['attr-accept', 'npm:2.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'auto-bind', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/auto-bind-npm-4.0.0-1cda90694b-8054fe5776.zip/node_modules/auto-bind/', + packageDependencies: [['auto-bind', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'autoprefixer', + [ + [ + 'npm:9.8.5', + { + packageLocation: + './.yarn/cache/autoprefixer-npm-9.8.5-ee0c14c5da-90c2b6b328.zip/node_modules/autoprefixer/', + packageDependencies: [ + ['autoprefixer', 'npm:9.8.5'], + ['browserslist', 'npm:4.13.0'], + ['caniuse-lite', 'npm:1.0.30001107'], + ['colorette', 'npm:1.2.1'], + ['normalize-range', 'npm:0.1.2'], + ['num2fraction', 'npm:1.2.2'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'aws-sign2', + [ + [ + 'npm:0.7.0', + { + packageLocation: + './.yarn/cache/aws-sign2-npm-0.7.0-656c6cb84d-7162b9b8fb.zip/node_modules/aws-sign2/', + packageDependencies: [['aws-sign2', 'npm:0.7.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'aws4', + [ + [ + 'npm:1.10.0', + { + packageLocation: + './.yarn/cache/aws4-npm-1.10.0-74d09999c1-f8c20a0031.zip/node_modules/aws4/', + packageDependencies: [['aws4', 'npm:1.10.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'axios', + [ + [ + 'npm:0.18.1', + { + packageLocation: + './.yarn/cache/axios-npm-0.18.1-a90f17c1fb-6188a1b815.zip/node_modules/axios/', + packageDependencies: [ + ['axios', 'npm:0.18.1'], + ['follow-redirects', 'npm:1.5.10'], + ['is-buffer', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.19.0', + { + packageLocation: + './.yarn/cache/axios-npm-0.19.0-3dc3d92067-be5f8504a1.zip/node_modules/axios/', + packageDependencies: [ + ['axios', 'npm:0.19.0'], + ['follow-redirects', 'npm:1.5.10'], + ['is-buffer', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.19.2', + { + packageLocation: + './.yarn/cache/axios-npm-0.19.2-e4e8599895-bad346deea.zip/node_modules/axios/', + packageDependencies: [ + ['axios', 'npm:0.19.2'], + ['follow-redirects', 'npm:1.5.10'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-code-frame', + [ + [ + 'npm:6.26.0', + { + packageLocation: + './.yarn/cache/babel-code-frame-npm-6.26.0-9f86717636-cc2a799ccc.zip/node_modules/babel-code-frame/', + packageDependencies: [ + ['babel-code-frame', 'npm:6.26.0'], + ['chalk', 'npm:1.1.3'], + ['esutils', 'npm:2.0.3'], + ['js-tokens', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-jest', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/babel-jest-npm-26.1.0-5d4c3b400b-8be941e189.zip/node_modules/babel-jest/', + packageDependencies: [['babel-jest', 'npm:26.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/babel-jest-npm-26.6.3-5630fee2b8-89231d00e6.zip/node_modules/babel-jest/', + packageDependencies: [['babel-jest', 'npm:26.6.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:9abf384bc41cada52db19b9b690df683e74e43291fe7be017740370df8c21131394ddb5930427e3bd01a491f851022382666efb31eac63220e76176492722e2c#npm:26.1.0', + { + packageLocation: + './.yarn/$$virtual/babel-jest-virtual-873d8489d2/0/cache/babel-jest-npm-26.1.0-5d4c3b400b-8be941e189.zip/node_modules/babel-jest/', + packageDependencies: [ + [ + 'babel-jest', + 'virtual:9abf384bc41cada52db19b9b690df683e74e43291fe7be017740370df8c21131394ddb5930427e3bd01a491f851022382666efb31eac63220e76176492722e2c#npm:26.1.0', + ], + ['@babel/core', 'npm:7.10.5'], + ['@jest/transform', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['@types/babel__core', 'npm:7.1.9'], + ['babel-plugin-istanbul', 'npm:6.0.0'], + [ + 'babel-preset-jest', + 'virtual:873d8489d2e75df658b211f88b0fa728bc6eda4bb57c86db78c06d2d018267d560ad60ab611ee4329c5ffc7eb8fb47a705b351c85b5b775c41b6cfeaf71dd6b9#npm:26.1.0', + ], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['slash', 'npm:3.0.0'], + ], + packagePeers: ['@babel/core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3', + { + packageLocation: + './.yarn/$$virtual/babel-jest-virtual-9f33f3a3f1/0/cache/babel-jest-npm-26.6.3-5630fee2b8-89231d00e6.zip/node_modules/babel-jest/', + packageDependencies: [ + [ + 'babel-jest', + 'virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@jest/transform', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/babel__core', 'npm:7.1.9'], + ['babel-plugin-istanbul', 'npm:6.0.0'], + [ + 'babel-preset-jest', + 'virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2', + ], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['slash', 'npm:3.0.0'], + ], + packagePeers: ['@babel/core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-dynamic-import-node', + [ + [ + 'npm:2.3.3', + { + packageLocation: + './.yarn/cache/babel-plugin-dynamic-import-node-npm-2.3.3-be081936a9-6745b8edca.zip/node_modules/babel-plugin-dynamic-import-node/', + packageDependencies: [ + ['babel-plugin-dynamic-import-node', 'npm:2.3.3'], + ['object.assign', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-istanbul', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/babel-plugin-istanbul-npm-6.0.0-2c177ffcc3-0a185405d8.zip/node_modules/babel-plugin-istanbul/', + packageDependencies: [ + ['babel-plugin-istanbul', 'npm:6.0.0'], + ['@babel/helper-plugin-utils', 'npm:7.10.4'], + ['@istanbuljs/load-nyc-config', 'npm:1.1.0'], + ['@istanbuljs/schema', 'npm:0.1.2'], + ['istanbul-lib-instrument', 'npm:4.0.3'], + ['test-exclude', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-jest-hoist', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/babel-plugin-jest-hoist-npm-26.1.0-f4eb433603-af2f7e28ad.zip/node_modules/babel-plugin-jest-hoist/', + packageDependencies: [ + ['babel-plugin-jest-hoist', 'npm:26.1.0'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ['@types/babel__core', 'npm:7.1.9'], + ['@types/babel__traverse', 'npm:7.0.13'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/babel-plugin-jest-hoist-npm-26.6.2-1a51633e87-e9c1de0fce.zip/node_modules/babel-plugin-jest-hoist/', + packageDependencies: [ + ['babel-plugin-jest-hoist', 'npm:26.6.2'], + ['@babel/template', 'npm:7.10.4'], + ['@babel/types', 'npm:7.10.5'], + ['@types/babel__core', 'npm:7.1.9'], + ['@types/babel__traverse', 'npm:7.0.13'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-styled-components', + [ + [ + 'npm:1.11.0', + { + packageLocation: + './.yarn/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/', + packageDependencies: [ + ['babel-plugin-styled-components', 'npm:1.11.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3942ea4996deb8db0313d3ac8ad29b916eb4017388a1e1ce205ec6835fca92ab6e1e8c99e38e386e3682ca5cbbc16b77c92fdc72fc0c4ded5385ac2bc1153767#npm:1.11.0', + { + packageLocation: + './.yarn/$$virtual/babel-plugin-styled-components-virtual-442a42dbbe/0/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/', + packageDependencies: [ + [ + 'babel-plugin-styled-components', + 'virtual:3942ea4996deb8db0313d3ac8ad29b916eb4017388a1e1ce205ec6835fca92ab6e1e8c99e38e386e3682ca5cbbc16b77c92fdc72fc0c4ded5385ac2bc1153767#npm:1.11.0', + ], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@types/styled-components', null], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['lodash', 'npm:4.17.19'], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: ['@types/styled-components', 'styled-components'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8b2b81fd6bd437cd8e3b3c589e5c2987a79b464981c840d3e52a42d0b8e252b1c7d69fc41ab44ab3b9bb12010e877616bb05a14e2efd582d7c21861dfeadff9c#npm:1.11.0', + { + packageLocation: + './.yarn/$$virtual/babel-plugin-styled-components-virtual-c15a9fef79/0/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/', + packageDependencies: [ + [ + 'babel-plugin-styled-components', + 'virtual:8b2b81fd6bd437cd8e3b3c589e5c2987a79b464981c840d3e52a42d0b8e252b1c7d69fc41ab44ab3b9bb12010e877616bb05a14e2efd582d7c21861dfeadff9c#npm:1.11.0', + ], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@types/styled-components', null], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['lodash', 'npm:4.17.19'], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: ['@types/styled-components', 'styled-components'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c6c5dc42529e5e1b6399934e28230d17650bddc1d9df2ef1ed7f32d9c4a1472e309409cdfee0daaba8d0d9d2ff1627dce630fd7dc8351b2b0a246189ccafdb23#npm:1.11.0', + { + packageLocation: + './.yarn/$$virtual/babel-plugin-styled-components-virtual-ee8c19a6d9/0/cache/babel-plugin-styled-components-npm-1.11.0-1bf32b6b5b-0ba1b9aacc.zip/node_modules/babel-plugin-styled-components/', + packageDependencies: [ + [ + 'babel-plugin-styled-components', + 'virtual:c6c5dc42529e5e1b6399934e28230d17650bddc1d9df2ef1ed7f32d9c4a1472e309409cdfee0daaba8d0d9d2ff1627dce630fd7dc8351b2b0a246189ccafdb23#npm:1.11.0', + ], + ['@babel/helper-annotate-as-pure', 'npm:7.10.4'], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@types/styled-components', null], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['lodash', 'npm:4.17.19'], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: ['@types/styled-components', 'styled-components'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-syntax-jsx', + [ + [ + 'npm:6.18.0', + { + packageLocation: + './.yarn/cache/babel-plugin-syntax-jsx-npm-6.18.0-fcf0a98a71-a5c8174ad6.zip/node_modules/babel-plugin-syntax-jsx/', + packageDependencies: [ + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-syntax-trailing-function-commas', + [ + [ + 'npm:7.0.0-beta.0', + { + packageLocation: + './.yarn/cache/babel-plugin-syntax-trailing-function-commas-npm-7.0.0-beta.0-bdba488627-c66215ecdc.zip/node_modules/babel-plugin-syntax-trailing-function-commas/', + packageDependencies: [ + [ + 'babel-plugin-syntax-trailing-function-commas', + 'npm:7.0.0-beta.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-transform-define', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/babel-plugin-transform-define-npm-2.0.0-5df0609739-8015d93508.zip/node_modules/babel-plugin-transform-define/', + packageDependencies: [ + ['babel-plugin-transform-define', 'npm:2.0.0'], + ['lodash', 'npm:4.17.19'], + ['traverse', 'npm:0.6.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-plugin-transform-react-remove-prop-types', + [ + [ + 'npm:0.4.24', + { + packageLocation: + './.yarn/cache/babel-plugin-transform-react-remove-prop-types-npm-0.4.24-63d7506242-4004ce6c87.zip/node_modules/babel-plugin-transform-react-remove-prop-types/', + packageDependencies: [ + [ + 'babel-plugin-transform-react-remove-prop-types', + 'npm:0.4.24', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-preset-current-node-syntax', + [ + [ + 'npm:0.1.3', + { + packageLocation: + './.yarn/cache/babel-preset-current-node-syntax-npm-0.1.3-173cdc742b-35ed34f14d.zip/node_modules/babel-preset-current-node-syntax/', + packageDependencies: [ + ['babel-preset-current-node-syntax', 'npm:0.1.3'], + ], + linkType: 'SOFT', + }, + ], + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-bba41cc95a.zip/node_modules/babel-preset-current-node-syntax/', + packageDependencies: [ + ['babel-preset-current-node-syntax', 'npm:1.0.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:92a3886917b4efc490e0dba772e01979746235cf7800f572b940e326c0370d1bbcf7105ebdf38ae054147f689038a1380a1eb1f923a4c3368081578e9c1577d4#npm:0.1.3', + { + packageLocation: + './.yarn/$$virtual/babel-preset-current-node-syntax-virtual-c6d3e0344d/0/cache/babel-preset-current-node-syntax-npm-0.1.3-173cdc742b-35ed34f14d.zip/node_modules/babel-preset-current-node-syntax/', + packageDependencies: [ + [ + 'babel-preset-current-node-syntax', + 'virtual:92a3886917b4efc490e0dba772e01979746235cf7800f572b940e326c0370d1bbcf7105ebdf38ae054147f689038a1380a1eb1f923a4c3368081578e9c1577d4#npm:0.1.3', + ], + ['@babel/core', 'npm:7.10.5'], + [ + '@babel/plugin-syntax-async-generators', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4', + ], + [ + '@babel/plugin-syntax-bigint', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-class-properties', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-import-meta', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-json-strings', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-logical-assignment-operators', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-optional-catch-binding', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1', + { + packageLocation: + './.yarn/$$virtual/babel-preset-current-node-syntax-virtual-8f974720c8/0/cache/babel-preset-current-node-syntax-npm-1.0.1-849ec71e32-bba41cc95a.zip/node_modules/babel-preset-current-node-syntax/', + packageDependencies: [ + [ + 'babel-preset-current-node-syntax', + 'virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1', + ], + ['@babel/core', 'npm:7.10.5'], + [ + '@babel/plugin-syntax-async-generators', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.4', + ], + [ + '@babel/plugin-syntax-bigint', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-class-properties', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-import-meta', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-json-strings', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-logical-assignment-operators', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-nullish-coalescing-operator', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-numeric-separator', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-optional-catch-binding', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-optional-chaining', + 'virtual:c6d3e0344db908594a26531059630cc0d467ed00dc5191d51245797081f29b790f25df404d830c0ab6544faca160a6dccd06db7ce8b0b2b87e93d5c1436c2dd4#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-top-level-await', + 'virtual:8f974720c8a9b4f406c1db7289a59d677ba2dd045b77299345a92de141b4ac7e66b8ed54a33591ce2e62d069308b508e7fafa6082df6a96611654b7d157524cd#npm:7.10.4', + ], + ['@types/babel__core', 'npm:7.1.9'], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-preset-fbjs', + [ + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/babel-preset-fbjs-npm-3.3.0-69ce7fca19-b6cd74200e.zip/node_modules/babel-preset-fbjs/', + packageDependencies: [['babel-preset-fbjs', 'npm:3.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0', + { + packageLocation: + './.yarn/$$virtual/babel-preset-fbjs-virtual-122b4d6595/0/cache/babel-preset-fbjs-npm-3.3.0-69ce7fca19-b6cd74200e.zip/node_modules/babel-preset-fbjs/', + packageDependencies: [ + [ + 'babel-preset-fbjs', + 'virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0', + ], + ['@babel/core', 'npm:7.10.5'], + [ + '@babel/plugin-proposal-class-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-class-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-flow', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-jsx', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-syntax-object-rest-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.8.3', + ], + [ + '@babel/plugin-transform-arrow-functions', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-block-scoped-functions', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-block-scoping', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + [ + '@babel/plugin-transform-classes', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-computed-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-destructuring', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-flow-strip-types', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-for-of', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-function-name', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-member-expression-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-object-super', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-parameters', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + [ + '@babel/plugin-transform-property-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-react-display-name', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-react-jsx', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-shorthand-properties', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-spread', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.4', + ], + [ + '@babel/plugin-transform-template-literals', + 'virtual:122b4d6595fac6c29533b4e583037b5ab905de5831d322b680433a739b1f91c27d7a5486c278dfad7d7812d05baa4fc82ccc97ff32d11c6ecf9568bcd0436f4e#npm:7.10.5', + ], + ['@types/babel__core', null], + [ + 'babel-plugin-syntax-trailing-function-commas', + 'npm:7.0.0-beta.0', + ], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'babel-preset-jest', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/babel-preset-jest-npm-26.1.0-7579733c94-09a9051731.zip/node_modules/babel-preset-jest/', + packageDependencies: [['babel-preset-jest', 'npm:26.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/babel-preset-jest-npm-26.6.2-456ec36f85-466ca17bba.zip/node_modules/babel-preset-jest/', + packageDependencies: [['babel-preset-jest', 'npm:26.6.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:873d8489d2e75df658b211f88b0fa728bc6eda4bb57c86db78c06d2d018267d560ad60ab611ee4329c5ffc7eb8fb47a705b351c85b5b775c41b6cfeaf71dd6b9#npm:26.1.0', + { + packageLocation: + './.yarn/$$virtual/babel-preset-jest-virtual-92a3886917/0/cache/babel-preset-jest-npm-26.1.0-7579733c94-09a9051731.zip/node_modules/babel-preset-jest/', + packageDependencies: [ + [ + 'babel-preset-jest', + 'virtual:873d8489d2e75df658b211f88b0fa728bc6eda4bb57c86db78c06d2d018267d560ad60ab611ee4329c5ffc7eb8fb47a705b351c85b5b775c41b6cfeaf71dd6b9#npm:26.1.0', + ], + ['@babel/core', 'npm:7.10.5'], + ['@types/babel__core', 'npm:7.1.9'], + ['babel-plugin-jest-hoist', 'npm:26.1.0'], + [ + 'babel-preset-current-node-syntax', + 'virtual:92a3886917b4efc490e0dba772e01979746235cf7800f572b940e326c0370d1bbcf7105ebdf38ae054147f689038a1380a1eb1f923a4c3368081578e9c1577d4#npm:0.1.3', + ], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + [ + 'virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2', + { + packageLocation: + './.yarn/$$virtual/babel-preset-jest-virtual-953f19a93f/0/cache/babel-preset-jest-npm-26.6.2-456ec36f85-466ca17bba.zip/node_modules/babel-preset-jest/', + packageDependencies: [ + [ + 'babel-preset-jest', + 'virtual:9f33f3a3f1029c851d4fc6512707159198b8a9185a8bf2a04087a9e7410eb7514881ea8169195fe0d559191ceae65b7d1a505a59d1ebb3a00c8619a55d48aa40#npm:26.6.2', + ], + ['@babel/core', 'npm:7.10.5'], + ['@types/babel__core', 'npm:7.1.9'], + ['babel-plugin-jest-hoist', 'npm:26.6.2'], + [ + 'babel-preset-current-node-syntax', + 'virtual:953f19a93f1fd76e03de2418470b56b6b69d974bef4780f65029f0a9afcdf2f0130bfb897370a8fe1bd125d7f8113ee186caf42ece0a92789a64117e47028619#npm:1.0.1', + ], + ], + packagePeers: ['@babel/core', '@types/babel__core'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'backo2', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/backo2-npm-1.0.2-e933aab18a-72f19a0fd2.zip/node_modules/backo2/', + packageDependencies: [['backo2', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bail', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/bail-npm-1.0.5-2d4ac89442-25cd4263ee.zip/node_modules/bail/', + packageDependencies: [['bail', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'balanced-match', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/balanced-match-npm-1.0.0-951a2ad706-f515a605fe.zip/node_modules/balanced-match/', + packageDependencies: [['balanced-match', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'base', + [ + [ + 'npm:0.11.2', + { + packageLocation: + './.yarn/cache/base-npm-0.11.2-a9bde462d6-84e30392fd.zip/node_modules/base/', + packageDependencies: [ + ['base', 'npm:0.11.2'], + ['cache-base', 'npm:1.0.1'], + ['class-utils', 'npm:0.3.6'], + ['component-emitter', 'npm:1.3.0'], + ['define-property', 'npm:1.0.0'], + ['isobject', 'npm:3.0.1'], + ['mixin-deep', 'npm:1.3.2'], + ['pascalcase', 'npm:0.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'base64-js', + [ + [ + 'npm:1.3.1', + { + packageLocation: + './.yarn/cache/base64-js-npm-1.3.1-8625be908e-8a0cc69d7c.zip/node_modules/base64-js/', + packageDependencies: [['base64-js', 'npm:1.3.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.5.1', + { + packageLocation: + './.yarn/cache/base64-js-npm-1.5.1-b2f7275641-c1b41a26dd.zip/node_modules/base64-js/', + packageDependencies: [['base64-js', 'npm:1.5.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bcrypt-pbkdf', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/bcrypt-pbkdf-npm-1.0.2-80db8b16ed-3f57eb99bb.zip/node_modules/bcrypt-pbkdf/', + packageDependencies: [ + ['bcrypt-pbkdf', 'npm:1.0.2'], + ['tweetnacl', 'npm:0.14.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'before-after-hook', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/before-after-hook-npm-2.1.0-68b62dea36-4df7ef0992.zip/node_modules/before-after-hook/', + packageDependencies: [['before-after-hook', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/before-after-hook-npm-2.2.0-33eb5dba97-93e5f65327.zip/node_modules/before-after-hook/', + packageDependencies: [['before-after-hook', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'big.js', + [ + [ + 'npm:5.2.2', + { + packageLocation: + './.yarn/cache/big.js-npm-5.2.2-e147c30820-ea33d7d256.zip/node_modules/big.js/', + packageDependencies: [['big.js', 'npm:5.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bin-version', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/bin-version-npm-2.0.0-ea4f0f729a-66ec07a283.zip/node_modules/bin-version/', + packageDependencies: [ + ['bin-version', 'npm:2.0.0'], + ['execa', 'npm:0.1.1'], + ['find-versions', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bin-version-check', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/bin-version-check-npm-3.0.0-0c9a4d3e6d-9310f00fde.zip/node_modules/bin-version-check/', + packageDependencies: [ + ['bin-version-check', 'npm:3.0.0'], + ['bin-version', 'npm:2.0.0'], + ['semver', 'npm:5.7.1'], + ['semver-truncate', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'binary-extensions', + [ + [ + 'npm:1.13.1', + { + packageLocation: + './.yarn/cache/binary-extensions-npm-1.13.1-fb81dec2b0-7cdacc6dad.zip/node_modules/binary-extensions/', + packageDependencies: [['binary-extensions', 'npm:1.13.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/binary-extensions-npm-2.1.0-0681d7e2ce-12bee28179.zip/node_modules/binary-extensions/', + packageDependencies: [['binary-extensions', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'binaryextensions', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/binaryextensions-npm-2.3.0-b7818ff03c-2634fffe52.zip/node_modules/binaryextensions/', + packageDependencies: [['binaryextensions', 'npm:2.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bindings', + [ + [ + 'npm:1.5.0', + { + packageLocation: + './.yarn/cache/bindings-npm-1.5.0-77ce1d213c-bd623dec58.zip/node_modules/bindings/', + packageDependencies: [ + ['bindings', 'npm:1.5.0'], + ['file-uri-to-path', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bl', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/bl-npm-4.1.0-7f94cdcf3f-15d009339c.zip/node_modules/bl/', + packageDependencies: [ + ['bl', 'npm:4.1.0'], + ['buffer', 'npm:5.7.1'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:3.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bluebird', + [ + [ + 'npm:3.7.2', + { + packageLocation: + './.yarn/cache/bluebird-npm-3.7.2-6a54136ee3-4f2288662f.zip/node_modules/bluebird/', + packageDependencies: [['bluebird', 'npm:3.7.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bn.js', + [ + [ + 'npm:4.11.9', + { + packageLocation: + './.yarn/cache/bn.js-npm-4.11.9-c739f92b89-31630d3560.zip/node_modules/bn.js/', + packageDependencies: [['bn.js', 'npm:4.11.9']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.2', + { + packageLocation: + './.yarn/cache/bn.js-npm-5.1.2-cb72ababd7-ed0f337a22.zip/node_modules/bn.js/', + packageDependencies: [['bn.js', 'npm:5.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'body-parser', + [ + [ + 'npm:1.19.0', + { + packageLocation: + './.yarn/cache/body-parser-npm-1.19.0-6e177cabfa-18c2a81df5.zip/node_modules/body-parser/', + packageDependencies: [ + ['body-parser', 'npm:1.19.0'], + ['bytes', 'npm:3.1.0'], + ['content-type', 'npm:1.0.4'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['depd', 'npm:1.1.2'], + ['http-errors', 'npm:1.7.2'], + ['iconv-lite', 'npm:0.4.24'], + ['on-finished', 'npm:2.3.0'], + ['qs', 'npm:6.7.0'], + ['raw-body', 'npm:2.4.0'], + ['type-is', 'npm:1.6.18'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'boolbase', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/boolbase-npm-1.0.0-965fe9af6d-e827963c41.zip/node_modules/boolbase/', + packageDependencies: [['boolbase', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'boolean', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/boolean-npm-3.0.1-65ce3fbfd4-043da0e51f.zip/node_modules/boolean/', + packageDependencies: [['boolean', 'npm:3.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'boxen', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/boxen-npm-1.3.0-516a1c78f9-1e402785f9.zip/node_modules/boxen/', + packageDependencies: [ + ['boxen', 'npm:1.3.0'], + ['ansi-align', 'npm:2.0.0'], + ['camelcase', 'npm:4.1.0'], + ['chalk', 'npm:2.4.2'], + ['cli-boxes', 'npm:1.0.0'], + ['string-width', 'npm:2.1.1'], + ['term-size', 'npm:1.2.0'], + ['widest-line', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/boxen-npm-4.2.0-471e88ddba-667b291d22.zip/node_modules/boxen/', + packageDependencies: [ + ['boxen', 'npm:4.2.0'], + ['ansi-align', 'npm:3.0.0'], + ['camelcase', 'npm:5.3.1'], + ['chalk', 'npm:3.0.0'], + ['cli-boxes', 'npm:2.2.0'], + ['string-width', 'npm:4.2.0'], + ['term-size', 'npm:2.2.0'], + ['type-fest', 'npm:0.8.1'], + ['widest-line', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'brace-expansion', + [ + [ + 'npm:1.1.11', + { + packageLocation: + './.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-4c878e25e4.zip/node_modules/brace-expansion/', + packageDependencies: [ + ['brace-expansion', 'npm:1.1.11'], + ['balanced-match', 'npm:1.0.0'], + ['concat-map', 'npm:0.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'braces', + [ + [ + 'npm:2.3.2', + { + packageLocation: + './.yarn/cache/braces-npm-2.3.2-19cadb3384-5f2d5ae262.zip/node_modules/braces/', + packageDependencies: [ + ['braces', 'npm:2.3.2'], + ['arr-flatten', 'npm:1.1.0'], + ['array-unique', 'npm:0.3.2'], + ['extend-shallow', 'npm:2.0.1'], + ['fill-range', 'npm:4.0.0'], + ['isobject', 'npm:3.0.1'], + ['repeat-element', 'npm:1.1.3'], + ['snapdragon', 'npm:0.8.2'], + ['snapdragon-node', 'npm:2.1.1'], + ['split-string', 'npm:3.1.0'], + ['to-regex', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/braces-npm-3.0.2-782240b28a-f3493181c3.zip/node_modules/braces/', + packageDependencies: [ + ['braces', 'npm:3.0.2'], + ['fill-range', 'npm:7.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'brorand', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/brorand-npm-1.1.0-ea86634c4b-4536dd73f0.zip/node_modules/brorand/', + packageDependencies: [['brorand', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browser-process-hrtime', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/browser-process-hrtime-npm-1.0.0-db700805c2-565847e5b0.zip/node_modules/browser-process-hrtime/', + packageDependencies: [['browser-process-hrtime', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserify-aes', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/browserify-aes-npm-1.2.0-2ad4aeefbe-487abe9fcf.zip/node_modules/browserify-aes/', + packageDependencies: [ + ['browserify-aes', 'npm:1.2.0'], + ['buffer-xor', 'npm:1.0.3'], + ['cipher-base', 'npm:1.0.4'], + ['create-hash', 'npm:1.2.0'], + ['evp_bytestokey', 'npm:1.0.3'], + ['inherits', 'npm:2.0.4'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserify-cipher', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/browserify-cipher-npm-1.0.1-e00d75c093-4c5ee6d232.zip/node_modules/browserify-cipher/', + packageDependencies: [ + ['browserify-cipher', 'npm:1.0.1'], + ['browserify-aes', 'npm:1.2.0'], + ['browserify-des', 'npm:1.0.2'], + ['evp_bytestokey', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserify-des', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/browserify-des-npm-1.0.2-5d04e0cde2-d9e6ea8db0.zip/node_modules/browserify-des/', + packageDependencies: [ + ['browserify-des', 'npm:1.0.2'], + ['cipher-base', 'npm:1.0.4'], + ['des.js', 'npm:1.0.1'], + ['inherits', 'npm:2.0.4'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserify-rsa', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/browserify-rsa-npm-4.0.1-faeab97656-65ad8e818f.zip/node_modules/browserify-rsa/', + packageDependencies: [ + ['browserify-rsa', 'npm:4.0.1'], + ['bn.js', 'npm:4.11.9'], + ['randombytes', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserify-sign', + [ + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/browserify-sign-npm-4.2.0-01da7f72f7-9fd2d93a3d.zip/node_modules/browserify-sign/', + packageDependencies: [ + ['browserify-sign', 'npm:4.2.0'], + ['bn.js', 'npm:5.1.2'], + ['browserify-rsa', 'npm:4.0.1'], + ['create-hash', 'npm:1.2.0'], + ['create-hmac', 'npm:1.1.7'], + ['elliptic', 'npm:6.5.3'], + ['inherits', 'npm:2.0.4'], + ['parse-asn1', 'npm:5.1.5'], + ['readable-stream', 'npm:3.6.0'], + ['safe-buffer', 'npm:5.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserify-zlib', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/browserify-zlib-npm-0.2.0-eab4087284-877c864e68.zip/node_modules/browserify-zlib/', + packageDependencies: [ + ['browserify-zlib', 'npm:0.2.0'], + ['pako', 'npm:1.0.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'browserslist', + [ + [ + 'npm:4.12.0', + { + packageLocation: + './.yarn/cache/browserslist-npm-4.12.0-4a2e4780c6-564af87b33.zip/node_modules/browserslist/', + packageDependencies: [ + ['browserslist', 'npm:4.12.0'], + ['caniuse-lite', 'npm:1.0.30001107'], + ['electron-to-chromium', 'npm:1.3.512'], + ['node-releases', 'npm:1.1.60'], + ['pkg-up', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.13.0', + { + packageLocation: + './.yarn/cache/browserslist-npm-4.13.0-65b150af6e-91657dcc02.zip/node_modules/browserslist/', + packageDependencies: [ + ['browserslist', 'npm:4.13.0'], + ['caniuse-lite', 'npm:1.0.30001107'], + ['electron-to-chromium', 'npm:1.3.512'], + ['escalade', 'npm:3.0.2'], + ['node-releases', 'npm:1.1.60'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.14.6', + { + packageLocation: + './.yarn/cache/browserslist-npm-4.14.6-d863c7aaf9-f870aa5822.zip/node_modules/browserslist/', + packageDependencies: [ + ['browserslist', 'npm:4.14.6'], + ['caniuse-lite', 'npm:1.0.30001228'], + ['electron-to-chromium', 'npm:1.3.730'], + ['escalade', 'npm:3.1.1'], + ['node-releases', 'npm:1.1.72'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bs-logger', + [ + [ + 'npm:0.2.6', + { + packageLocation: + './.yarn/cache/bs-logger-npm-0.2.6-7670f88b66-f5f2f1315d.zip/node_modules/bs-logger/', + packageDependencies: [ + ['bs-logger', 'npm:0.2.6'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bser', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/bser-npm-2.1.1-cc902055ce-302af19567.zip/node_modules/bser/', + packageDependencies: [ + ['bser', 'npm:2.1.1'], + ['node-int64', 'npm:0.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'btoa-lite', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/btoa-lite-npm-1.0.0-e85ee9286e-d41fc7dc9f.zip/node_modules/btoa-lite/', + packageDependencies: [['btoa-lite', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'buffer', + [ + [ + 'npm:4.9.2', + { + packageLocation: + './.yarn/cache/buffer-npm-4.9.2-9e40b5e87a-e29ecda22a.zip/node_modules/buffer/', + packageDependencies: [ + ['buffer', 'npm:4.9.2'], + ['base64-js', 'npm:1.3.1'], + ['ieee754', 'npm:1.1.13'], + ['isarray', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.6.0', + { + packageLocation: + './.yarn/cache/buffer-npm-5.6.0-e1494693bf-e18fdf099c.zip/node_modules/buffer/', + packageDependencies: [ + ['buffer', 'npm:5.6.0'], + ['base64-js', 'npm:1.3.1'], + ['ieee754', 'npm:1.1.13'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.7.1', + { + packageLocation: + './.yarn/cache/buffer-npm-5.7.1-513ef8259e-1750ac396e.zip/node_modules/buffer/', + packageDependencies: [ + ['buffer', 'npm:5.7.1'], + ['base64-js', 'npm:1.5.1'], + ['ieee754', 'npm:1.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'buffer-equal-constant-time', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/buffer-equal-constant-time-npm-1.0.1-41826f3419-a38a6fead1.zip/node_modules/buffer-equal-constant-time/', + packageDependencies: [ + ['buffer-equal-constant-time', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'buffer-from', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/buffer-from-npm-1.1.1-22917b8ed8-540ceb79c4.zip/node_modules/buffer-from/', + packageDependencies: [['buffer-from', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'buffer-xor', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/buffer-xor-npm-1.0.3-56bb81b0dd-58ce260802.zip/node_modules/buffer-xor/', + packageDependencies: [['buffer-xor', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bufferutil', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/unplugged/bufferutil-npm-4.0.1-6c767f1648/node_modules/bufferutil/', + packageDependencies: [ + ['bufferutil', 'npm:4.0.1'], + ['node-gyp', 'npm:7.0.0'], + ['node-gyp-build', 'npm:3.7.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'builtin-modules', + [ + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/builtin-modules-npm-3.2.0-ef7266e931-f0e7240f70.zip/node_modules/builtin-modules/', + packageDependencies: [['builtin-modules', 'npm:3.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'builtin-status-codes', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/builtin-status-codes-npm-3.0.0-e376b0580b-8e2872a69a.zip/node_modules/builtin-status-codes/', + packageDependencies: [['builtin-status-codes', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'bytes', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/bytes-npm-3.1.0-19c5b15405-c3f64645ef.zip/node_modules/bytes/', + packageDependencies: [['bytes', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cac', + [ + [ + 'npm:6.6.1', + { + packageLocation: + './.yarn/cache/cac-npm-6.6.1-73563e34d3-130be63807.zip/node_modules/cac/', + packageDependencies: [['cac', 'npm:6.6.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.7.2', + { + packageLocation: + './.yarn/cache/cac-npm-6.7.2-b037608c8c-e8f060b7e9.zip/node_modules/cac/', + packageDependencies: [['cac', 'npm:6.7.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cacache', + [ + [ + 'npm:12.0.4', + { + packageLocation: + './.yarn/cache/cacache-npm-12.0.4-0a601d06b9-fd70ecfddb.zip/node_modules/cacache/', + packageDependencies: [ + ['cacache', 'npm:12.0.4'], + ['bluebird', 'npm:3.7.2'], + ['chownr', 'npm:1.1.4'], + ['figgy-pudding', 'npm:3.5.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['infer-owner', 'npm:1.0.4'], + ['lru-cache', 'npm:5.1.1'], + ['mississippi', 'npm:3.0.0'], + ['mkdirp', 'npm:0.5.5'], + ['move-concurrently', 'npm:1.0.1'], + [ + 'promise-inflight', + 'virtual:0a601d06b9bb877e28dc3c2bf132b715e8c8db39518cb037053d3e960e698b842f18c4ad29c4dbd116bd79f31c565cbbc9741fa4573e2713fab36fd780658f57#npm:1.0.1', + ], + ['rimraf', 'npm:2.7.1'], + ['ssri', 'npm:6.0.1'], + ['unique-filename', 'npm:1.1.1'], + ['y18n', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:13.0.1', + { + packageLocation: + './.yarn/cache/cacache-npm-13.0.1-6b13da0303-f1aa76a2f8.zip/node_modules/cacache/', + packageDependencies: [ + ['cacache', 'npm:13.0.1'], + ['chownr', 'npm:1.1.4'], + ['figgy-pudding', 'npm:3.5.2'], + ['fs-minipass', 'npm:2.1.0'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['infer-owner', 'npm:1.0.4'], + ['lru-cache', 'npm:5.1.1'], + ['minipass', 'npm:3.1.3'], + ['minipass-collect', 'npm:1.0.2'], + ['minipass-flush', 'npm:1.0.5'], + ['minipass-pipeline', 'npm:1.2.4'], + ['mkdirp', 'npm:0.5.5'], + ['move-concurrently', 'npm:1.0.1'], + ['p-map', 'npm:3.0.0'], + [ + 'promise-inflight', + 'virtual:6b13da0303336244e14777818f99c8dfaed4f4c27cb3f6393c3d5e11d3bb4a4a56fbe8ab1298b00979cc78a3a238458a7a0fab5133ad4c736a2296e23ba86eaa#npm:1.0.1', + ], + ['rimraf', 'npm:2.7.1'], + ['ssri', 'npm:7.1.0'], + ['unique-filename', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cache-base', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/cache-base-npm-1.0.1-1538417cb9-3f362ba824.zip/node_modules/cache-base/', + packageDependencies: [ + ['cache-base', 'npm:1.0.1'], + ['collection-visit', 'npm:1.0.0'], + ['component-emitter', 'npm:1.3.0'], + ['get-value', 'npm:2.0.6'], + ['has-value', 'npm:1.0.0'], + ['isobject', 'npm:3.0.1'], + ['set-value', 'npm:2.0.1'], + ['to-object-path', 'npm:0.3.0'], + ['union-value', 'npm:1.0.1'], + ['unset-value', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cacheable-lookup', + [ + [ + 'npm:5.0.3', + { + packageLocation: + './.yarn/cache/cacheable-lookup-npm-5.0.3-8cec59984a-a51e3ddb82.zip/node_modules/cacheable-lookup/', + packageDependencies: [['cacheable-lookup', 'npm:5.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cacheable-request', + [ + [ + 'npm:2.1.4', + { + packageLocation: + './.yarn/cache/cacheable-request-npm-2.1.4-d6f47ac974-225a09edb6.zip/node_modules/cacheable-request/', + packageDependencies: [ + ['cacheable-request', 'npm:2.1.4'], + ['clone-response', 'npm:1.0.2'], + ['get-stream', 'npm:3.0.0'], + ['http-cache-semantics', 'npm:3.8.1'], + ['keyv', 'npm:3.0.0'], + ['lowercase-keys', 'npm:1.0.0'], + ['normalize-url', 'npm:2.0.1'], + ['responselike', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.1.0', + { + packageLocation: + './.yarn/cache/cacheable-request-npm-6.1.0-684b834873-8b43f66137.zip/node_modules/cacheable-request/', + packageDependencies: [ + ['cacheable-request', 'npm:6.1.0'], + ['clone-response', 'npm:1.0.2'], + ['get-stream', 'npm:5.1.0'], + ['http-cache-semantics', 'npm:4.1.0'], + ['keyv', 'npm:3.0.0'], + ['lowercase-keys', 'npm:2.0.0'], + ['normalize-url', 'npm:4.5.0'], + ['responselike', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.1', + { + packageLocation: + './.yarn/cache/cacheable-request-npm-7.0.1-d870be2496-fe0b6f3b8a.zip/node_modules/cacheable-request/', + packageDependencies: [ + ['cacheable-request', 'npm:7.0.1'], + ['clone-response', 'npm:1.0.2'], + ['get-stream', 'npm:5.1.0'], + ['http-cache-semantics', 'npm:4.1.0'], + ['keyv', 'npm:4.0.1'], + ['lowercase-keys', 'npm:2.0.0'], + ['normalize-url', 'npm:4.5.0'], + ['responselike', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'call-me-maybe', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/call-me-maybe-npm-1.0.1-d07e74bc9c-07e1afb493.zip/node_modules/call-me-maybe/', + packageDependencies: [['call-me-maybe', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'caller-callsite', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/caller-callsite-npm-2.0.0-9cf308d7bb-4f62ec12d0.zip/node_modules/caller-callsite/', + packageDependencies: [ + ['caller-callsite', 'npm:2.0.0'], + ['callsites', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'caller-path', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/caller-path-npm-2.0.0-7ff6a26cb9-c4b19e43d4.zip/node_modules/caller-path/', + packageDependencies: [ + ['caller-path', 'npm:2.0.0'], + ['caller-callsite', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'callsites', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/callsites-npm-2.0.0-cc39942b7f-0ccd42292b.zip/node_modules/callsites/', + packageDependencies: [['callsites', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/callsites-npm-3.1.0-268f989910-f726bf10d7.zip/node_modules/callsites/', + packageDependencies: [['callsites', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'camel-case', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/camel-case-npm-4.1.1-6ae5ac15ac-c202f62a74.zip/node_modules/camel-case/', + packageDependencies: [ + ['camel-case', 'npm:4.1.1'], + ['pascal-case', 'npm:3.1.1'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'camelcase', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/camelcase-npm-2.1.1-2ed296a336-311182686b.zip/node_modules/camelcase/', + packageDependencies: [['camelcase', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/camelcase-npm-4.1.0-6903b265cd-6ca41b5114.zip/node_modules/camelcase/', + packageDependencies: [['camelcase', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/camelcase-npm-5.0.0-c808398846-73567fa11f.zip/node_modules/camelcase/', + packageDependencies: [['camelcase', 'npm:5.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.3.1', + { + packageLocation: + './.yarn/cache/camelcase-npm-5.3.1-5db8af62c5-6a3350c4ea.zip/node_modules/camelcase/', + packageDependencies: [['camelcase', 'npm:5.3.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/camelcase-npm-6.0.0-9f3e9c28c5-d92305180b.zip/node_modules/camelcase/', + packageDependencies: [['camelcase', 'npm:6.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'camelcase-css', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/camelcase-css-npm-2.0.1-90d1b6df08-3d557da914.zip/node_modules/camelcase-css/', + packageDependencies: [['camelcase-css', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'camelcase-keys', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/camelcase-keys-npm-2.1.0-3231ee9188-74eff079c8.zip/node_modules/camelcase-keys/', + packageDependencies: [ + ['camelcase-keys', 'npm:2.1.0'], + ['camelcase', 'npm:2.1.1'], + ['map-obj', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'camelize', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/camelize-npm-1.0.0-5eda108776-6891ec64c7.zip/node_modules/camelize/', + packageDependencies: [['camelize', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'caniuse-api', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/caniuse-api-npm-3.0.0-1272c2981e-6822fb3d42.zip/node_modules/caniuse-api/', + packageDependencies: [ + ['caniuse-api', 'npm:3.0.0'], + ['browserslist', 'npm:4.13.0'], + ['caniuse-lite', 'npm:1.0.30001107'], + ['lodash.memoize', 'npm:4.1.2'], + ['lodash.uniq', 'npm:4.5.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'caniuse-lite', + [ + [ + 'npm:1.0.30001107', + { + packageLocation: + './.yarn/cache/caniuse-lite-npm-1.0.30001107-e05d3cc747-08990ad38c.zip/node_modules/caniuse-lite/', + packageDependencies: [['caniuse-lite', 'npm:1.0.30001107']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.30001228', + { + packageLocation: + './.yarn/cache/caniuse-lite-npm-1.0.30001228-80662cadf9-a4eb04288e.zip/node_modules/caniuse-lite/', + packageDependencies: [['caniuse-lite', 'npm:1.0.30001228']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'capture-exit', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/capture-exit-npm-2.0.0-564874b447-9dd81108a0.zip/node_modules/capture-exit/', + packageDependencies: [ + ['capture-exit', 'npm:2.0.0'], + ['rsvp', 'npm:4.8.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'capture-stack-trace', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/capture-stack-trace-npm-1.0.1-0ffa4b6380-c857f977ca.zip/node_modules/capture-stack-trace/', + packageDependencies: [['capture-stack-trace', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'caseless', + [ + [ + 'npm:0.12.0', + { + packageLocation: + './.yarn/cache/caseless-npm-0.12.0-e83bc5df83-147f48bff9.zip/node_modules/caseless/', + packageDependencies: [['caseless', 'npm:0.12.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ccount', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/ccount-npm-1.0.5-acb4b70625-7580ada7a3.zip/node_modules/ccount/', + packageDependencies: [['ccount', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cd', + [ + [ + 'npm:0.3.3', + { + packageLocation: + './.yarn/cache/cd-npm-0.3.3-9159292adf-100e86199b.zip/node_modules/cd/', + packageDependencies: [['cd', 'npm:0.3.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'chalk', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/chalk-npm-1.1.3-59144c3a87-bc2df54f6d.zip/node_modules/chalk/', + packageDependencies: [ + ['chalk', 'npm:1.1.3'], + ['ansi-styles', 'npm:2.2.1'], + ['escape-string-regexp', 'npm:1.0.5'], + ['has-ansi', 'npm:2.0.0'], + ['strip-ansi', 'npm:3.0.1'], + ['supports-color', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.4.2', + { + packageLocation: + './.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-22c7b7b5bc.zip/node_modules/chalk/', + packageDependencies: [ + ['chalk', 'npm:2.4.2'], + ['ansi-styles', 'npm:3.2.1'], + ['escape-string-regexp', 'npm:1.0.5'], + ['supports-color', 'npm:5.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/chalk-npm-3.0.0-e813208025-4018b0c812.zip/node_modules/chalk/', + packageDependencies: [ + ['chalk', 'npm:3.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/chalk-npm-4.0.0-50e5418ea0-12b01a228b.zip/node_modules/chalk/', + packageDependencies: [ + ['chalk', 'npm:4.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/chalk-npm-4.1.0-c746e252ba-f860285b41.zip/node_modules/chalk/', + packageDependencies: [ + ['chalk', 'npm:4.1.0'], + ['ansi-styles', 'npm:4.2.1'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'char-regex', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/char-regex-npm-1.0.2-ecade5f97f-7db46ed45d.zip/node_modules/char-regex/', + packageDependencies: [['char-regex', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'character-entities', + [ + [ + 'npm:1.2.4', + { + packageLocation: + './.yarn/cache/character-entities-npm-1.2.4-a5c359383c-6ca8a790a2.zip/node_modules/character-entities/', + packageDependencies: [['character-entities', 'npm:1.2.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'character-entities-html4', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/character-entities-html4-npm-1.1.4-a40dc3af2a-1022eecdd5.zip/node_modules/character-entities-html4/', + packageDependencies: [ + ['character-entities-html4', 'npm:1.1.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'character-entities-legacy', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/character-entities-legacy-npm-1.1.4-e3e7c8ee55-bb1e426146.zip/node_modules/character-entities-legacy/', + packageDependencies: [ + ['character-entities-legacy', 'npm:1.1.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'character-reference-invalid', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/character-reference-invalid-npm-1.1.4-e5e17a1a38-82d8ce7828.zip/node_modules/character-reference-invalid/', + packageDependencies: [ + ['character-reference-invalid', 'npm:1.1.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'chardet', + [ + [ + 'npm:0.7.0', + { + packageLocation: + './.yarn/cache/chardet-npm-0.7.0-27933dd6c7-b71a4ee464.zip/node_modules/chardet/', + packageDependencies: [['chardet', 'npm:0.7.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'chokidar', + [ + [ + 'npm:2.1.8', + { + packageLocation: + './.yarn/cache/chokidar-npm-2.1.8-32fdcd020e-0758dcc7c6.zip/node_modules/chokidar/', + packageDependencies: [ + ['chokidar', 'npm:2.1.8'], + ['anymatch', 'npm:2.0.0'], + ['async-each', 'npm:1.0.3'], + ['braces', 'npm:2.3.2'], + [ + 'fsevents', + 'patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=11e9ea', + ], + ['glob-parent', 'npm:3.1.0'], + ['inherits', 'npm:2.0.4'], + ['is-binary-path', 'npm:1.0.1'], + ['is-glob', 'npm:4.0.1'], + ['normalize-path', 'npm:3.0.0'], + ['path-is-absolute', 'npm:1.0.1'], + ['readdirp', 'npm:2.2.1'], + ['upath', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.4.1', + { + packageLocation: + './.yarn/cache/chokidar-npm-3.4.1-5148db7619-fdbeae89bd.zip/node_modules/chokidar/', + packageDependencies: [ + ['chokidar', 'npm:3.4.1'], + ['anymatch', 'npm:3.1.1'], + ['braces', 'npm:3.0.2'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ['glob-parent', 'npm:5.1.1'], + ['is-binary-path', 'npm:2.1.0'], + ['is-glob', 'npm:4.0.1'], + ['normalize-path', 'npm:3.0.0'], + ['readdirp', 'npm:3.4.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.4.2', + { + packageLocation: + './.yarn/cache/chokidar-npm-3.4.2-4e5f7d3b1f-a394c13d28.zip/node_modules/chokidar/', + packageDependencies: [ + ['chokidar', 'npm:3.4.2'], + ['anymatch', 'npm:3.1.1'], + ['braces', 'npm:3.0.2'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ['glob-parent', 'npm:5.1.1'], + ['is-binary-path', 'npm:2.1.0'], + ['is-glob', 'npm:4.0.1'], + ['normalize-path', 'npm:3.0.0'], + ['readdirp', 'npm:3.4.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.4.3', + { + packageLocation: + './.yarn/cache/chokidar-npm-3.4.3-58f7548978-b5a566b312.zip/node_modules/chokidar/', + packageDependencies: [ + ['chokidar', 'npm:3.4.3'], + ['anymatch', 'npm:3.1.1'], + ['braces', 'npm:3.0.2'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ['glob-parent', 'npm:5.1.1'], + ['is-binary-path', 'npm:2.1.0'], + ['is-glob', 'npm:4.0.1'], + ['normalize-path', 'npm:3.0.0'], + ['readdirp', 'npm:3.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.5.1', + { + packageLocation: + './.yarn/cache/chokidar-npm-3.5.1-205217279e-61b3f710f9.zip/node_modules/chokidar/', + packageDependencies: [ + ['chokidar', 'npm:3.5.1'], + ['anymatch', 'npm:3.1.1'], + ['braces', 'npm:3.0.2'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea', + ], + ['glob-parent', 'npm:5.1.1'], + ['is-binary-path', 'npm:2.1.0'], + ['is-glob', 'npm:4.0.1'], + ['normalize-path', 'npm:3.0.0'], + ['readdirp', 'npm:3.5.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'chownr', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/chownr-npm-1.1.4-5bd400ab08-4a7f1a0b26.zip/node_modules/chownr/', + packageDependencies: [['chownr', 'npm:1.1.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/chownr-npm-2.0.0-638f1c9c61-b06ba0bf42.zip/node_modules/chownr/', + packageDependencies: [['chownr', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'chrome-trace-event', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/chrome-trace-event-npm-1.0.2-c73a69cbd7-926fe23bc9.zip/node_modules/chrome-trace-event/', + packageDependencies: [ + ['chrome-trace-event', 'npm:1.0.2'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ci-info', + [ + [ + 'npm:1.6.0', + { + packageLocation: + './.yarn/cache/ci-info-npm-1.6.0-2d91706840-c53d8ead84.zip/node_modules/ci-info/', + packageDependencies: [['ci-info', 'npm:1.6.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/ci-info-npm-2.0.0-78012236a1-553fe83c08.zip/node_modules/ci-info/', + packageDependencies: [['ci-info', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cipher-base', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/cipher-base-npm-1.0.4-2e98b97140-ec80001ec9.zip/node_modules/cipher-base/', + packageDependencies: [ + ['cipher-base', 'npm:1.0.4'], + ['inherits', 'npm:2.0.4'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cjs-module-lexer', + [ + [ + 'npm:0.6.0', + { + packageLocation: + './.yarn/cache/cjs-module-lexer-npm-0.6.0-e80f3766d3-333671db7f.zip/node_modules/cjs-module-lexer/', + packageDependencies: [['cjs-module-lexer', 'npm:0.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'class-utils', + [ + [ + 'npm:0.3.6', + { + packageLocation: + './.yarn/cache/class-utils-npm-0.3.6-2c691ad006-6411679ad4.zip/node_modules/class-utils/', + packageDependencies: [ + ['class-utils', 'npm:0.3.6'], + ['arr-union', 'npm:3.1.0'], + ['define-property', 'npm:0.2.5'], + ['isobject', 'npm:3.0.1'], + ['static-extend', 'npm:0.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'classnames', + [ + [ + 'npm:2.2.6', + { + packageLocation: + './.yarn/cache/classnames-npm-2.2.6-98e9901cf4-490eaeca59.zip/node_modules/classnames/', + packageDependencies: [['classnames', 'npm:2.2.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clean-stack', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-e291ce2b8c.zip/node_modules/clean-stack/', + packageDependencies: [['clean-stack', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clear', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/clear-npm-0.1.0-a3e2e6f4fa-5bb327928a.zip/node_modules/clear/', + packageDependencies: [['clear', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-boxes', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/cli-boxes-npm-1.0.0-fdd89bc01b-1227f15d82.zip/node_modules/cli-boxes/', + packageDependencies: [['cli-boxes', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/cli-boxes-npm-2.2.0-d10e4d5632-db0db07e69.zip/node_modules/cli-boxes/', + packageDependencies: [['cli-boxes', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-cursor', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/cli-cursor-npm-1.0.2-180e5fc529-72cd145755.zip/node_modules/cli-cursor/', + packageDependencies: [ + ['cli-cursor', 'npm:1.0.2'], + ['restore-cursor', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/cli-cursor-npm-2.1.0-3920629c9c-df33c11b3c.zip/node_modules/cli-cursor/', + packageDependencies: [ + ['cli-cursor', 'npm:2.1.0'], + ['restore-cursor', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/cli-cursor-npm-3.1.0-fee1e46b5e-15dbfc222f.zip/node_modules/cli-cursor/', + packageDependencies: [ + ['cli-cursor', 'npm:3.1.0'], + ['restore-cursor', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-list', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/cli-list-npm-0.2.0-1952bfae83-7ec454773f.zip/node_modules/cli-list/', + packageDependencies: [['cli-list', 'npm:0.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-spinners', + [ + [ + 'npm:2.4.0', + { + packageLocation: + './.yarn/cache/cli-spinners-npm-2.4.0-dcdee2d7be-c32291dbcc.zip/node_modules/cli-spinners/', + packageDependencies: [['cli-spinners', 'npm:2.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-table', + [ + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/cli-table-npm-0.3.1-3a7d522e25-887b0cf31b.zip/node_modules/cli-table/', + packageDependencies: [ + ['cli-table', 'npm:0.3.1'], + ['colors', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-truncate', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/cli-truncate-npm-0.2.1-f053d59b0b-f860298aa3.zip/node_modules/cli-truncate/', + packageDependencies: [ + ['cli-truncate', 'npm:0.2.1'], + ['slice-ansi', 'npm:0.0.4'], + ['string-width', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cli-width', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/cli-width-npm-2.2.1-4bdb77393c-f7c830bddc.zip/node_modules/cli-width/', + packageDependencies: [['cli-width', 'npm:2.2.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/cli-width-npm-3.0.0-387b3f68f9-6e5bc71774.zip/node_modules/cli-width/', + packageDependencies: [['cli-width', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clipanion', + [ + [ + 'npm:2.4.4', + { + packageLocation: + './.yarn/cache/clipanion-npm-2.4.4-58c51b89cd-e31970cfc2.zip/node_modules/clipanion/', + packageDependencies: [['clipanion', 'npm:2.4.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cliui', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/cliui-npm-6.0.0-488b2414c6-e59d064294.zip/node_modules/cliui/', + packageDependencies: [ + ['cliui', 'npm:6.0.0'], + ['string-width', 'npm:4.2.0'], + ['strip-ansi', 'npm:6.0.0'], + ['wrap-ansi', 'npm:6.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.4', + { + packageLocation: + './.yarn/cache/cliui-npm-7.0.4-d6b8a9edb6-c49ac1d13f.zip/node_modules/cliui/', + packageDependencies: [ + ['cliui', 'npm:7.0.4'], + ['string-width', 'npm:4.2.0'], + ['strip-ansi', 'npm:6.0.0'], + ['wrap-ansi', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clone', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/clone-npm-1.0.4-a610fcbcf9-aaaa58f990.zip/node_modules/clone/', + packageDependencies: [['clone', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/clone-npm-2.1.2-1d491c6629-85232d6601.zip/node_modules/clone/', + packageDependencies: [['clone', 'npm:2.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clone-buffer', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/clone-buffer-npm-1.0.0-7a16490ce4-70d92e1482.zip/node_modules/clone-buffer/', + packageDependencies: [['clone-buffer', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clone-deep', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/clone-deep-npm-4.0.1-70adab92c8-b0146d66ca.zip/node_modules/clone-deep/', + packageDependencies: [ + ['clone-deep', 'npm:4.0.1'], + ['is-plain-object', 'npm:2.0.4'], + ['kind-of', 'npm:6.0.3'], + ['shallow-clone', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clone-regexp', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/clone-regexp-npm-1.0.1-4195b246c6-771ca64cd0.zip/node_modules/clone-regexp/', + packageDependencies: [ + ['clone-regexp', 'npm:1.0.1'], + ['is-regexp', 'npm:1.0.0'], + ['is-supported-regexp-flag', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clone-response', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/clone-response-npm-1.0.2-135ae8239d-71832f9219.zip/node_modules/clone-response/', + packageDependencies: [ + ['clone-response', 'npm:1.0.2'], + ['mimic-response', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'clone-stats', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/clone-stats-npm-1.0.0-cca25a0a42-fc70411afb.zip/node_modules/clone-stats/', + packageDependencies: [['clone-stats', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cloneable-readable', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/cloneable-readable-npm-1.1.3-a5888ff6e9-b7dda8125e.zip/node_modules/cloneable-readable/', + packageDependencies: [ + ['cloneable-readable', 'npm:1.1.3'], + ['inherits', 'npm:2.0.4'], + ['process-nextick-args', 'npm:2.0.1'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'co', + [ + [ + 'npm:4.6.0', + { + packageLocation: + './.yarn/cache/co-npm-4.6.0-03f2d1feb6-3f22dbbe0f.zip/node_modules/co/', + packageDependencies: [['co', 'npm:4.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'coa', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/coa-npm-2.0.2-f6033e2e60-8724977fd0.zip/node_modules/coa/', + packageDependencies: [ + ['coa', 'npm:2.0.2'], + ['@types/q', 'npm:1.5.4'], + ['chalk', 'npm:2.4.2'], + ['q', 'npm:1.5.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'code-point-at', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/code-point-at-npm-1.1.0-37de5fe566-7d9837296e.zip/node_modules/code-point-at/', + packageDependencies: [['code-point-at', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'codemirror', + [ + [ + 'npm:5.56.0', + { + packageLocation: + './.yarn/cache/codemirror-npm-5.56.0-428befa8b1-b55f27cae2.zip/node_modules/codemirror/', + packageDependencies: [['codemirror', 'npm:5.56.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.59.1', + { + packageLocation: + './.yarn/cache/codemirror-npm-5.59.1-5a89ec25a9-42392aeac2.zip/node_modules/codemirror/', + packageDependencies: [['codemirror', 'npm:5.59.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'codemirror-graphql', + [ + [ + 'npm:0.14.0', + { + packageLocation: + './.yarn/cache/codemirror-graphql-npm-0.14.0-22e1365a1b-ef2f95523e.zip/node_modules/codemirror-graphql/', + packageDependencies: [['codemirror-graphql', 'npm:0.14.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:03cd25c4d9e3c4537fdae1f1d2b87684da41cf9a7df2bdfc043735a2d0dd8a7c14ab6f5cc81216f47340443866e0560e1edfa5d2ff3f7f5e733e1e01f152b4d7#npm:0.14.0', + { + packageLocation: + './.yarn/$$virtual/codemirror-graphql-virtual-62f5b60d82/0/cache/codemirror-graphql-npm-0.14.0-22e1365a1b-ef2f95523e.zip/node_modules/codemirror-graphql/', + packageDependencies: [ + [ + 'codemirror-graphql', + 'virtual:03cd25c4d9e3c4537fdae1f1d2b87684da41cf9a7df2bdfc043735a2d0dd8a7c14ab6f5cc81216f47340443866e0560e1edfa5d2ff3f7f5e733e1e01f152b4d7#npm:0.14.0', + ], + ['@types/codemirror', null], + ['@types/graphql', null], + ['codemirror', 'npm:5.56.0'], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-language-service-interface', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.7.0', + ], + [ + 'graphql-language-service-parser', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0', + ], + [ + 'graphql-language-service-utils', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4', + ], + ], + packagePeers: [ + '@types/codemirror', + '@types/graphql', + 'codemirror', + 'graphql', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'collapse-white-space', + [ + [ + 'npm:1.0.6', + { + packageLocation: + './.yarn/cache/collapse-white-space-npm-1.0.6-6fdbf5906f-beca17619b.zip/node_modules/collapse-white-space/', + packageDependencies: [['collapse-white-space', 'npm:1.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'collect-v8-coverage', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/collect-v8-coverage-npm-1.0.1-39dec86bad-2fc4c79300.zip/node_modules/collect-v8-coverage/', + packageDependencies: [['collect-v8-coverage', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'collection-visit', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/collection-visit-npm-1.0.0-aba2d5defc-c73cb1316c.zip/node_modules/collection-visit/', + packageDependencies: [ + ['collection-visit', 'npm:1.0.0'], + ['map-visit', 'npm:1.0.0'], + ['object-visit', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'color', + [ + [ + 'npm:3.1.2', + { + packageLocation: + './.yarn/cache/color-npm-3.1.2-f03bbddbdd-3fd5d29d43.zip/node_modules/color/', + packageDependencies: [ + ['color', 'npm:3.1.2'], + ['color-convert', 'npm:1.9.3'], + ['color-string', 'npm:1.5.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.3', + { + packageLocation: + './.yarn/cache/color-npm-3.1.3-f860a464c5-d0f4139e98.zip/node_modules/color/', + packageDependencies: [ + ['color', 'npm:3.1.3'], + ['color-convert', 'npm:1.9.3'], + ['color-string', 'npm:1.5.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'color-convert', + [ + [ + 'npm:1.9.3', + { + packageLocation: + './.yarn/cache/color-convert-npm-1.9.3-1fe690075e-5f244daa3d.zip/node_modules/color-convert/', + packageDependencies: [ + ['color-convert', 'npm:1.9.3'], + ['color-name', 'npm:1.1.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/color-convert-npm-2.0.1-79730e935b-3d5d8a011a.zip/node_modules/color-convert/', + packageDependencies: [ + ['color-convert', 'npm:2.0.1'], + ['color-name', 'npm:1.1.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'color-name', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/color-name-npm-1.1.3-728b7b5d39-d8b91bb90a.zip/node_modules/color-name/', + packageDependencies: [['color-name', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/color-name-npm-1.1.4-025792b0ea-3e1c9a4dee.zip/node_modules/color-name/', + packageDependencies: [['color-name', 'npm:1.1.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'color-string', + [ + [ + 'npm:1.5.3', + { + packageLocation: + './.yarn/cache/color-string-npm-1.5.3-08e3e5cc80-b860fba427.zip/node_modules/color-string/', + packageDependencies: [ + ['color-string', 'npm:1.5.3'], + ['color-name', 'npm:1.1.4'], + ['simple-swizzle', 'npm:0.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.5.5', + { + packageLocation: + './.yarn/cache/color-string-npm-1.5.5-dada7277d1-3d7799f70d.zip/node_modules/color-string/', + packageDependencies: [ + ['color-string', 'npm:1.5.5'], + ['color-name', 'npm:1.1.4'], + ['simple-swizzle', 'npm:0.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'colorette', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/colorette-npm-1.2.1-1d4664fcf6-1cc21ad4b8.zip/node_modules/colorette/', + packageDependencies: [['colorette', 'npm:1.2.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/colorette-npm-1.2.2-da75bd0b32-e240f0c94b.zip/node_modules/colorette/', + packageDependencies: [['colorette', 'npm:1.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'colors', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/colors-npm-1.0.3-6c5d583ab3-d5b1f35612.zip/node_modules/colors/', + packageDependencies: [['colors', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/colors-npm-1.4.0-7e2cf12234-a0f266ac04.zip/node_modules/colors/', + packageDependencies: [['colors', 'npm:1.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'combined-stream', + [ + [ + 'npm:1.0.8', + { + packageLocation: + './.yarn/cache/combined-stream-npm-1.0.8-dc14d4a63a-5791ce7944.zip/node_modules/combined-stream/', + packageDependencies: [ + ['combined-stream', 'npm:1.0.8'], + ['delayed-stream', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'comma-separated-tokens', + [ + [ + 'npm:1.0.8', + { + packageLocation: + './.yarn/cache/comma-separated-tokens-npm-1.0.8-00dbbf3418-31a5a2fa6e.zip/node_modules/comma-separated-tokens/', + packageDependencies: [['comma-separated-tokens', 'npm:1.0.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'commander', + [ + [ + 'npm:2.20.3', + { + packageLocation: + './.yarn/cache/commander-npm-2.20.3-d8dcbaa39b-b73428e97d.zip/node_modules/commander/', + packageDependencies: [['commander', 'npm:2.20.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/commander-npm-4.1.1-22a0fe921b-448585071b.zip/node_modules/commander/', + packageDependencies: [['commander', 'npm:4.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/commander-npm-5.1.0-7e939e7832-d16141ea7f.zip/node_modules/commander/', + packageDependencies: [['commander', 'npm:5.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'comment-json', + [ + [ + 'npm:2.4.2', + { + packageLocation: + './.yarn/cache/comment-json-npm-2.4.2-ad40caa02b-80bc181741.zip/node_modules/comment-json/', + packageDependencies: [ + ['comment-json', 'npm:2.4.2'], + ['core-util-is', 'npm:1.0.2'], + ['esprima', 'npm:4.0.1'], + ['has-own-prop', 'npm:2.0.0'], + ['repeat-string', 'npm:1.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'common-tags', + [ + [ + 'npm:1.8.0', + { + packageLocation: + './.yarn/cache/common-tags-npm-1.8.0-7a31956e16-f37a868d86.zip/node_modules/common-tags/', + packageDependencies: [['common-tags', 'npm:1.8.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'commondir', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/commondir-npm-1.0.1-291b790340-98f18ad14f.zip/node_modules/commondir/', + packageDependencies: [['commondir', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'component-emitter', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/component-emitter-npm-1.3.0-4b848565b9-fc4edbf101.zip/node_modules/component-emitter/', + packageDependencies: [['component-emitter', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'compose-function', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/compose-function-npm-3.0.3-78fa572363-069b4e1a82.zip/node_modules/compose-function/', + packageDependencies: [ + ['compose-function', 'npm:3.0.3'], + ['arity-n', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'concat-map', + [ + [ + 'npm:0.0.1', + { + packageLocation: + './.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-554e28d9ee.zip/node_modules/concat-map/', + packageDependencies: [['concat-map', 'npm:0.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'concat-stream', + [ + [ + 'npm:1.6.2', + { + packageLocation: + './.yarn/cache/concat-stream-npm-1.6.2-2bee337060-7a97b7a7d0.zip/node_modules/concat-stream/', + packageDependencies: [ + ['concat-stream', 'npm:1.6.2'], + ['buffer-from', 'npm:1.1.1'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ['typedarray', 'npm:0.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'concurrently', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/concurrently-npm-6.0.0-30b74cef1f-c5ef6bb312.zip/node_modules/concurrently/', + packageDependencies: [ + ['concurrently', 'npm:6.0.0'], + ['chalk', 'npm:4.1.0'], + ['date-fns', 'npm:2.18.0'], + ['lodash', 'npm:4.17.20'], + ['read-pkg', 'npm:5.2.0'], + ['rxjs', 'npm:6.6.6'], + ['spawn-command', 'npm:0.0.2'], + ['supports-color', 'npm:8.1.1'], + ['tree-kill', 'npm:1.2.2'], + ['yargs', 'npm:16.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'conf', + [ + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/conf-npm-1.4.0-da21ebea11-36c3ee7942.zip/node_modules/conf/', + packageDependencies: [ + ['conf', 'npm:1.4.0'], + ['dot-prop', 'npm:4.2.0'], + ['env-paths', 'npm:1.0.0'], + ['make-dir', 'npm:1.3.0'], + ['pkg-up', 'npm:2.0.0'], + ['write-file-atomic', 'npm:2.4.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'config-chain', + [ + [ + 'npm:1.1.12', + { + packageLocation: + './.yarn/cache/config-chain-npm-1.1.12-9791350b34-caf4b96491.zip/node_modules/config-chain/', + packageDependencies: [ + ['config-chain', 'npm:1.1.12'], + ['ini', 'npm:1.3.5'], + ['proto-list', 'npm:1.2.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'configstore', + [ + [ + 'npm:3.1.2', + { + packageLocation: + './.yarn/cache/configstore-npm-3.1.2-bd3a1d9154-3b7185bc3d.zip/node_modules/configstore/', + packageDependencies: [ + ['configstore', 'npm:3.1.2'], + ['dot-prop', 'npm:4.2.0'], + ['graceful-fs', 'npm:4.2.4'], + ['make-dir', 'npm:1.3.0'], + ['unique-string', 'npm:1.0.0'], + ['write-file-atomic', 'npm:2.4.3'], + ['xdg-basedir', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/configstore-npm-5.0.1-739433cdc5-81dd877bf7.zip/node_modules/configstore/', + packageDependencies: [ + ['configstore', 'npm:5.0.1'], + ['dot-prop', 'npm:5.2.0'], + ['graceful-fs', 'npm:4.2.4'], + ['make-dir', 'npm:3.1.0'], + ['unique-string', 'npm:2.0.0'], + ['write-file-atomic', 'npm:3.0.3'], + ['xdg-basedir', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'console-browserify', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/console-browserify-npm-1.2.0-5619eeb6ff-ddc0e717a4.zip/node_modules/console-browserify/', + packageDependencies: [['console-browserify', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'console-control-strings', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-58a404d951.zip/node_modules/console-control-strings/', + packageDependencies: [['console-control-strings', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'constant-case', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/constant-case-npm-3.0.3-a0e4e73276-96ef30a349.zip/node_modules/constant-case/', + packageDependencies: [ + ['constant-case', 'npm:3.0.3'], + ['no-case', 'npm:3.0.3'], + ['tslib', 'npm:1.13.0'], + ['upper-case', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'constants-browserify', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/constants-browserify-npm-1.0.0-b9a9bcfe4b-108cd8ebfa.zip/node_modules/constants-browserify/', + packageDependencies: [['constants-browserify', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'content-disposition', + [ + [ + 'npm:0.5.3', + { + packageLocation: + './.yarn/cache/content-disposition-npm-0.5.3-9a9a567e17-8f1f235c04.zip/node_modules/content-disposition/', + packageDependencies: [ + ['content-disposition', 'npm:0.5.3'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'content-type', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/content-type-npm-1.0.4-3b1a5ca16b-ff6e19cbf2.zip/node_modules/content-type/', + packageDependencies: [['content-type', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'convert-source-map', + [ + [ + 'npm:0.3.5', + { + packageLocation: + './.yarn/cache/convert-source-map-npm-0.3.5-23a7c1e829-d319375544.zip/node_modules/convert-source-map/', + packageDependencies: [['convert-source-map', 'npm:0.3.5']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.7.0', + { + packageLocation: + './.yarn/cache/convert-source-map-npm-1.7.0-f9727424f7-b10fbf041e.zip/node_modules/convert-source-map/', + packageDependencies: [ + ['convert-source-map', 'npm:1.7.0'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cookie', + [ + [ + 'npm:0.4.0', + { + packageLocation: + './.yarn/cache/cookie-npm-0.4.0-4b3d629e45-7aaef4b642.zip/node_modules/cookie/', + packageDependencies: [['cookie', 'npm:0.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cookie-parser', + [ + [ + 'npm:1.4.5', + { + packageLocation: + './.yarn/cache/cookie-parser-npm-1.4.5-85a59b20ec-a3eeda832d.zip/node_modules/cookie-parser/', + packageDependencies: [ + ['cookie-parser', 'npm:1.4.5'], + ['cookie', 'npm:0.4.0'], + ['cookie-signature', 'npm:1.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cookie-signature', + [ + [ + 'npm:1.0.6', + { + packageLocation: + './.yarn/cache/cookie-signature-npm-1.0.6-93f325f7f0-305054e102.zip/node_modules/cookie-signature/', + packageDependencies: [['cookie-signature', 'npm:1.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'copy-concurrently', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/copy-concurrently-npm-1.0.5-a20f3c4b55-62ad9de2dc.zip/node_modules/copy-concurrently/', + packageDependencies: [ + ['copy-concurrently', 'npm:1.0.5'], + ['aproba', 'npm:1.2.0'], + ['fs-write-stream-atomic', 'npm:1.0.10'], + ['iferr', 'npm:0.1.5'], + ['mkdirp', 'npm:0.5.5'], + ['rimraf', 'npm:2.7.1'], + ['run-queue', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'copy-descriptor', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/copy-descriptor-npm-0.1.1-864db4ab66-c052cf571f.zip/node_modules/copy-descriptor/', + packageDependencies: [['copy-descriptor', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'copy-to-clipboard', + [ + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/copy-to-clipboard-npm-3.3.1-18029bce99-9707f2e405.zip/node_modules/copy-to-clipboard/', + packageDependencies: [ + ['copy-to-clipboard', 'npm:3.3.1'], + ['toggle-selection', 'npm:1.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'core-js', + [ + [ + 'npm:2.6.11', + { + packageLocation: + './.yarn/unplugged/core-js-npm-2.6.11-15178ded27/node_modules/core-js/', + packageDependencies: [['core-js', 'npm:2.6.11']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.6.5', + { + packageLocation: + './.yarn/unplugged/core-js-npm-3.6.5-5941340066/node_modules/core-js/', + packageDependencies: [['core-js', 'npm:3.6.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'core-js-compat', + [ + [ + 'npm:3.6.5', + { + packageLocation: + './.yarn/cache/core-js-compat-npm-3.6.5-f6ba2f501c-b263b5313f.zip/node_modules/core-js-compat/', + packageDependencies: [ + ['core-js-compat', 'npm:3.6.5'], + ['browserslist', 'npm:4.13.0'], + ['semver', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'core-util-is', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/core-util-is-npm-1.0.2-9fc2b94dc3-089015ee3c.zip/node_modules/core-util-is/', + packageDependencies: [['core-util-is', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cors', + [ + [ + 'npm:2.8.5', + { + packageLocation: + './.yarn/cache/cors-npm-2.8.5-c9935a2d12-c83e88c154.zip/node_modules/cors/', + packageDependencies: [ + ['cors', 'npm:2.8.5'], + ['object-assign', 'npm:4.1.1'], + ['vary', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cosmiconfig', + [ + [ + 'npm:5.2.1', + { + packageLocation: + './.yarn/cache/cosmiconfig-npm-5.2.1-4a84462a41-02d51fb288.zip/node_modules/cosmiconfig/', + packageDependencies: [ + ['cosmiconfig', 'npm:5.2.1'], + ['import-fresh', 'npm:2.0.0'], + ['is-directory', 'npm:0.3.1'], + ['js-yaml', 'npm:3.14.0'], + ['parse-json', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.0', + { + packageLocation: + './.yarn/cache/cosmiconfig-npm-7.0.0-b9d0d7d156-151fcb9177.zip/node_modules/cosmiconfig/', + packageDependencies: [ + ['cosmiconfig', 'npm:7.0.0'], + ['@types/parse-json', 'npm:4.0.0'], + ['import-fresh', 'npm:3.3.0'], + ['parse-json', 'npm:5.0.1'], + ['path-type', 'npm:4.0.0'], + ['yaml', 'npm:1.10.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'create-ecdh', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/create-ecdh-npm-4.0.3-c40d23c7aa-ea4cc33d33.zip/node_modules/create-ecdh/', + packageDependencies: [ + ['create-ecdh', 'npm:4.0.3'], + ['bn.js', 'npm:4.11.9'], + ['elliptic', 'npm:6.5.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'create-error-class', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/create-error-class-npm-3.0.2-b6f6443221-cbd6512694.zip/node_modules/create-error-class/', + packageDependencies: [ + ['create-error-class', 'npm:3.0.2'], + ['capture-stack-trace', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'create-hash', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/create-hash-npm-1.2.0-afd048e1ce-5565182efc.zip/node_modules/create-hash/', + packageDependencies: [ + ['create-hash', 'npm:1.2.0'], + ['cipher-base', 'npm:1.0.4'], + ['inherits', 'npm:2.0.4'], + ['md5.js', 'npm:1.3.5'], + ['ripemd160', 'npm:2.0.2'], + ['sha.js', 'npm:2.4.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'create-hmac', + [ + [ + 'npm:1.1.7', + { + packageLocation: + './.yarn/cache/create-hmac-npm-1.1.7-b4ef32668a-98957676a9.zip/node_modules/create-hmac/', + packageDependencies: [ + ['create-hmac', 'npm:1.1.7'], + ['cipher-base', 'npm:1.0.4'], + ['create-hash', 'npm:1.2.0'], + ['inherits', 'npm:2.0.4'], + ['ripemd160', 'npm:2.0.2'], + ['safe-buffer', 'npm:5.1.2'], + ['sha.js', 'npm:2.4.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cross-fetch', + [ + [ + 'npm:3.0.5', + { + packageLocation: + './.yarn/cache/cross-fetch-npm-3.0.5-7ab5c1d55f-99f0f4ae22.zip/node_modules/cross-fetch/', + packageDependencies: [ + ['cross-fetch', 'npm:3.0.5'], + ['node-fetch', 'npm:2.6.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.6', + { + packageLocation: + './.yarn/cache/cross-fetch-npm-3.0.6-6e1e683a4e-a491ad1b89.zip/node_modules/cross-fetch/', + packageDependencies: [ + ['cross-fetch', 'npm:3.0.6'], + ['node-fetch', 'npm:2.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cross-spawn', + [ + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/cross-spawn-npm-5.1.0-a3e220603e-96018c42a9.zip/node_modules/cross-spawn/', + packageDependencies: [ + ['cross-spawn', 'npm:5.1.0'], + ['lru-cache', 'npm:4.0.2'], + ['shebang-command', 'npm:1.2.0'], + ['which', 'npm:1.3.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.5', + { + packageLocation: + './.yarn/cache/cross-spawn-npm-6.0.5-2deab6c280-05fbbf957d.zip/node_modules/cross-spawn/', + packageDependencies: [ + ['cross-spawn', 'npm:6.0.5'], + ['nice-try', 'npm:1.0.5'], + ['path-key', 'npm:2.0.1'], + ['semver', 'npm:5.7.1'], + ['shebang-command', 'npm:1.2.0'], + ['which', 'npm:1.3.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.3', + { + packageLocation: + './.yarn/cache/cross-spawn-npm-7.0.3-e4ff3e65b3-51f10036f5.zip/node_modules/cross-spawn/', + packageDependencies: [ + ['cross-spawn', 'npm:7.0.3'], + ['path-key', 'npm:3.1.1'], + ['shebang-command', 'npm:2.0.0'], + ['which', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cross-spawn-async', + [ + [ + 'npm:2.2.5', + { + packageLocation: + './.yarn/cache/cross-spawn-async-npm-2.2.5-414a7d390a-d16a9ed3ae.zip/node_modules/cross-spawn-async/', + packageDependencies: [ + ['cross-spawn-async', 'npm:2.2.5'], + ['lru-cache', 'npm:4.0.2'], + ['which', 'npm:1.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'crypto', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/crypto-npm-1.0.1-7cb8e3dca6-e3ecafe330.zip/node_modules/crypto/', + packageDependencies: [['crypto', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'crypto-browserify', + [ + [ + 'npm:3.12.0', + { + packageLocation: + './.yarn/cache/crypto-browserify-npm-3.12.0-bed454fef0-8b558367b3.zip/node_modules/crypto-browserify/', + packageDependencies: [ + ['crypto-browserify', 'npm:3.12.0'], + ['browserify-cipher', 'npm:1.0.1'], + ['browserify-sign', 'npm:4.2.0'], + ['create-ecdh', 'npm:4.0.3'], + ['create-hash', 'npm:1.2.0'], + ['create-hmac', 'npm:1.1.7'], + ['diffie-hellman', 'npm:5.0.3'], + ['inherits', 'npm:2.0.4'], + ['pbkdf2', 'npm:3.1.1'], + ['public-encrypt', 'npm:4.0.3'], + ['randombytes', 'npm:2.1.0'], + ['randomfill', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'crypto-js', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/crypto-js-npm-4.0.0-cc8d8715a9-fdd1415b9e.zip/node_modules/crypto-js/', + packageDependencies: [['crypto-js', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'crypto-random-string', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/crypto-random-string-npm-1.0.0-e708c14263-0876b316cc.zip/node_modules/crypto-random-string/', + packageDependencies: [['crypto-random-string', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/crypto-random-string-npm-2.0.0-8ab47992ef-7bc19f6caf.zip/node_modules/crypto-random-string/', + packageDependencies: [['crypto-random-string', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css', + [ + [ + 'npm:2.2.4', + { + packageLocation: + './.yarn/cache/css-npm-2.2.4-2a363d6a5d-b94365b3c0.zip/node_modules/css/', + packageDependencies: [ + ['css', 'npm:2.2.4'], + ['inherits', 'npm:2.0.4'], + ['source-map', 'npm:0.6.1'], + ['source-map-resolve', 'npm:0.5.3'], + ['urix', 'npm:0.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-box-model', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/css-box-model-npm-1.2.1-d4e0001730-6a66067d0f.zip/node_modules/css-box-model/', + packageDependencies: [ + ['css-box-model', 'npm:1.2.1'], + ['tiny-invariant', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-color-keywords', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-a820d3a6eb.zip/node_modules/css-color-keywords/', + packageDependencies: [['css-color-keywords', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-color-names', + [ + [ + 'npm:0.0.4', + { + packageLocation: + './.yarn/cache/css-color-names-npm-0.0.4-be9111e9bd-6842f38c3a.zip/node_modules/css-color-names/', + packageDependencies: [['css-color-names', 'npm:0.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-declaration-sorter', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/css-declaration-sorter-npm-4.0.1-b49a53b330-9cd18a0cca.zip/node_modules/css-declaration-sorter/', + packageDependencies: [ + ['css-declaration-sorter', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ['timsort', 'npm:0.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-loader', + [ + [ + 'npm:3.5.3', + { + packageLocation: + './.yarn/cache/css-loader-npm-3.5.3-0f886851e6-910936f0ac.zip/node_modules/css-loader/', + packageDependencies: [['css-loader', 'npm:3.5.3']], + linkType: 'SOFT', + }, + ], + [ + 'npm:4.3.0', + { + packageLocation: + './.yarn/cache/css-loader-npm-4.3.0-33464197c9-1f441ac567.zip/node_modules/css-loader/', + packageDependencies: [['css-loader', 'npm:4.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.3.0', + { + packageLocation: + './.yarn/$$virtual/css-loader-virtual-ec09201450/0/cache/css-loader-npm-4.3.0-33464197c9-1f441ac567.zip/node_modules/css-loader/', + packageDependencies: [ + [ + 'css-loader', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.3.0', + ], + ['@types/webpack', null], + ['camelcase', 'npm:6.0.0'], + ['cssesc', 'npm:3.0.0'], + ['icss-utils', 'npm:4.1.1'], + ['loader-utils', 'npm:2.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-modules-extract-imports', 'npm:2.0.0'], + ['postcss-modules-local-by-default', 'npm:3.0.3'], + ['postcss-modules-scope', 'npm:2.2.0'], + ['postcss-modules-values', 'npm:3.0.0'], + ['postcss-value-parser', 'npm:4.1.0'], + ['schema-utils', 'npm:2.7.1'], + ['semver', 'npm:7.3.2'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:3.5.3', + { + packageLocation: + './.yarn/$$virtual/css-loader-virtual-e2b1984584/0/cache/css-loader-npm-3.5.3-0f886851e6-910936f0ac.zip/node_modules/css-loader/', + packageDependencies: [ + [ + 'css-loader', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:3.5.3', + ], + ['@types/webpack', null], + ['camelcase', 'npm:5.3.1'], + ['cssesc', 'npm:3.0.0'], + ['icss-utils', 'npm:4.1.1'], + ['loader-utils', 'npm:1.2.3'], + ['normalize-path', 'npm:3.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-modules-extract-imports', 'npm:2.0.0'], + ['postcss-modules-local-by-default', 'npm:3.0.3'], + ['postcss-modules-scope', 'npm:2.2.0'], + ['postcss-modules-values', 'npm:3.0.0'], + ['postcss-value-parser', 'npm:4.1.0'], + ['schema-utils', 'npm:2.7.0'], + ['semver', 'npm:6.3.0'], + ['webpack', 'npm:4.44.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.5.3', + { + packageLocation: + './.yarn/$$virtual/css-loader-virtual-a3d46ed00b/0/cache/css-loader-npm-3.5.3-0f886851e6-910936f0ac.zip/node_modules/css-loader/', + packageDependencies: [ + [ + 'css-loader', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.5.3', + ], + ['@types/webpack', null], + ['camelcase', 'npm:5.3.1'], + ['cssesc', 'npm:3.0.0'], + ['icss-utils', 'npm:4.1.1'], + ['loader-utils', 'npm:1.2.3'], + ['normalize-path', 'npm:3.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-modules-extract-imports', 'npm:2.0.0'], + ['postcss-modules-local-by-default', 'npm:3.0.3'], + ['postcss-modules-scope', 'npm:2.2.0'], + ['postcss-modules-values', 'npm:3.0.0'], + ['postcss-value-parser', 'npm:4.1.0'], + ['schema-utils', 'npm:2.7.0'], + ['semver', 'npm:6.3.0'], + ['webpack', 'npm:4.43.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-select', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/css-select-npm-2.1.0-c123ed1e29-b534aad04a.zip/node_modules/css-select/', + packageDependencies: [ + ['css-select', 'npm:2.1.0'], + ['boolbase', 'npm:1.0.0'], + ['css-what', 'npm:3.3.0'], + ['domutils', 'npm:1.7.0'], + ['nth-check', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-select-base-adapter', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/css-select-base-adapter-npm-0.1.1-5a43b37539-98cea0d8dc.zip/node_modules/css-select-base-adapter/', + packageDependencies: [['css-select-base-adapter', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-to-react-native', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/css-to-react-native-npm-3.0.0-ab07d67d74-d035e1a126.zip/node_modules/css-to-react-native/', + packageDependencies: [ + ['css-to-react-native', 'npm:3.0.0'], + ['camelize', 'npm:1.0.0'], + ['css-color-keywords', 'npm:1.0.0'], + ['postcss-value-parser', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-tree', + [ + [ + 'npm:1.0.0-alpha.37', + { + packageLocation: + './.yarn/cache/css-tree-npm-1.0.0-alpha.37-0186f4818a-29d85bad8e.zip/node_modules/css-tree/', + packageDependencies: [ + ['css-tree', 'npm:1.0.0-alpha.37'], + ['mdn-data', 'npm:2.0.4'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0-alpha.39', + { + packageLocation: + './.yarn/cache/css-tree-npm-1.0.0-alpha.39-72ebe851b6-2b3b48563f.zip/node_modules/css-tree/', + packageDependencies: [ + ['css-tree', 'npm:1.0.0-alpha.39'], + ['mdn-data', 'npm:2.0.6'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-unit-converter', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/css-unit-converter-npm-1.1.2-277ce2166c-1ace5626f1.zip/node_modules/css-unit-converter/', + packageDependencies: [['css-unit-converter', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css-what', + [ + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/css-what-npm-3.3.0-595e826aa9-4e00fc59a9.zip/node_modules/css-what/', + packageDependencies: [['css-what', 'npm:3.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'css.escape', + [ + [ + 'npm:1.5.1', + { + packageLocation: + './.yarn/cache/css.escape-npm-1.5.1-b24d2ba77a-44fe5e93fe.zip/node_modules/css.escape/', + packageDependencies: [['css.escape', 'npm:1.5.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssesc', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/cssesc-npm-3.0.0-15ec56f86f-673783eda1.zip/node_modules/cssesc/', + packageDependencies: [['cssesc', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano', + [ + [ + 'npm:4.1.10', + { + packageLocation: + './.yarn/cache/cssnano-npm-4.1.10-10e25c9634-7578b12389.zip/node_modules/cssnano/', + packageDependencies: [ + ['cssnano', 'npm:4.1.10'], + ['cosmiconfig', 'npm:5.2.1'], + ['cssnano-preset-default', 'npm:4.0.7'], + ['is-resolvable', 'npm:1.1.0'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-preset-default', + [ + [ + 'npm:4.0.7', + { + packageLocation: + './.yarn/cache/cssnano-preset-default-npm-4.0.7-422631428b-7e947b0e09.zip/node_modules/cssnano-preset-default/', + packageDependencies: [ + ['cssnano-preset-default', 'npm:4.0.7'], + ['css-declaration-sorter', 'npm:4.0.1'], + ['cssnano-util-raw-cache', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ['postcss-calc', 'npm:7.0.2'], + ['postcss-colormin', 'npm:4.0.3'], + ['postcss-convert-values', 'npm:4.0.1'], + ['postcss-discard-comments', 'npm:4.0.2'], + ['postcss-discard-duplicates', 'npm:4.0.2'], + ['postcss-discard-empty', 'npm:4.0.1'], + ['postcss-discard-overridden', 'npm:4.0.1'], + ['postcss-merge-longhand', 'npm:4.0.11'], + ['postcss-merge-rules', 'npm:4.0.3'], + ['postcss-minify-font-values', 'npm:4.0.2'], + ['postcss-minify-gradients', 'npm:4.0.2'], + ['postcss-minify-params', 'npm:4.0.2'], + ['postcss-minify-selectors', 'npm:4.0.2'], + ['postcss-normalize-charset', 'npm:4.0.1'], + ['postcss-normalize-display-values', 'npm:4.0.2'], + ['postcss-normalize-positions', 'npm:4.0.2'], + ['postcss-normalize-repeat-style', 'npm:4.0.2'], + ['postcss-normalize-string', 'npm:4.0.2'], + ['postcss-normalize-timing-functions', 'npm:4.0.2'], + ['postcss-normalize-unicode', 'npm:4.0.1'], + ['postcss-normalize-url', 'npm:4.0.1'], + ['postcss-normalize-whitespace', 'npm:4.0.2'], + ['postcss-ordered-values', 'npm:4.1.2'], + ['postcss-reduce-initial', 'npm:4.0.3'], + ['postcss-reduce-transforms', 'npm:4.0.2'], + ['postcss-svgo', 'npm:4.0.2'], + ['postcss-unique-selectors', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-preset-simple', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/cssnano-preset-simple-npm-1.1.4-9164ab1822-a9b16d1aa7.zip/node_modules/cssnano-preset-simple/', + packageDependencies: [ + ['cssnano-preset-simple', 'npm:1.1.4'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/cssnano-preset-simple-npm-1.2.1-c4f1a81895-67e05d4fa6.zip/node_modules/cssnano-preset-simple/', + packageDependencies: [ + ['cssnano-preset-simple', 'npm:1.2.1'], + ['caniuse-lite', 'npm:1.0.30001107'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-simple', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/cssnano-simple-npm-1.0.5-7a39423314-058b2a9f32.zip/node_modules/cssnano-simple/', + packageDependencies: [ + ['cssnano-simple', 'npm:1.0.5'], + ['cssnano-preset-simple', 'npm:1.1.4'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/cssnano-simple-npm-1.2.1-a79430acd3-79b99d4fe1.zip/node_modules/cssnano-simple/', + packageDependencies: [ + ['cssnano-simple', 'npm:1.2.1'], + ['cssnano-preset-simple', 'npm:1.2.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-util-get-arguments', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/cssnano-util-get-arguments-npm-4.0.0-bcb28d23a7-4001786367.zip/node_modules/cssnano-util-get-arguments/', + packageDependencies: [ + ['cssnano-util-get-arguments', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-util-get-match', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/cssnano-util-get-match-npm-4.0.0-3d9b0fc2c4-1220816e19.zip/node_modules/cssnano-util-get-match/', + packageDependencies: [['cssnano-util-get-match', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-util-raw-cache', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/cssnano-util-raw-cache-npm-4.0.1-dbb3751499-d3eb80e96f.zip/node_modules/cssnano-util-raw-cache/', + packageDependencies: [ + ['cssnano-util-raw-cache', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssnano-util-same-parent', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/cssnano-util-same-parent-npm-4.0.1-2a3442fd72-c01d567f9d.zip/node_modules/cssnano-util-same-parent/', + packageDependencies: [ + ['cssnano-util-same-parent', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'csso', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/csso-npm-4.0.3-550f0cdc39-b573974336.zip/node_modules/csso/', + packageDependencies: [ + ['csso', 'npm:4.0.3'], + ['css-tree', 'npm:1.0.0-alpha.39'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssom', + [ + [ + 'npm:0.3.8', + { + packageLocation: + './.yarn/cache/cssom-npm-0.3.8-a9291d36ff-b7fb8b13aa.zip/node_modules/cssom/', + packageDependencies: [['cssom', 'npm:0.3.8']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.4.4', + { + packageLocation: + './.yarn/cache/cssom-npm-0.4.4-818f01a6e3-db81cac442.zip/node_modules/cssom/', + packageDependencies: [['cssom', 'npm:0.4.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cssstyle', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/cssstyle-npm-2.3.0-b5d112c450-a778180d2f.zip/node_modules/cssstyle/', + packageDependencies: [ + ['cssstyle', 'npm:2.3.0'], + ['cssom', 'npm:0.3.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'csstype', + [ + [ + 'npm:2.6.11', + { + packageLocation: + './.yarn/cache/csstype-npm-2.6.11-77160fd1b8-b5de145e84.zip/node_modules/csstype/', + packageDependencies: [['csstype', 'npm:2.6.11']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/csstype-npm-3.0.2-fe855324c2-acf2852a3c.zip/node_modules/csstype/', + packageDependencies: [['csstype', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'currently-unhandled', + [ + [ + 'npm:0.4.1', + { + packageLocation: + './.yarn/cache/currently-unhandled-npm-0.4.1-38eddab665-1968b4b576.zip/node_modules/currently-unhandled/', + packageDependencies: [ + ['currently-unhandled', 'npm:0.4.1'], + ['array-find-index', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'cyclist', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/cyclist-npm-1.0.1-e4eaffe3c5-74bc0a48c3.zip/node_modules/cyclist/', + packageDependencies: [['cyclist', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'd', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/d-npm-1.0.1-64afbbc689-cf9b770965.zip/node_modules/d/', + packageDependencies: [ + ['d', 'npm:1.0.1'], + ['es5-ext', 'npm:0.10.53'], + ['type', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'danger', + [ + [ + 'npm:10.6.0', + { + packageLocation: + './.yarn/cache/danger-npm-10.6.0-27690e4121-70672c6636.zip/node_modules/danger/', + packageDependencies: [ + ['danger', 'npm:10.6.0'], + ['@babel/polyfill', 'npm:7.12.1'], + ['@octokit/rest', 'npm:16.43.2'], + ['async-retry', 'npm:1.2.3'], + ['chalk', 'npm:2.4.2'], + ['commander', 'npm:2.20.3'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['fast-json-patch', 'npm:3.0.0-1'], + ['get-stdin', 'npm:6.0.0'], + ['gitlab', 'npm:10.2.1'], + ['http-proxy-agent', 'npm:2.1.0'], + ['https-proxy-agent', 'npm:2.2.4'], + ['hyperlinker', 'npm:1.0.0'], + ['json5', 'npm:2.1.3'], + ['jsonpointer', 'npm:4.1.0'], + ['jsonwebtoken', 'npm:8.5.1'], + ['lodash.find', 'npm:4.6.0'], + ['lodash.includes', 'npm:4.3.0'], + ['lodash.isobject', 'npm:3.0.2'], + ['lodash.keys', 'npm:4.2.0'], + ['lodash.mapvalues', 'npm:4.6.0'], + ['lodash.memoize', 'npm:4.1.2'], + ['memfs-or-file-map-to-github-branch', 'npm:1.2.0'], + ['micromatch', 'npm:3.1.10'], + ['node-cleanup', 'npm:2.1.2'], + ['node-fetch', 'npm:2.6.1'], + ['override-require', 'npm:1.1.1'], + ['p-limit', 'npm:2.3.0'], + ['parse-diff', 'npm:0.7.1'], + ['parse-git-config', 'npm:2.0.3'], + ['parse-github-url', 'npm:1.0.2'], + ['parse-link-header', 'npm:1.0.1'], + ['pinpoint', 'npm:1.1.0'], + ['prettyjson', 'npm:1.2.1'], + ['readline-sync', 'npm:1.4.10'], + ['require-from-string', 'npm:2.0.2'], + ['supports-hyperlinks', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dargs', + [ + [ + 'npm:6.1.0', + { + packageLocation: + './.yarn/cache/dargs-npm-6.1.0-bc315b0bc7-8c5e307c8c.zip/node_modules/dargs/', + packageDependencies: [['dargs', 'npm:6.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dashdash', + [ + [ + 'npm:1.14.1', + { + packageLocation: + './.yarn/cache/dashdash-npm-1.14.1-be8f10a286-5959409ee4.zip/node_modules/dashdash/', + packageDependencies: [ + ['dashdash', 'npm:1.14.1'], + ['assert-plus', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'data-uri-to-buffer', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/data-uri-to-buffer-npm-3.0.0-c2647a7a16-e870d70678.zip/node_modules/data-uri-to-buffer/', + packageDependencies: [ + ['data-uri-to-buffer', 'npm:3.0.0'], + ['buffer-from', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/data-uri-to-buffer-npm-3.0.1-830646f9ee-9f28217ba7.zip/node_modules/data-uri-to-buffer/', + packageDependencies: [['data-uri-to-buffer', 'npm:3.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'data-urls', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/data-urls-npm-2.0.0-2b80c32b82-42239927c6.zip/node_modules/data-urls/', + packageDependencies: [ + ['data-urls', 'npm:2.0.0'], + ['abab', 'npm:2.0.3'], + ['whatwg-mimetype', 'npm:2.3.0'], + ['whatwg-url', 'npm:8.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dataloader', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/dataloader-npm-2.0.0-216fa8d208-0165c2e807.zip/node_modules/dataloader/', + packageDependencies: [['dataloader', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'date-fns', + [ + [ + 'npm:1.30.1', + { + packageLocation: + './.yarn/cache/date-fns-npm-1.30.1-b974a8f1e1-351fc19b04.zip/node_modules/date-fns/', + packageDependencies: [['date-fns', 'npm:1.30.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.18.0', + { + packageLocation: + './.yarn/cache/date-fns-npm-2.18.0-5edf1f6623-58320ad512.zip/node_modules/date-fns/', + packageDependencies: [['date-fns', 'npm:2.18.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.21.1', + { + packageLocation: + './.yarn/cache/date-fns-npm-2.21.1-a333d4fe93-00a2ddea10.zip/node_modules/date-fns/', + packageDependencies: [['date-fns', 'npm:2.21.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dateformat', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/dateformat-npm-3.0.3-ed02e5ddbd-8e6b36c4d3.zip/node_modules/dateformat/', + packageDependencies: [['dateformat', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'de-indent', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/de-indent-npm-1.0.2-66cccde30f-a1933a4328.zip/node_modules/de-indent/', + packageDependencies: [['de-indent', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'debug', + [ + [ + 'npm:2.6.9', + { + packageLocation: + './.yarn/cache/debug-npm-2.6.9-7d4cb597dc-559f44f98c.zip/node_modules/debug/', + packageDependencies: [['debug', 'npm:2.6.9']], + linkType: 'SOFT', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/debug-npm-3.1.0-9f0accb99b-1295acd5e0.zip/node_modules/debug/', + packageDependencies: [['debug', 'npm:3.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:3.2.6', + { + packageLocation: + './.yarn/cache/debug-npm-3.2.6-6214e40f12-619feb53b1.zip/node_modules/debug/', + packageDependencies: [['debug', 'npm:3.2.6']], + linkType: 'SOFT', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/debug-npm-4.2.0-9392baba7e-dcfb8ede26.zip/node_modules/debug/', + packageDependencies: [['debug', 'npm:4.2.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:4.3.2', + { + packageLocation: + './.yarn/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/', + packageDependencies: [['debug', 'npm:4.3.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + { + packageLocation: + './.yarn/$$virtual/debug-virtual-6806520415/0/cache/debug-npm-4.2.0-9392baba7e-dcfb8ede26.zip/node_modules/debug/', + packageDependencies: [ + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['@types/supports-color', null], + ['ms', 'npm:2.1.2'], + ['supports-color', null], + ], + packagePeers: ['@types/supports-color', 'supports-color'], + linkType: 'HARD', + }, + ], + [ + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + { + packageLocation: + './.yarn/$$virtual/debug-virtual-6cfa7ae8cd/0/cache/debug-npm-2.6.9-7d4cb597dc-559f44f98c.zip/node_modules/debug/', + packageDependencies: [ + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['ms', 'npm:2.0.0'], + ['supports-color', null], + ], + packagePeers: ['supports-color'], + linkType: 'HARD', + }, + ], + [ + 'virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2', + { + packageLocation: + './.yarn/$$virtual/debug-virtual-c8b34b81df/0/cache/debug-npm-4.3.2-f0148b6afe-5543570879.zip/node_modules/debug/', + packageDependencies: [ + [ + 'debug', + 'virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2', + ], + ['ms', 'npm:2.1.2'], + ['supports-color', null], + ], + packagePeers: ['supports-color'], + linkType: 'HARD', + }, + ], + [ + 'virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0', + { + packageLocation: + './.yarn/$$virtual/debug-virtual-77b911398e/0/cache/debug-npm-3.1.0-9f0accb99b-1295acd5e0.zip/node_modules/debug/', + packageDependencies: [ + [ + 'debug', + 'virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0', + ], + ['ms', 'npm:2.0.0'], + ['supports-color', null], + ], + packagePeers: ['supports-color'], + linkType: 'HARD', + }, + ], + [ + 'virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6', + { + packageLocation: + './.yarn/$$virtual/debug-virtual-107c5e8239/0/cache/debug-npm-3.2.6-6214e40f12-619feb53b1.zip/node_modules/debug/', + packageDependencies: [ + [ + 'debug', + 'virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6', + ], + ['ms', 'npm:2.1.2'], + ['supports-color', 'npm:5.5.0'], + ], + packagePeers: ['supports-color'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6', + { + packageLocation: + './.yarn/$$virtual/debug-virtual-b857c1e678/0/cache/debug-npm-3.2.6-6214e40f12-619feb53b1.zip/node_modules/debug/', + packageDependencies: [ + [ + 'debug', + 'virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6', + ], + ['ms', 'npm:2.1.2'], + ['supports-color', null], + ], + packagePeers: ['supports-color'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'decamelize', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/decamelize-npm-1.2.0-c5a2fdc622-8ca9d03ea8.zip/node_modules/decamelize/', + packageDependencies: [['decamelize', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'decimal.js', + [ + [ + 'npm:10.2.0', + { + packageLocation: + './.yarn/cache/decimal.js-npm-10.2.0-9960ab19c0-f60df1cce5.zip/node_modules/decimal.js/', + packageDependencies: [['decimal.js', 'npm:10.2.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:10.2.1', + { + packageLocation: + './.yarn/cache/decimal.js-npm-10.2.1-6eff4c0574-ba28b27bb8.zip/node_modules/decimal.js/', + packageDependencies: [['decimal.js', 'npm:10.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'decode-uri-component', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/decode-uri-component-npm-0.2.0-5bcc0f3597-d8cb28c33f.zip/node_modules/decode-uri-component/', + packageDependencies: [['decode-uri-component', 'npm:0.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'decompress-response', + [ + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/decompress-response-npm-3.3.0-6e7b6375c3-93b0dcc8f0.zip/node_modules/decompress-response/', + packageDependencies: [ + ['decompress-response', 'npm:3.3.0'], + ['mimic-response', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.1', + { + packageLocation: + './.yarn/cache/decompress-response-npm-4.2.1-abe5b4ebe4-d854171a10.zip/node_modules/decompress-response/', + packageDependencies: [ + ['decompress-response', 'npm:4.2.1'], + ['mimic-response', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/decompress-response-npm-6.0.0-359de2878c-bb8b8c42be.zip/node_modules/decompress-response/', + packageDependencies: [ + ['decompress-response', 'npm:6.0.0'], + ['mimic-response', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'deep-extend', + [ + [ + 'npm:0.6.0', + { + packageLocation: + './.yarn/cache/deep-extend-npm-0.6.0-e182924219-856d7f52db.zip/node_modules/deep-extend/', + packageDependencies: [['deep-extend', 'npm:0.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'deep-is', + [ + [ + 'npm:0.1.3', + { + packageLocation: + './.yarn/cache/deep-is-npm-0.1.3-0941784645-3de58f86af.zip/node_modules/deep-is/', + packageDependencies: [['deep-is', 'npm:0.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'deepmerge', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/deepmerge-npm-2.2.1-44c00cbffa-8394eb5ab1.zip/node_modules/deepmerge/', + packageDependencies: [['deepmerge', 'npm:2.2.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.2', + { + packageLocation: + './.yarn/cache/deepmerge-npm-4.2.2-112165ced2-85abf8e004.zip/node_modules/deepmerge/', + packageDependencies: [['deepmerge', 'npm:4.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'default-uid', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/default-uid-npm-1.0.0-d3139af30d-16bd750145.zip/node_modules/default-uid/', + packageDependencies: [['default-uid', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'defaults', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/defaults-npm-1.0.3-e829107b9e-974f63dd0a.zip/node_modules/defaults/', + packageDependencies: [ + ['defaults', 'npm:1.0.3'], + ['clone', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'defer-to-connect', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/defer-to-connect-npm-1.1.3-5887885147-d8632cafae.zip/node_modules/defer-to-connect/', + packageDependencies: [['defer-to-connect', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/defer-to-connect-npm-2.0.0-ef0ce813c8-0453938bfc.zip/node_modules/defer-to-connect/', + packageDependencies: [['defer-to-connect', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'define-properties', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/define-properties-npm-1.1.3-0f3115e2b9-b69c48c1b1.zip/node_modules/define-properties/', + packageDependencies: [ + ['define-properties', 'npm:1.1.3'], + ['object-keys', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'define-property', + [ + [ + 'npm:0.2.5', + { + packageLocation: + './.yarn/cache/define-property-npm-0.2.5-44a0da3575-6fed054072.zip/node_modules/define-property/', + packageDependencies: [ + ['define-property', 'npm:0.2.5'], + ['is-descriptor', 'npm:0.1.6'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/define-property-npm-1.0.0-e2fb9f44c6-9034f8f6f3.zip/node_modules/define-property/', + packageDependencies: [ + ['define-property', 'npm:1.0.0'], + ['is-descriptor', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/define-property-npm-2.0.2-4a2067c3ba-00c7ec53b5.zip/node_modules/define-property/', + packageDependencies: [ + ['define-property', 'npm:2.0.2'], + ['is-descriptor', 'npm:1.0.2'], + ['isobject', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'defined', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/defined-npm-1.0.0-891782ba77-3f17b8807d.zip/node_modules/defined/', + packageDependencies: [['defined', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'delayed-stream', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-d9dfb0a7c7.zip/node_modules/delayed-stream/', + packageDependencies: [['delayed-stream', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'delegates', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/delegates-npm-1.0.0-9b1942d75f-7459e34d29.zip/node_modules/delegates/', + packageDependencies: [['delegates', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'demo', + [ + [ + 'workspace:apps/demo', + { + packageLocation: './apps/demo/', + packageDependencies: [ + ['demo', 'workspace:apps/demo'], + [ + '@tailwindcss/ui', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0', + ], + [ + '@tinacms/react-modals', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/js-cookie', 'npm:2.2.6'], + ['@types/node', 'npm:13.13.15'], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + [ + '@urql/core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3', + ], + [ + '@xstate/react', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1', + ], + ['autoprefixer', 'npm:9.8.5'], + ['codemirror', 'npm:5.59.1'], + ['concurrently', 'npm:6.0.0'], + ['dotenv', 'npm:8.2.0'], + ['fast-glob', 'npm:3.2.4'], + ['final-form', 'npm:4.20.1'], + [ + 'formik', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5', + ], + [ + 'graphiql', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2', + ], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['js-cookie', 'npm:2.2.1'], + [ + 'next', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1', + ], + ['nodemon', 'npm:2.0.7'], + ['postcss-import', 'npm:12.0.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + [ + 'react-markdown', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + [ + 'styled-jsx', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + ], + ['tailwindcss', 'npm:1.6.0'], + ['tina-graphql', 'workspace:packages/tina-graphql'], + [ + 'tina-graphql-gateway', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway', + ], + [ + 'tina-graphql-gateway-cli', + 'workspace:packages/tina-graphql-gateway-cli', + ], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'tinacms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0', + ], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + [ + 'urql', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0', + ], + ['xstate', 'npm:4.13.0'], + ['yup', 'npm:0.28.5'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'depd', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/depd-npm-1.1.2-b0c8414da7-f45566ff70.zip/node_modules/depd/', + packageDependencies: [['depd', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dependency-graph', + [ + [ + 'npm:0.9.0', + { + packageLocation: + './.yarn/cache/dependency-graph-npm-0.9.0-628106a115-bd4be777ce.zip/node_modules/dependency-graph/', + packageDependencies: [['dependency-graph', 'npm:0.9.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'deprecation', + [ + [ + 'npm:2.3.1', + { + packageLocation: + './.yarn/cache/deprecation-npm-2.3.1-e19c92d6e7-59343a0b92.zip/node_modules/deprecation/', + packageDependencies: [['deprecation', 'npm:2.3.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'des.js', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/des.js-npm-1.0.1-9f155eddb6-74cd0aa0c5.zip/node_modules/des.js/', + packageDependencies: [ + ['des.js', 'npm:1.0.1'], + ['inherits', 'npm:2.0.4'], + ['minimalistic-assert', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'destroy', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/destroy-npm-1.0.4-a2203e01cb-5a516fc5a8.zip/node_modules/destroy/', + packageDependencies: [['destroy', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'detect-libc', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/detect-libc-npm-1.0.3-c30ac344d4-6cec442139.zip/node_modules/detect-libc/', + packageDependencies: [['detect-libc', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'detect-newline', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/detect-newline-npm-3.1.0-6d33fa8d37-6d3f67971d.zip/node_modules/detect-newline/', + packageDependencies: [['detect-newline', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'detect-node', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/detect-node-npm-2.0.4-1d5a93916d-e7648a5a91.zip/node_modules/detect-node/', + packageDependencies: [['detect-node', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'detective', + [ + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/detective-npm-5.2.0-c623eb79e6-3dd4582ab1.zip/node_modules/detective/', + packageDependencies: [ + ['detective', 'npm:5.2.0'], + ['acorn-node', 'npm:1.8.2'], + ['defined', 'npm:1.0.0'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'diff', + [ + [ + 'npm:3.5.0', + { + packageLocation: + './.yarn/cache/diff-npm-3.5.0-a321a0df19-b975b73d7e.zip/node_modules/diff/', + packageDependencies: [['diff', 'npm:3.5.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/diff-npm-4.0.2-73133c7102-81b5cd7ddd.zip/node_modules/diff/', + packageDependencies: [['diff', 'npm:4.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'diff-sequences', + [ + [ + 'npm:25.2.6', + { + packageLocation: + './.yarn/cache/diff-sequences-npm-25.2.6-d72e0e66bc-332484fc00.zip/node_modules/diff-sequences/', + packageDependencies: [['diff-sequences', 'npm:25.2.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:26.0.0', + { + packageLocation: + './.yarn/cache/diff-sequences-npm-26.0.0-4b8f552043-0b5fdd1803.zip/node_modules/diff-sequences/', + packageDependencies: [['diff-sequences', 'npm:26.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:26.3.0', + { + packageLocation: + './.yarn/cache/diff-sequences-npm-26.3.0-9df4585509-8d15e420a3.zip/node_modules/diff-sequences/', + packageDependencies: [['diff-sequences', 'npm:26.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/diff-sequences-npm-26.6.2-fbf1967570-dd1eb6e52f.zip/node_modules/diff-sequences/', + packageDependencies: [['diff-sequences', 'npm:26.6.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'diffie-hellman', + [ + [ + 'npm:5.0.3', + { + packageLocation: + './.yarn/cache/diffie-hellman-npm-5.0.3-cbef8f3171-c988be315d.zip/node_modules/diffie-hellman/', + packageDependencies: [ + ['diffie-hellman', 'npm:5.0.3'], + ['bn.js', 'npm:4.11.9'], + ['miller-rabin', 'npm:4.0.1'], + ['randombytes', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dir-glob', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/dir-glob-npm-2.0.0-e7299e1804-e826e4aa5a.zip/node_modules/dir-glob/', + packageDependencies: [ + ['dir-glob', 'npm:2.0.0'], + ['arrify', 'npm:1.0.1'], + ['path-type', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.2', + { + packageLocation: + './.yarn/cache/dir-glob-npm-2.2.2-932e08b501-1ee89c351e.zip/node_modules/dir-glob/', + packageDependencies: [ + ['dir-glob', 'npm:2.2.2'], + ['path-type', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/dir-glob-npm-3.0.1-1aea628b1b-687fa3bd60.zip/node_modules/dir-glob/', + packageDependencies: [ + ['dir-glob', 'npm:3.0.1'], + ['path-type', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'doctrine', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/doctrine-npm-3.0.0-c6f1615f04-2eae469bd2.zip/node_modules/doctrine/', + packageDependencies: [ + ['doctrine', 'npm:3.0.0'], + ['esutils', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dom-serializer', + [ + [ + 'npm:0.2.2', + { + packageLocation: + './.yarn/cache/dom-serializer-npm-0.2.2-2e24969c0e-598e05e71b.zip/node_modules/dom-serializer/', + packageDependencies: [ + ['dom-serializer', 'npm:0.2.2'], + ['domelementtype', 'npm:2.0.1'], + ['entities', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/dom-serializer-npm-1.0.1-b191d93707-45734411e4.zip/node_modules/dom-serializer/', + packageDependencies: [ + ['dom-serializer', 'npm:1.0.1'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.0.0'], + ['entities', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/dom-serializer-npm-1.1.0-c4d9e9d90f-25b0a31f78.zip/node_modules/dom-serializer/', + packageDependencies: [ + ['dom-serializer', 'npm:1.1.0'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.0.0'], + ['entities', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.3.2', + { + packageLocation: + './.yarn/cache/dom-serializer-npm-1.3.2-133de2b9ce-1a5d6970d2.zip/node_modules/dom-serializer/', + packageDependencies: [ + ['dom-serializer', 'npm:1.3.2'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:4.2.0'], + ['entities', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'domain-browser', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/domain-browser-npm-1.2.0-d99f0de5ec-39a1156552.zip/node_modules/domain-browser/', + packageDependencies: [['domain-browser', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'domelementtype', + [ + [ + 'npm:1.3.1', + { + packageLocation: + './.yarn/cache/domelementtype-npm-1.3.1-87c4b5f9f4-a4791788de.zip/node_modules/domelementtype/', + packageDependencies: [['domelementtype', 'npm:1.3.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/domelementtype-npm-2.0.1-23794ee948-9ddda35625.zip/node_modules/domelementtype/', + packageDependencies: [['domelementtype', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/domelementtype-npm-2.2.0-c37b3b15bf-70af22cd69.zip/node_modules/domelementtype/', + packageDependencies: [['domelementtype', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'domexception', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/domexception-npm-2.0.1-81b20626ae-bde9f50cb5.zip/node_modules/domexception/', + packageDependencies: [ + ['domexception', 'npm:2.0.1'], + ['webidl-conversions', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'domhandler', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/domhandler-npm-3.0.0-63db61f4b0-2d935dbe3e.zip/node_modules/domhandler/', + packageDependencies: [ + ['domhandler', 'npm:3.0.0'], + ['domelementtype', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/domhandler-npm-3.3.0-6417f7e17e-dcc53af0ac.zip/node_modules/domhandler/', + packageDependencies: [ + ['domhandler', 'npm:3.3.0'], + ['domelementtype', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/domhandler-npm-4.2.0-e0e096a781-1bdb0ae6b9.zip/node_modules/domhandler/', + packageDependencies: [ + ['domhandler', 'npm:4.2.0'], + ['domelementtype', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'domutils', + [ + [ + 'npm:1.7.0', + { + packageLocation: + './.yarn/cache/domutils-npm-1.7.0-7a1529fcfc-a5b2f01fb3.zip/node_modules/domutils/', + packageDependencies: [ + ['domutils', 'npm:1.7.0'], + ['dom-serializer', 'npm:0.2.2'], + ['domelementtype', 'npm:1.3.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/domutils-npm-2.0.0-f987b47c2d-0570562cb9.zip/node_modules/domutils/', + packageDependencies: [ + ['domutils', 'npm:2.0.0'], + ['dom-serializer', 'npm:0.2.2'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/domutils-npm-2.1.0-ec7cce0453-0a2e5a8d94.zip/node_modules/domutils/', + packageDependencies: [ + ['domutils', 'npm:2.1.0'], + ['dom-serializer', 'npm:0.2.2'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.4.2', + { + packageLocation: + './.yarn/cache/domutils-npm-2.4.2-836cfae901-43d7e55714.zip/node_modules/domutils/', + packageDependencies: [ + ['domutils', 'npm:2.4.2'], + ['dom-serializer', 'npm:1.3.2'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.3.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.6.0', + { + packageLocation: + './.yarn/cache/domutils-npm-2.6.0-7eb389c806-9da9185109.zip/node_modules/domutils/', + packageDependencies: [ + ['domutils', 'npm:2.6.0'], + ['dom-serializer', 'npm:1.3.2'], + ['domelementtype', 'npm:2.2.0'], + ['domhandler', 'npm:4.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dot-case', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/dot-case-npm-3.0.3-9d3160c2af-31e5037039.zip/node_modules/dot-case/', + packageDependencies: [ + ['dot-case', 'npm:3.0.3'], + ['no-case', 'npm:3.0.3'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dot-prop', + [ + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/dot-prop-npm-4.2.0-f61418cdac-6dadca2215.zip/node_modules/dot-prop/', + packageDependencies: [ + ['dot-prop', 'npm:4.2.0'], + ['is-obj', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/dot-prop-npm-5.2.0-195360fa83-d2f62e0b5e.zip/node_modules/dot-prop/', + packageDependencies: [ + ['dot-prop', 'npm:5.2.0'], + ['is-obj', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'dotenv', + [ + [ + 'npm:8.2.0', + { + packageLocation: + './.yarn/cache/dotenv-npm-8.2.0-6b21df4d37-16cb89cbd7.zip/node_modules/dotenv/', + packageDependencies: [['dotenv', 'npm:8.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'downgrade-root', + [ + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/downgrade-root-npm-1.2.2-2e5cfa09bb-cad65057f3.zip/node_modules/downgrade-root/', + packageDependencies: [ + ['downgrade-root', 'npm:1.2.2'], + ['default-uid', 'npm:1.0.0'], + ['is-root', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'download-stats', + [ + [ + 'npm:0.3.4', + { + packageLocation: + './.yarn/cache/download-stats-npm-0.3.4-13780ff20c-e98829584c.zip/node_modules/download-stats/', + packageDependencies: [ + ['download-stats', 'npm:0.3.4'], + ['JSONStream', 'npm:1.3.5'], + ['lazy-cache', 'npm:2.0.2'], + ['moment', 'npm:2.27.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'duplexer3', + [ + [ + 'npm:0.1.4', + { + packageLocation: + './.yarn/cache/duplexer3-npm-0.1.4-361a33d994-2a4ae463aa.zip/node_modules/duplexer3/', + packageDependencies: [['duplexer3', 'npm:0.1.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'duplexify', + [ + [ + 'npm:3.7.1', + { + packageLocation: + './.yarn/cache/duplexify-npm-3.7.1-8f4f1e821f-9581cdb8f6.zip/node_modules/duplexify/', + packageDependencies: [ + ['duplexify', 'npm:3.7.1'], + ['end-of-stream', 'npm:1.4.4'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ['stream-shift', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ecc-jsbn', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/ecc-jsbn-npm-0.1.2-85b7a7be89-5b4dd05f24.zip/node_modules/ecc-jsbn/', + packageDependencies: [ + ['ecc-jsbn', 'npm:0.1.2'], + ['jsbn', 'npm:0.1.1'], + ['safer-buffer', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ecdsa-sig-formatter', + [ + [ + 'npm:1.0.11', + { + packageLocation: + './.yarn/cache/ecdsa-sig-formatter-npm-1.0.11-b6784e7852-9d07775ee2.zip/node_modules/ecdsa-sig-formatter/', + packageDependencies: [ + ['ecdsa-sig-formatter', 'npm:1.0.11'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'editions', + [ + [ + 'npm:2.3.1', + { + packageLocation: + './.yarn/cache/editions-npm-2.3.1-09b622d955-9942b48d96.zip/node_modules/editions/', + packageDependencies: [ + ['editions', 'npm:2.3.1'], + ['errlop', 'npm:2.2.0'], + ['semver', 'npm:6.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ee-first', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/ee-first-npm-1.1.1-33f8535b39-ba74f91398.zip/node_modules/ee-first/', + packageDependencies: [['ee-first', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ejs', + [ + [ + 'npm:2.7.4', + { + packageLocation: + './.yarn/unplugged/ejs-npm-2.7.4-879ed38a4e/node_modules/ejs/', + packageDependencies: [['ejs', 'npm:2.7.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.3', + { + packageLocation: + './.yarn/unplugged/ejs-npm-3.1.3-0e925ceeec/node_modules/ejs/', + packageDependencies: [ + ['ejs', 'npm:3.1.3'], + ['jake', 'npm:10.8.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'electron-to-chromium', + [ + [ + 'npm:1.3.512', + { + packageLocation: + './.yarn/cache/electron-to-chromium-npm-1.3.512-5054be7a69-87e9471a66.zip/node_modules/electron-to-chromium/', + packageDependencies: [['electron-to-chromium', 'npm:1.3.512']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.3.730', + { + packageLocation: + './.yarn/cache/electron-to-chromium-npm-1.3.730-e508e38a6b-07e8473e08.zip/node_modules/electron-to-chromium/', + packageDependencies: [['electron-to-chromium', 'npm:1.3.730']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'elegant-spinner', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/elegant-spinner-npm-1.0.1-8b799f39a6-69837a8a88.zip/node_modules/elegant-spinner/', + packageDependencies: [['elegant-spinner', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'elliptic', + [ + [ + 'npm:6.5.3', + { + packageLocation: + './.yarn/cache/elliptic-npm-6.5.3-783c509c01-b66cf0b8f8.zip/node_modules/elliptic/', + packageDependencies: [ + ['elliptic', 'npm:6.5.3'], + ['bn.js', 'npm:4.11.9'], + ['brorand', 'npm:1.1.0'], + ['hash.js', 'npm:1.1.7'], + ['hmac-drbg', 'npm:1.0.1'], + ['inherits', 'npm:2.0.4'], + ['minimalistic-assert', 'npm:1.0.1'], + ['minimalistic-crypto-utils', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'emittery', + [ + [ + 'npm:0.7.2', + { + packageLocation: + './.yarn/cache/emittery-npm-0.7.2-4a6f20265e-34acfef519.zip/node_modules/emittery/', + packageDependencies: [['emittery', 'npm:0.7.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'emoji-regex', + [ + [ + 'npm:7.0.3', + { + packageLocation: + './.yarn/cache/emoji-regex-npm-7.0.3-cfe9479bb3-e3a504cf52.zip/node_modules/emoji-regex/', + packageDependencies: [['emoji-regex', 'npm:7.0.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:8.0.0', + { + packageLocation: + './.yarn/cache/emoji-regex-npm-8.0.0-213764015c-87cf3f89ef.zip/node_modules/emoji-regex/', + packageDependencies: [['emoji-regex', 'npm:8.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'emojis-list', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/emojis-list-npm-2.1.0-e19a336e35-09220b636c.zip/node_modules/emojis-list/', + packageDependencies: [['emojis-list', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/emojis-list-npm-3.0.0-7faa48e6fd-a79126b55b.zip/node_modules/emojis-list/', + packageDependencies: [['emojis-list', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'encodeurl', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/encodeurl-npm-1.0.2-f8c8454c41-6ee5fcbcd2.zip/node_modules/encodeurl/', + packageDependencies: [['encodeurl', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'encoding', + [ + [ + 'npm:0.1.13', + { + packageLocation: + './.yarn/cache/encoding-npm-0.1.13-82a1837d30-282d5696a4.zip/node_modules/encoding/', + packageDependencies: [ + ['encoding', 'npm:0.1.13'], + ['iconv-lite', 'npm:0.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'end-of-stream', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/end-of-stream-npm-1.1.0-318d442be5-1a078bec4b.zip/node_modules/end-of-stream/', + packageDependencies: [ + ['end-of-stream', 'npm:1.1.0'], + ['once', 'npm:1.3.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.4.4', + { + packageLocation: + './.yarn/cache/end-of-stream-npm-1.4.4-497fc6dee1-7da60e458b.zip/node_modules/end-of-stream/', + packageDependencies: [ + ['end-of-stream', 'npm:1.4.4'], + ['once', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'enhanced-resolve', + [ + [ + 'npm:4.3.0', + { + packageLocation: + './.yarn/cache/enhanced-resolve-npm-4.3.0-b4e038d9ac-aecdc0b208.zip/node_modules/enhanced-resolve/', + packageDependencies: [ + ['enhanced-resolve', 'npm:4.3.0'], + ['graceful-fs', 'npm:4.2.4'], + ['memory-fs', 'npm:0.5.0'], + ['tapable', 'npm:1.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'entities', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/entities-npm-2.0.3-9763a6a3bc-02dfe1fbf5.zip/node_modules/entities/', + packageDependencies: [['entities', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'env-paths', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/env-paths-npm-1.0.0-a370c33030-07d20b3b75.zip/node_modules/env-paths/', + packageDependencies: [['env-paths', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/env-paths-npm-2.2.0-ac4ed99068-09de4fd1c0.zip/node_modules/env-paths/', + packageDependencies: [['env-paths', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'errlop', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/errlop-npm-2.2.0-04c65d8200-0a82c77722.zip/node_modules/errlop/', + packageDependencies: [['errlop', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'errno', + [ + [ + 'npm:0.1.7', + { + packageLocation: + './.yarn/cache/errno-npm-0.1.7-b0a31dcb3a-3d2da6fa1e.zip/node_modules/errno/', + packageDependencies: [ + ['errno', 'npm:0.1.7'], + ['prr', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'error', + [ + [ + 'npm:7.2.1', + { + packageLocation: + './.yarn/cache/error-npm-7.2.1-628e82313a-21ba37fe67.zip/node_modules/error/', + packageDependencies: [ + ['error', 'npm:7.2.1'], + ['string-template', 'npm:0.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'error-ex', + [ + [ + 'npm:1.3.2', + { + packageLocation: + './.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-6c6c918742.zip/node_modules/error-ex/', + packageDependencies: [ + ['error-ex', 'npm:1.3.2'], + ['is-arrayish', 'npm:0.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es-abstract', + [ + [ + 'npm:1.17.6', + { + packageLocation: + './.yarn/cache/es-abstract-npm-1.17.6-265c04b6de-637ad488bd.zip/node_modules/es-abstract/', + packageDependencies: [ + ['es-abstract', 'npm:1.17.6'], + ['es-to-primitive', 'npm:1.2.1'], + ['function-bind', 'npm:1.1.1'], + ['has', 'npm:1.0.3'], + ['has-symbols', 'npm:1.0.1'], + ['is-callable', 'npm:1.2.0'], + ['is-regex', 'npm:1.1.0'], + ['object-inspect', 'npm:1.8.0'], + ['object-keys', 'npm:1.1.1'], + ['object.assign', 'npm:4.1.0'], + ['string.prototype.trimend', 'npm:1.0.1'], + ['string.prototype.trimstart', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es-to-primitive', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/es-to-primitive-npm-1.2.1-b7a7eac6c5-d20b7be268.zip/node_modules/es-to-primitive/', + packageDependencies: [ + ['es-to-primitive', 'npm:1.2.1'], + ['is-callable', 'npm:1.2.0'], + ['is-date-object', 'npm:1.0.2'], + ['is-symbol', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es5-ext', + [ + [ + 'npm:0.10.53', + { + packageLocation: + './.yarn/cache/es5-ext-npm-0.10.53-18c0039c41-99e8115c2f.zip/node_modules/es5-ext/', + packageDependencies: [ + ['es5-ext', 'npm:0.10.53'], + ['es6-iterator', 'npm:2.0.3'], + ['es6-symbol', 'npm:3.1.3'], + ['next-tick', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es6-error', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/es6-error-npm-4.1.1-5e8c22b20f-d7343d3f47.zip/node_modules/es6-error/', + packageDependencies: [['es6-error', 'npm:4.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es6-iterator', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/es6-iterator-npm-2.0.3-4dadb0ccc1-1880ce3121.zip/node_modules/es6-iterator/', + packageDependencies: [ + ['es6-iterator', 'npm:2.0.3'], + ['d', 'npm:1.0.1'], + ['es5-ext', 'npm:0.10.53'], + ['es6-symbol', 'npm:3.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es6-promise', + [ + [ + 'npm:4.2.8', + { + packageLocation: + './.yarn/cache/es6-promise-npm-4.2.8-c9f5b11f66-b85e5faab1.zip/node_modules/es6-promise/', + packageDependencies: [['es6-promise', 'npm:4.2.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es6-promisify', + [ + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/es6-promisify-npm-5.0.0-3726550934-657d2f0623.zip/node_modules/es6-promisify/', + packageDependencies: [ + ['es6-promisify', 'npm:5.0.0'], + ['es6-promise', 'npm:4.2.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'es6-symbol', + [ + [ + 'npm:3.1.3', + { + packageLocation: + './.yarn/cache/es6-symbol-npm-3.1.3-34d72f2a23-0915d72de8.zip/node_modules/es6-symbol/', + packageDependencies: [ + ['es6-symbol', 'npm:3.1.3'], + ['d', 'npm:1.0.1'], + ['ext', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'esbuild', + [ + [ + 'npm:0.6.32', + { + packageLocation: + './.yarn/unplugged/esbuild-npm-0.6.32-603e3a7bd4/node_modules/esbuild/', + packageDependencies: [['esbuild', 'npm:0.6.32']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.8.54', + { + packageLocation: + './.yarn/unplugged/esbuild-npm-0.8.54-6b91b4b2d8/node_modules/esbuild/', + packageDependencies: [['esbuild', 'npm:0.8.54']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'escalade', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/escalade-npm-3.0.2-124acc254a-30f45cb4db.zip/node_modules/escalade/', + packageDependencies: [['escalade', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/escalade-npm-3.1.1-e02da076aa-1e31ff50d6.zip/node_modules/escalade/', + packageDependencies: [['escalade', 'npm:3.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'escape-goat', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/escape-goat-npm-2.1.1-2e437cf3fe-8270a80ca5.zip/node_modules/escape-goat/', + packageDependencies: [['escape-goat', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'escape-html', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/escape-html-npm-1.0.3-376c22ee74-900a7f2b80.zip/node_modules/escape-html/', + packageDependencies: [['escape-html', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'escape-string-regexp', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-f9484b8b4c.zip/node_modules/escape-string-regexp/', + packageDependencies: [['escape-string-regexp', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/escape-string-regexp-npm-2.0.0-aef69d2a25-f3500f264e.zip/node_modules/escape-string-regexp/', + packageDependencies: [['escape-string-regexp', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-c747be8d5f.zip/node_modules/escape-string-regexp/', + packageDependencies: [['escape-string-regexp', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'escodegen', + [ + [ + 'npm:1.14.3', + { + packageLocation: + './.yarn/cache/escodegen-npm-1.14.3-a4dedc6eeb-548c5a83a8.zip/node_modules/escodegen/', + packageDependencies: [ + ['escodegen', 'npm:1.14.3'], + ['esprima', 'npm:4.0.1'], + ['estraverse', 'npm:4.3.0'], + ['esutils', 'npm:2.0.3'], + ['optionator', 'npm:0.8.3'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/escodegen-npm-2.0.0-6450b02925-c49da32cd1.zip/node_modules/escodegen/', + packageDependencies: [ + ['escodegen', 'npm:2.0.0'], + ['esprima', 'npm:4.0.1'], + ['estraverse', 'npm:5.2.0'], + ['esutils', 'npm:2.0.3'], + ['optionator', 'npm:0.8.3'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'eslint', + [ + [ + 'npm:6.8.0', + { + packageLocation: + './.yarn/cache/eslint-npm-6.8.0-d27045f313-796be0e038.zip/node_modules/eslint/', + packageDependencies: [ + ['eslint', 'npm:6.8.0'], + ['@babel/code-frame', 'npm:7.10.4'], + ['ajv', 'npm:6.12.3'], + ['chalk', 'npm:2.4.2'], + ['cross-spawn', 'npm:6.0.5'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['doctrine', 'npm:3.0.0'], + ['eslint-scope', 'npm:5.1.0'], + ['eslint-utils', 'npm:1.4.3'], + ['eslint-visitor-keys', 'npm:1.3.0'], + ['espree', 'npm:6.2.1'], + ['esquery', 'npm:1.3.1'], + ['esutils', 'npm:2.0.3'], + ['file-entry-cache', 'npm:5.0.1'], + ['functional-red-black-tree', 'npm:1.0.1'], + ['glob-parent', 'npm:5.1.1'], + ['globals', 'npm:12.4.0'], + ['ignore', 'npm:4.0.6'], + ['import-fresh', 'npm:3.2.1'], + ['imurmurhash', 'npm:0.1.4'], + ['inquirer', 'npm:7.3.3'], + ['is-glob', 'npm:4.0.1'], + ['js-yaml', 'npm:3.14.0'], + ['json-stable-stringify-without-jsonify', 'npm:1.0.1'], + ['levn', 'npm:0.3.0'], + ['lodash', 'npm:4.17.19'], + ['minimatch', 'npm:3.0.4'], + ['mkdirp', 'npm:0.5.5'], + ['natural-compare', 'npm:1.4.0'], + ['optionator', 'npm:0.8.3'], + ['progress', 'npm:2.0.3'], + ['regexpp', 'npm:2.0.1'], + ['semver', 'npm:6.3.0'], + ['strip-ansi', 'npm:5.2.0'], + ['strip-json-comments', 'npm:3.1.1'], + ['table', 'npm:5.4.6'], + ['text-table', 'npm:0.2.0'], + ['v8-compile-cache', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'eslint-scope', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/eslint-scope-npm-4.0.3-1492c6d263-49635cf9d9.zip/node_modules/eslint-scope/', + packageDependencies: [ + ['eslint-scope', 'npm:4.0.3'], + ['esrecurse', 'npm:4.2.1'], + ['estraverse', 'npm:4.3.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/eslint-scope-npm-5.1.0-2f7f4b93bb-4a0e97979a.zip/node_modules/eslint-scope/', + packageDependencies: [ + ['eslint-scope', 'npm:5.1.0'], + ['esrecurse', 'npm:4.2.1'], + ['estraverse', 'npm:4.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'eslint-utils', + [ + [ + 'npm:1.4.3', + { + packageLocation: + './.yarn/cache/eslint-utils-npm-1.4.3-b8f8bce3ac-4a7ede9e72.zip/node_modules/eslint-utils/', + packageDependencies: [ + ['eslint-utils', 'npm:1.4.3'], + ['eslint-visitor-keys', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'eslint-visitor-keys', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/eslint-visitor-keys-npm-1.3.0-c07780a0fb-58ab7a0107.zip/node_modules/eslint-visitor-keys/', + packageDependencies: [['eslint-visitor-keys', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'esm', + [ + [ + 'npm:3.2.25', + { + packageLocation: + './.yarn/cache/esm-npm-3.2.25-762b3ebd40-12a0272aaa.zip/node_modules/esm/', + packageDependencies: [['esm', 'npm:3.2.25']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'espree', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/espree-npm-6.2.1-c3370c8022-8651a6c162.zip/node_modules/espree/', + packageDependencies: [ + ['espree', 'npm:6.2.1'], + ['acorn', 'npm:7.3.1'], + [ + 'acorn-jsx', + 'virtual:c3370c80228526bdc823c77589727bb12f010d7080bccc27a33a2dcce9848e6a7ca68b55a7a8ca98362554ae73296d381ef1ad94f002f07e2a08c76d959b5bbf#npm:5.2.0', + ], + ['eslint-visitor-keys', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'esprima', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/esprima-npm-4.0.1-1084e98778-5df45a3d9c.zip/node_modules/esprima/', + packageDependencies: [['esprima', 'npm:4.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'esquery', + [ + [ + 'npm:1.3.1', + { + packageLocation: + './.yarn/cache/esquery-npm-1.3.1-2ba3c93f30-0aac7572bc.zip/node_modules/esquery/', + packageDependencies: [ + ['esquery', 'npm:1.3.1'], + ['estraverse', 'npm:5.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'esrecurse', + [ + [ + 'npm:4.2.1', + { + packageLocation: + './.yarn/cache/esrecurse-npm-4.2.1-9ebee4c3b1-9acfa28772.zip/node_modules/esrecurse/', + packageDependencies: [ + ['esrecurse', 'npm:4.2.1'], + ['estraverse', 'npm:4.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'estraverse', + [ + [ + 'npm:4.3.0', + { + packageLocation: + './.yarn/cache/estraverse-npm-4.3.0-920a32f3c6-1e4c627da9.zip/node_modules/estraverse/', + packageDependencies: [['estraverse', 'npm:4.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/estraverse-npm-5.1.0-ab0ea20456-1b8a47cf7c.zip/node_modules/estraverse/', + packageDependencies: [['estraverse', 'npm:5.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/estraverse-npm-5.2.0-b2e8e36350-7dc1b027ae.zip/node_modules/estraverse/', + packageDependencies: [['estraverse', 'npm:5.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'estree-walker', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/estree-walker-npm-1.0.1-e916593b23-85e7cee763.zip/node_modules/estree-walker/', + packageDependencies: [['estree-walker', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'esutils', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/esutils-npm-2.0.3-f865beafd5-590b045331.zip/node_modules/esutils/', + packageDependencies: [['esutils', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'etag', + [ + [ + 'npm:1.8.1', + { + packageLocation: + './.yarn/cache/etag-npm-1.8.1-54a3b989d9-f18341a3c1.zip/node_modules/etag/', + packageDependencies: [['etag', 'npm:1.8.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'event-target-shim', + [ + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/event-target-shim-npm-5.0.1-cb48709025-d176477a31.zip/node_modules/event-target-shim/', + packageDependencies: [['event-target-shim', 'npm:5.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'eventemitter3', + [ + [ + 'npm:3.1.2', + { + packageLocation: + './.yarn/cache/eventemitter3-npm-3.1.2-a68b03e1ea-fa1a206c4e.zip/node_modules/eventemitter3/', + packageDependencies: [['eventemitter3', 'npm:3.1.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.4', + { + packageLocation: + './.yarn/cache/eventemitter3-npm-4.0.4-46f999a6ee-6693972304.zip/node_modules/eventemitter3/', + packageDependencies: [['eventemitter3', 'npm:4.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'events', + [ + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/events-npm-3.2.0-342ccffd74-6ea52b160c.zip/node_modules/events/', + packageDependencies: [['events', 'npm:3.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'evp_bytestokey', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/evp_bytestokey-npm-1.0.3-4a2644aaea-529ceee780.zip/node_modules/evp_bytestokey/', + packageDependencies: [ + ['evp_bytestokey', 'npm:1.0.3'], + ['md5.js', 'npm:1.3.5'], + ['node-gyp', 'npm:7.0.0'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'exec-sh', + [ + [ + 'npm:0.3.4', + { + packageLocation: + './.yarn/cache/exec-sh-npm-0.3.4-424de349f3-cfdd8cbfde.zip/node_modules/exec-sh/', + packageDependencies: [['exec-sh', 'npm:0.3.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'execa', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/execa-npm-0.1.1-43e6588de6-d4f96462fc.zip/node_modules/execa/', + packageDependencies: [ + ['execa', 'npm:0.1.1'], + ['cross-spawn-async', 'npm:2.2.5'], + ['object-assign', 'npm:4.1.1'], + ['strip-eof', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.7.0', + { + packageLocation: + './.yarn/cache/execa-npm-0.7.0-3f4e53d884-7210f5334e.zip/node_modules/execa/', + packageDependencies: [ + ['execa', 'npm:0.7.0'], + ['cross-spawn', 'npm:5.1.0'], + ['get-stream', 'npm:3.0.0'], + ['is-stream', 'npm:1.1.0'], + ['npm-run-path', 'npm:2.0.2'], + ['p-finally', 'npm:1.0.0'], + ['signal-exit', 'npm:3.0.3'], + ['strip-eof', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/execa-npm-1.0.0-7028e37029-39714ea24e.zip/node_modules/execa/', + packageDependencies: [ + ['execa', 'npm:1.0.0'], + ['cross-spawn', 'npm:6.0.5'], + ['get-stream', 'npm:4.1.0'], + ['is-stream', 'npm:1.1.0'], + ['npm-run-path', 'npm:2.0.2'], + ['p-finally', 'npm:1.0.0'], + ['signal-exit', 'npm:3.0.3'], + ['strip-eof', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/execa-npm-4.0.3-b70e1b2212-65b237d178.zip/node_modules/execa/', + packageDependencies: [ + ['execa', 'npm:4.0.3'], + ['cross-spawn', 'npm:7.0.3'], + ['get-stream', 'npm:5.1.0'], + ['human-signals', 'npm:1.1.1'], + ['is-stream', 'npm:2.0.0'], + ['merge-stream', 'npm:2.0.0'], + ['npm-run-path', 'npm:4.0.1'], + ['onetime', 'npm:5.1.0'], + ['signal-exit', 'npm:3.0.3'], + ['strip-final-newline', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'execall', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/execall-npm-1.0.0-8fca6bc827-a8740d995a.zip/node_modules/execall/', + packageDependencies: [ + ['execall', 'npm:1.0.0'], + ['clone-regexp', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'exit', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/exit-npm-0.1.2-ef3761a67d-64022f65df.zip/node_modules/exit/', + packageDependencies: [['exit', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'exit-hook', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/exit-hook-npm-1.1.1-1b7c5d44e3-4f89f35c22.zip/node_modules/exit-hook/', + packageDependencies: [['exit-hook', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'expand-brackets', + [ + [ + 'npm:2.1.4', + { + packageLocation: + './.yarn/cache/expand-brackets-npm-2.1.4-392c703c48-9aadab00ff.zip/node_modules/expand-brackets/', + packageDependencies: [ + ['expand-brackets', 'npm:2.1.4'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['define-property', 'npm:0.2.5'], + ['extend-shallow', 'npm:2.0.1'], + ['posix-character-classes', 'npm:0.1.1'], + ['regex-not', 'npm:1.0.2'], + ['snapdragon', 'npm:0.8.2'], + ['to-regex', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'expand-template', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/expand-template-npm-2.0.3-80de959306-d1c08a374a.zip/node_modules/expand-template/', + packageDependencies: [['expand-template', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'expand-tilde', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/expand-tilde-npm-2.0.2-a4020a62f5-502e8b04a2.zip/node_modules/expand-tilde/', + packageDependencies: [ + ['expand-tilde', 'npm:2.0.2'], + ['homedir-polyfill', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'expect', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/expect-npm-26.1.0-2c66becfa6-4d77d1f41f.zip/node_modules/expect/', + packageDependencies: [ + ['expect', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['ansi-styles', 'npm:4.2.1'], + ['jest-get-type', 'npm:26.0.0'], + ['jest-matcher-utils', 'npm:26.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-regex-util', 'npm:26.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/expect-npm-26.6.2-256ea90344-a4ec4cbafa.zip/node_modules/expect/', + packageDependencies: [ + ['expect', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['ansi-styles', 'npm:4.2.1'], + ['jest-get-type', 'npm:26.3.0'], + ['jest-matcher-utils', 'npm:26.6.2'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-regex-util', 'npm:26.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'express', + [ + [ + 'npm:4.17.1', + { + packageLocation: + './.yarn/cache/express-npm-4.17.1-6815ee6bf9-c4b470d623.zip/node_modules/express/', + packageDependencies: [ + ['express', 'npm:4.17.1'], + ['accepts', 'npm:1.3.7'], + ['array-flatten', 'npm:1.1.1'], + ['body-parser', 'npm:1.19.0'], + ['content-disposition', 'npm:0.5.3'], + ['content-type', 'npm:1.0.4'], + ['cookie', 'npm:0.4.0'], + ['cookie-signature', 'npm:1.0.6'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['depd', 'npm:1.1.2'], + ['encodeurl', 'npm:1.0.2'], + ['escape-html', 'npm:1.0.3'], + ['etag', 'npm:1.8.1'], + ['finalhandler', 'npm:1.1.2'], + ['fresh', 'npm:0.5.2'], + ['merge-descriptors', 'npm:1.0.1'], + ['methods', 'npm:1.1.2'], + ['on-finished', 'npm:2.3.0'], + ['parseurl', 'npm:1.3.3'], + ['path-to-regexp', 'npm:0.1.7'], + ['proxy-addr', 'npm:2.0.6'], + ['qs', 'npm:6.7.0'], + ['range-parser', 'npm:1.2.1'], + ['safe-buffer', 'npm:5.1.2'], + ['send', 'npm:0.17.1'], + ['serve-static', 'npm:1.14.1'], + ['setprototypeof', 'npm:1.1.1'], + ['statuses', 'npm:1.5.0'], + ['type-is', 'npm:1.6.18'], + ['utils-merge', 'npm:1.0.1'], + ['vary', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'express-graphql', + [ + [ + 'npm:0.11.0', + { + packageLocation: + './.yarn/cache/express-graphql-npm-0.11.0-c15bd88c96-91fdcc9bf6.zip/node_modules/express-graphql/', + packageDependencies: [['express-graphql', 'npm:0.11.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:81ccb0b6d9dec0de8117538ffcff243340f76bc1d9e508d68bcd2e95fad3568eca34fcb375bfffd59e37a816a80c197efedec7ace2a30b447f88f1e672f9663e#npm:0.11.0', + { + packageLocation: + './.yarn/$$virtual/express-graphql-virtual-65ffb1c4d4/0/cache/express-graphql-npm-0.11.0-c15bd88c96-91fdcc9bf6.zip/node_modules/express-graphql/', + packageDependencies: [ + [ + 'express-graphql', + 'virtual:81ccb0b6d9dec0de8117538ffcff243340f76bc1d9e508d68bcd2e95fad3568eca34fcb375bfffd59e37a816a80c197efedec7ace2a30b447f88f1e672f9663e#npm:0.11.0', + ], + ['@types/graphql', null], + ['accepts', 'npm:1.3.7'], + ['content-type', 'npm:1.0.4'], + ['graphql', 'npm:14.7.0'], + ['http-errors', 'npm:1.8.0'], + ['raw-body', 'npm:2.4.1'], + ], + packagePeers: ['@types/graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:0.11.0', + { + packageLocation: + './.yarn/$$virtual/express-graphql-virtual-255d849fef/0/cache/express-graphql-npm-0.11.0-c15bd88c96-91fdcc9bf6.zip/node_modules/express-graphql/', + packageDependencies: [ + [ + 'express-graphql', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:0.11.0', + ], + ['@types/graphql', null], + ['accepts', 'npm:1.3.7'], + ['content-type', 'npm:1.0.4'], + ['graphql', 'npm:15.3.0'], + ['http-errors', 'npm:1.8.0'], + ['raw-body', 'npm:2.4.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ext', + [ + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/ext-npm-1.4.0-4190310122-c94102371f.zip/node_modules/ext/', + packageDependencies: [ + ['ext', 'npm:1.4.0'], + ['type', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'extend', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/extend-npm-3.0.2-e1ca07ac54-1406da1f0c.zip/node_modules/extend/', + packageDependencies: [['extend', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'extend-shallow', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/extend-shallow-npm-2.0.1-e6ef52b29c-03dbbba8b9.zip/node_modules/extend-shallow/', + packageDependencies: [ + ['extend-shallow', 'npm:2.0.1'], + ['is-extendable', 'npm:0.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/extend-shallow-npm-3.0.2-77bbe1bbf5-5301c5070b.zip/node_modules/extend-shallow/', + packageDependencies: [ + ['extend-shallow', 'npm:3.0.2'], + ['assign-symbols', 'npm:1.0.0'], + ['is-extendable', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'external-editor', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/external-editor-npm-1.1.1-c0e611e27e-0c682c3322.zip/node_modules/external-editor/', + packageDependencies: [ + ['external-editor', 'npm:1.1.1'], + ['extend', 'npm:3.0.2'], + ['spawn-sync', 'npm:1.0.15'], + ['tmp', 'npm:0.0.29'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/external-editor-npm-3.1.0-878e7807af-22163643f9.zip/node_modules/external-editor/', + packageDependencies: [ + ['external-editor', 'npm:3.1.0'], + ['chardet', 'npm:0.7.0'], + ['iconv-lite', 'npm:0.4.24'], + ['tmp', 'npm:0.0.33'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'extglob', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/extglob-npm-2.0.4-0f39bc9899-ce23be772f.zip/node_modules/extglob/', + packageDependencies: [ + ['extglob', 'npm:2.0.4'], + ['array-unique', 'npm:0.3.2'], + ['define-property', 'npm:1.0.0'], + ['expand-brackets', 'npm:2.1.4'], + ['extend-shallow', 'npm:2.0.1'], + ['fragment-cache', 'npm:0.2.1'], + ['regex-not', 'npm:1.0.2'], + ['snapdragon', 'npm:0.8.2'], + ['to-regex', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'extract-files', + [ + [ + 'npm:9.0.0', + { + packageLocation: + './.yarn/cache/extract-files-npm-9.0.0-6ee13e6aab-021b107877.zip/node_modules/extract-files/', + packageDependencies: [['extract-files', 'npm:9.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'extsprintf', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/extsprintf-npm-1.3.0-61a92b324c-892efd56aa.zip/node_modules/extsprintf/', + packageDependencies: [['extsprintf', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fast-deep-equal', + [ + [ + 'npm:3.1.3', + { + packageLocation: + './.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-451526766b.zip/node_modules/fast-deep-equal/', + packageDependencies: [['fast-deep-equal', 'npm:3.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fast-glob', + [ + [ + 'npm:2.2.7', + { + packageLocation: + './.yarn/cache/fast-glob-npm-2.2.7-f211fb26f4-9dc5c93807.zip/node_modules/fast-glob/', + packageDependencies: [ + ['fast-glob', 'npm:2.2.7'], + ['@mrmlnc/readdir-enhanced', 'npm:2.2.1'], + ['@nodelib/fs.stat', 'npm:1.1.3'], + ['glob-parent', 'npm:3.1.0'], + ['is-glob', 'npm:4.0.1'], + ['merge2', 'npm:1.4.1'], + ['micromatch', 'npm:3.1.10'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.4', + { + packageLocation: + './.yarn/cache/fast-glob-npm-3.2.4-be5d1d4c86-18f9eca898.zip/node_modules/fast-glob/', + packageDependencies: [ + ['fast-glob', 'npm:3.2.4'], + ['@nodelib/fs.stat', 'npm:2.0.3'], + ['@nodelib/fs.walk', 'npm:1.2.4'], + ['glob-parent', 'npm:5.1.1'], + ['merge2', 'npm:1.4.1'], + ['micromatch', 'npm:4.0.2'], + ['picomatch', 'npm:2.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.5', + { + packageLocation: + './.yarn/cache/fast-glob-npm-3.2.5-0225b8bd94-1a33c4a68d.zip/node_modules/fast-glob/', + packageDependencies: [ + ['fast-glob', 'npm:3.2.5'], + ['@nodelib/fs.stat', 'npm:2.0.3'], + ['@nodelib/fs.walk', 'npm:1.2.4'], + ['glob-parent', 'npm:5.1.1'], + ['merge2', 'npm:1.4.1'], + ['micromatch', 'npm:4.0.2'], + ['picomatch', 'npm:2.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fast-json-patch', + [ + [ + 'npm:3.0.0-1', + { + packageLocation: + './.yarn/cache/fast-json-patch-npm-3.0.0-1-52b13bb47f-17cf1ffba2.zip/node_modules/fast-json-patch/', + packageDependencies: [['fast-json-patch', 'npm:3.0.0-1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fast-json-stable-stringify', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-7df3fabfe4.zip/node_modules/fast-json-stable-stringify/', + packageDependencies: [ + ['fast-json-stable-stringify', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fast-levenshtein', + [ + [ + 'npm:2.0.6', + { + packageLocation: + './.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-a2d03af308.zip/node_modules/fast-levenshtein/', + packageDependencies: [['fast-levenshtein', 'npm:2.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fast-plist', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/fast-plist-npm-0.1.2-878e056b29-9273df2225.zip/node_modules/fast-plist/', + packageDependencies: [['fast-plist', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fastq', + [ + [ + 'npm:1.8.0', + { + packageLocation: + './.yarn/cache/fastq-npm-1.8.0-4c0923de4a-77d71545ba.zip/node_modules/fastq/', + packageDependencies: [ + ['fastq', 'npm:1.8.0'], + ['reusify', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fault', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/fault-npm-1.0.4-2788bc13e3-6b8ef4f743.zip/node_modules/fault/', + packageDependencies: [ + ['fault', 'npm:1.0.4'], + ['format', 'npm:0.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fb-watchman', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/fb-watchman-npm-2.0.1-30005d50fe-f9ec24592a.zip/node_modules/fb-watchman/', + packageDependencies: [ + ['fb-watchman', 'npm:2.0.1'], + ['bser', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fbjs', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/fbjs-npm-1.0.0-4f480c1eca-8fbb6828cf.zip/node_modules/fbjs/', + packageDependencies: [ + ['fbjs', 'npm:1.0.0'], + ['core-js', 'npm:2.6.11'], + ['fbjs-css-vars', 'npm:1.0.2'], + ['isomorphic-fetch', 'npm:2.2.1'], + ['loose-envify', 'npm:1.4.0'], + ['object-assign', 'npm:4.1.1'], + ['promise', 'npm:7.3.1'], + ['setimmediate', 'npm:1.0.5'], + ['ua-parser-js', 'npm:0.7.21'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fbjs-css-vars', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/fbjs-css-vars-npm-1.0.2-c233f16598-2f0c717cc2.zip/node_modules/fbjs-css-vars/', + packageDependencies: [['fbjs-css-vars', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'figgy-pudding', + [ + [ + 'npm:3.5.2', + { + packageLocation: + './.yarn/cache/figgy-pudding-npm-3.5.2-2f4e3e1305-737645f602.zip/node_modules/figgy-pudding/', + packageDependencies: [['figgy-pudding', 'npm:3.5.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'figlet', + [ + [ + 'npm:1.5.0', + { + packageLocation: + './.yarn/cache/figlet-npm-1.5.0-8014ee3b57-49839d8179.zip/node_modules/figlet/', + packageDependencies: [['figlet', 'npm:1.5.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'figures', + [ + [ + 'npm:1.7.0', + { + packageLocation: + './.yarn/cache/figures-npm-1.7.0-1542644df9-17f76820de.zip/node_modules/figures/', + packageDependencies: [ + ['figures', 'npm:1.7.0'], + ['escape-string-regexp', 'npm:1.0.5'], + ['object-assign', 'npm:4.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/figures-npm-2.0.0-f2db814eec-de11459037.zip/node_modules/figures/', + packageDependencies: [ + ['figures', 'npm:2.0.0'], + ['escape-string-regexp', 'npm:1.0.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/figures-npm-3.2.0-85d357e955-6c8acb1c17.zip/node_modules/figures/', + packageDependencies: [ + ['figures', 'npm:3.2.0'], + ['escape-string-regexp', 'npm:1.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'file-entry-cache', + [ + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/file-entry-cache-npm-5.0.1-7212af17f3-7140588bec.zip/node_modules/file-entry-cache/', + packageDependencies: [ + ['file-entry-cache', 'npm:5.0.1'], + ['flat-cache', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'file-selector', + [ + [ + 'npm:0.1.12', + { + packageLocation: + './.yarn/cache/file-selector-npm-0.1.12-6b84596589-b1a8287dab.zip/node_modules/file-selector/', + packageDependencies: [ + ['file-selector', 'npm:0.1.12'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.1.13', + { + packageLocation: + './.yarn/cache/file-selector-npm-0.1.13-62c188592d-261cda059a.zip/node_modules/file-selector/', + packageDependencies: [ + ['file-selector', 'npm:0.1.13'], + ['tslib', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'file-uri-to-path', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/file-uri-to-path-npm-1.0.0-1043ac6206-5ddb9682f0.zip/node_modules/file-uri-to-path/', + packageDependencies: [['file-uri-to-path', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'filelist', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/filelist-npm-1.0.1-f25fc749a1-8ee441df31.zip/node_modules/filelist/', + packageDependencies: [ + ['filelist', 'npm:1.0.1'], + ['minimatch', 'npm:3.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fill-range', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/fill-range-npm-4.0.0-95a6e45784-4a1491ee29.zip/node_modules/fill-range/', + packageDependencies: [ + ['fill-range', 'npm:4.0.0'], + ['extend-shallow', 'npm:2.0.1'], + ['is-number', 'npm:3.0.0'], + ['repeat-string', 'npm:1.6.1'], + ['to-regex-range', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.1', + { + packageLocation: + './.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-efca43d59b.zip/node_modules/fill-range/', + packageDependencies: [ + ['fill-range', 'npm:7.0.1'], + ['to-regex-range', 'npm:5.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'filter-obj', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/filter-obj-npm-2.0.1-7adb2749b3-17fffe99e7.zip/node_modules/filter-obj/', + packageDependencies: [['filter-obj', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'final-form', + [ + [ + 'npm:4.19.1', + { + packageLocation: + './.yarn/cache/final-form-npm-4.19.1-dd5e58edd7-a99755c40d.zip/node_modules/final-form/', + packageDependencies: [ + ['final-form', 'npm:4.19.1'], + ['@babel/runtime', 'npm:7.11.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.20.1', + { + packageLocation: + './.yarn/cache/final-form-npm-4.20.1-5003d9144f-007bc31ead.zip/node_modules/final-form/', + packageDependencies: [ + ['final-form', 'npm:4.20.1'], + ['@babel/runtime', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'final-form-arrays', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/final-form-arrays-npm-3.0.2-0e8c67eade-16a7fb6e68.zip/node_modules/final-form-arrays/', + packageDependencies: [['final-form-arrays', 'npm:3.0.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2', + { + packageLocation: + './.yarn/$$virtual/final-form-arrays-virtual-6af69e1b3c/0/cache/final-form-arrays-npm-3.0.2-0e8c67eade-16a7fb6e68.zip/node_modules/final-form-arrays/', + packageDependencies: [ + [ + 'final-form-arrays', + 'virtual:16f39fd00e4ef2a138542ce54d0f8659ab606bfb82e0e301658172e7483b32e37e8b2e3db8023c45a655a9b1fa264a9c28f18f5dc0f198f83d8d00706e8fbc38#npm:3.0.2', + ], + ['@types/final-form', null], + ['final-form', 'npm:4.19.1'], + ], + packagePeers: ['@types/final-form', 'final-form'], + linkType: 'HARD', + }, + ], + [ + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + { + packageLocation: + './.yarn/$$virtual/final-form-arrays-virtual-55df1c4428/0/cache/final-form-arrays-npm-3.0.2-0e8c67eade-16a7fb6e68.zip/node_modules/final-form-arrays/', + packageDependencies: [ + [ + 'final-form-arrays', + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + ], + ['@types/final-form', null], + ['final-form', 'npm:4.20.1'], + ], + packagePeers: ['@types/final-form', 'final-form'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'finalhandler', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/finalhandler-npm-1.1.2-55a75d6b53-f2e5b6bfe2.zip/node_modules/finalhandler/', + packageDependencies: [ + ['finalhandler', 'npm:1.1.2'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['encodeurl', 'npm:1.0.2'], + ['escape-html', 'npm:1.0.3'], + ['on-finished', 'npm:2.3.0'], + ['parseurl', 'npm:1.3.3'], + ['statuses', 'npm:1.5.0'], + ['unpipe', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'find-cache-dir', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/find-cache-dir-npm-2.1.0-772aa82638-6e99602656.zip/node_modules/find-cache-dir/', + packageDependencies: [ + ['find-cache-dir', 'npm:2.1.0'], + ['commondir', 'npm:1.0.1'], + ['make-dir', 'npm:2.1.0'], + ['pkg-dir', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/find-cache-dir-npm-3.3.1-66916b4b23-b1e23226ee.zip/node_modules/find-cache-dir/', + packageDependencies: [ + ['find-cache-dir', 'npm:3.3.1'], + ['commondir', 'npm:1.0.1'], + ['make-dir', 'npm:3.1.0'], + ['pkg-dir', 'npm:4.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'find-up', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/find-up-npm-1.1.2-22f047c6a9-cc15a62434.zip/node_modules/find-up/', + packageDependencies: [ + ['find-up', 'npm:1.1.2'], + ['path-exists', 'npm:2.1.0'], + ['pinkie-promise', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/find-up-npm-2.1.0-9f6cb1765c-9dedb89f93.zip/node_modules/find-up/', + packageDependencies: [ + ['find-up', 'npm:2.1.0'], + ['locate-path', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/find-up-npm-3.0.0-a2d4b1b317-c5422fc723.zip/node_modules/find-up/', + packageDependencies: [ + ['find-up', 'npm:3.0.0'], + ['locate-path', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/find-up-npm-4.1.0-c3ccf8d855-d612d28e02.zip/node_modules/find-up/', + packageDependencies: [ + ['find-up', 'npm:4.1.0'], + ['locate-path', 'npm:5.0.0'], + ['path-exists', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'find-versions', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/find-versions-npm-2.0.0-c36513ecee-552ad4f1c8.zip/node_modules/find-versions/', + packageDependencies: [ + ['find-versions', 'npm:2.0.0'], + ['array-uniq', 'npm:1.0.3'], + ['semver-regex', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'first-chunk-stream', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/first-chunk-stream-npm-2.0.0-08ecb1b0f2-13adb63a15.zip/node_modules/first-chunk-stream/', + packageDependencies: [ + ['first-chunk-stream', 'npm:2.0.0'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'flat-cache', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/flat-cache-npm-2.0.1-abf037b0b9-a36ba40755.zip/node_modules/flat-cache/', + packageDependencies: [ + ['flat-cache', 'npm:2.0.1'], + ['flatted', 'npm:2.0.2'], + ['rimraf', 'npm:2.6.3'], + ['write', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'flatted', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/flatted-npm-2.0.2-ccb06e14ff-a3e5fb71ad.zip/node_modules/flatted/', + packageDependencies: [['flatted', 'npm:2.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'flush-write-stream', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/flush-write-stream-npm-1.1.1-54f7360c04-b8fa1fbfad.zip/node_modules/flush-write-stream/', + packageDependencies: [ + ['flush-write-stream', 'npm:1.1.1'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fn-name', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/fn-name-npm-3.0.0-aa304e6db5-dd21900018.zip/node_modules/fn-name/', + packageDependencies: [['fn-name', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'follow-redirects', + [ + [ + 'npm:1.12.1', + { + packageLocation: + './.yarn/cache/follow-redirects-npm-1.12.1-42db1ca623-afd9b64329.zip/node_modules/follow-redirects/', + packageDependencies: [['follow-redirects', 'npm:1.12.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.5.10', + { + packageLocation: + './.yarn/cache/follow-redirects-npm-1.5.10-bde6f43576-6e58e02c31.zip/node_modules/follow-redirects/', + packageDependencies: [ + ['follow-redirects', 'npm:1.5.10'], + [ + 'debug', + 'virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'for-in', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/for-in-npm-1.0.2-37e3d7aae5-e8d7280a65.zip/node_modules/for-in/', + packageDependencies: [['for-in', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'foreachasync', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/foreachasync-npm-3.0.0-c8ac3c5fca-02d25a451b.zip/node_modules/foreachasync/', + packageDependencies: [['foreachasync', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'forever-agent', + [ + [ + 'npm:0.6.1', + { + packageLocation: + './.yarn/cache/forever-agent-npm-0.6.1-01dae53bf9-9cc0054dd4.zip/node_modules/forever-agent/', + packageDependencies: [['forever-agent', 'npm:0.6.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fork-ts-checker-webpack-plugin', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/fork-ts-checker-webpack-plugin-npm-3.1.1-3cc141071c-8a357eec4a.zip/node_modules/fork-ts-checker-webpack-plugin/', + packageDependencies: [ + ['fork-ts-checker-webpack-plugin', 'npm:3.1.1'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.1.1', + { + packageLocation: + './.yarn/$$virtual/fork-ts-checker-webpack-plugin-virtual-d8a11e4e48/0/cache/fork-ts-checker-webpack-plugin-npm-3.1.1-3cc141071c-8a357eec4a.zip/node_modules/fork-ts-checker-webpack-plugin/', + packageDependencies: [ + [ + 'fork-ts-checker-webpack-plugin', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.1.1', + ], + ['@types/eslint', null], + ['@types/typescript', null], + ['@types/webpack', null], + ['babel-code-frame', 'npm:6.26.0'], + ['chalk', 'npm:2.4.2'], + ['chokidar', 'npm:3.4.1'], + ['eslint', null], + ['micromatch', 'npm:3.1.10'], + ['minimatch', 'npm:3.0.4'], + ['semver', 'npm:5.7.1'], + ['tapable', 'npm:1.1.3'], + [ + 'typescript', + 'patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e', + ], + ['webpack', 'npm:4.43.0'], + ['worker-rpc', 'npm:0.1.1'], + ], + packagePeers: [ + '@types/eslint', + '@types/typescript', + '@types/webpack', + 'eslint', + 'typescript', + 'webpack', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'form-data', + [ + [ + 'npm:2.3.3', + { + packageLocation: + './.yarn/cache/form-data-npm-2.3.3-c016cc11c0-862e686b10.zip/node_modules/form-data/', + packageDependencies: [ + ['form-data', 'npm:2.3.3'], + ['asynckit', 'npm:0.4.0'], + ['combined-stream', 'npm:1.0.8'], + ['mime-types', 'npm:2.1.27'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.5.1', + { + packageLocation: + './.yarn/cache/form-data-npm-2.5.1-47256351b5-c46ee9a14a.zip/node_modules/form-data/', + packageDependencies: [ + ['form-data', 'npm:2.5.1'], + ['asynckit', 'npm:0.4.0'], + ['combined-stream', 'npm:1.0.8'], + ['mime-types', 'npm:2.1.27'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/form-data-npm-3.0.0-b01f488350-1af88217b4.zip/node_modules/form-data/', + packageDependencies: [ + ['form-data', 'npm:3.0.0'], + ['asynckit', 'npm:0.4.0'], + ['combined-stream', 'npm:1.0.8'], + ['mime-types', 'npm:2.1.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'format', + [ + [ + 'npm:0.2.2', + { + packageLocation: + './.yarn/cache/format-npm-0.2.2-679f3acc64-0740f52121.zip/node_modules/format/', + packageDependencies: [['format', 'npm:0.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'formik', + [ + [ + 'npm:2.1.5', + { + packageLocation: + './.yarn/cache/formik-npm-2.1.5-3b5e3d1e69-5a84001cc4.zip/node_modules/formik/', + packageDependencies: [['formik', 'npm:2.1.5']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5', + { + packageLocation: + './.yarn/$$virtual/formik-virtual-21bb750cd3/0/cache/formik-npm-2.1.5-3b5e3d1e69-5a84001cc4.zip/node_modules/formik/', + packageDependencies: [ + [ + 'formik', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5', + ], + ['@types/react', 'npm:16.9.43'], + ['deepmerge', 'npm:2.2.1'], + ['hoist-non-react-statics', 'npm:3.3.2'], + ['lodash', 'npm:4.17.19'], + ['lodash-es', 'npm:4.17.15'], + ['react', 'npm:16.13.1'], + ['react-fast-compare', 'npm:2.0.4'], + ['scheduler', 'npm:0.18.0'], + ['tiny-warning', 'npm:1.0.3'], + ['tslib', 'npm:1.13.0'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'forwarded', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/forwarded-npm-0.1.2-6143c1ba42-568d862ad1.zip/node_modules/forwarded/', + packageDependencies: [['forwarded', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fragment-cache', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/fragment-cache-npm-0.2.1-407fe74319-f88983f4bf.zip/node_modules/fragment-cache/', + packageDependencies: [ + ['fragment-cache', 'npm:0.2.1'], + ['map-cache', 'npm:0.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fresh', + [ + [ + 'npm:0.5.2', + { + packageLocation: + './.yarn/cache/fresh-npm-0.5.2-ad2bb4c0a2-2f76c8505d.zip/node_modules/fresh/', + packageDependencies: [['fresh', 'npm:0.5.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'from2', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/from2-npm-2.3.0-bd16dc410b-5f1a9bbff0.zip/node_modules/from2/', + packageDependencies: [ + ['from2', 'npm:2.3.0'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fs-constants', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/fs-constants-npm-1.0.0-59576b2177-b8382395f5.zip/node_modules/fs-constants/', + packageDependencies: [['fs-constants', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fs-exists-sync', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/fs-exists-sync-npm-0.1.0-c8642ca841-770773ab9e.zip/node_modules/fs-exists-sync/', + packageDependencies: [['fs-exists-sync', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fs-extra', + [ + [ + 'npm:8.1.0', + { + packageLocation: + './.yarn/cache/fs-extra-npm-8.1.0-197473387f-056a96d4f5.zip/node_modules/fs-extra/', + packageDependencies: [ + ['fs-extra', 'npm:8.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['jsonfile', 'npm:4.0.0'], + ['universalify', 'npm:0.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.0.1', + { + packageLocation: + './.yarn/cache/fs-extra-npm-9.0.1-2925889105-b7374cb058.zip/node_modules/fs-extra/', + packageDependencies: [ + ['fs-extra', 'npm:9.0.1'], + ['at-least-node', 'npm:1.0.0'], + ['graceful-fs', 'npm:4.2.4'], + ['jsonfile', 'npm:6.0.1'], + ['universalify', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fs-minipass', + [ + [ + 'npm:1.2.7', + { + packageLocation: + './.yarn/cache/fs-minipass-npm-1.2.7-0e18342ce1-eb59a93065.zip/node_modules/fs-minipass/', + packageDependencies: [ + ['fs-minipass', 'npm:1.2.7'], + ['minipass', 'npm:2.9.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-e14a490658.zip/node_modules/fs-minipass/', + packageDependencies: [ + ['fs-minipass', 'npm:2.1.0'], + ['minipass', 'npm:3.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fs-write-stream-atomic', + [ + [ + 'npm:1.0.10', + { + packageLocation: + './.yarn/cache/fs-write-stream-atomic-npm-1.0.10-d6efbd9866-1e35e18bdd.zip/node_modules/fs-write-stream-atomic/', + packageDependencies: [ + ['fs-write-stream-atomic', 'npm:1.0.10'], + ['graceful-fs', 'npm:4.2.4'], + ['iferr', 'npm:0.1.5'], + ['imurmurhash', 'npm:0.1.4'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fs.realpath', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-698a91b169.zip/node_modules/fs.realpath/', + packageDependencies: [['fs.realpath', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fsevents', + [ + [ + 'patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=11e9ea', + { + packageLocation: + './.yarn/unplugged/fsevents-patch-268c0b888d/node_modules/fsevents/', + packageDependencies: [ + [ + 'fsevents', + 'patch:fsevents@npm%3A1.2.13#builtin::version=1.2.13&hash=11e9ea', + ], + ['bindings', 'npm:1.5.0'], + ['nan', 'npm:2.14.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + { + packageLocation: + './.yarn/unplugged/fsevents-patch-5794df231e/node_modules/fsevents/', + packageDependencies: [ + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ['node-gyp', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea', + { + packageLocation: + './.yarn/unplugged/fsevents-patch-3bc6df0d9f/node_modules/fsevents/', + packageDependencies: [ + [ + 'fsevents', + 'patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea', + ], + ['node-gyp', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'fullname', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/fullname-npm-4.0.1-b552506e82-430861b49c.zip/node_modules/fullname/', + packageDependencies: [ + ['fullname', 'npm:4.0.1'], + ['execa', 'npm:1.0.0'], + ['filter-obj', 'npm:2.0.1'], + ['mem', 'npm:5.1.1'], + ['p-any', 'npm:2.1.0'], + ['passwd-user', 'npm:3.0.0'], + ['rc', 'npm:1.2.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'function-bind', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-ffad86e7d2.zip/node_modules/function-bind/', + packageDependencies: [['function-bind', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'functional-red-black-tree', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/functional-red-black-tree-npm-1.0.1-ccfe924dcd-477ecaf62d.zip/node_modules/functional-red-black-tree/', + packageDependencies: [ + ['functional-red-black-tree', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'gauge', + [ + [ + 'npm:1.2.7', + { + packageLocation: + './.yarn/cache/gauge-npm-1.2.7-eb40c09da6-c7230d2c81.zip/node_modules/gauge/', + packageDependencies: [ + ['gauge', 'npm:1.2.7'], + ['ansi', 'npm:0.3.1'], + ['has-unicode', 'npm:2.0.1'], + ['lodash.pad', 'npm:4.5.1'], + ['lodash.padend', 'npm:4.6.1'], + ['lodash.padstart', 'npm:4.6.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.4', + { + packageLocation: + './.yarn/cache/gauge-npm-2.7.4-2189a73529-b136dbeb8e.zip/node_modules/gauge/', + packageDependencies: [ + ['gauge', 'npm:2.7.4'], + ['aproba', 'npm:1.2.0'], + ['console-control-strings', 'npm:1.1.0'], + ['has-unicode', 'npm:2.0.1'], + ['object-assign', 'npm:4.1.1'], + ['signal-exit', 'npm:3.0.3'], + ['string-width', 'npm:1.0.2'], + ['strip-ansi', 'npm:3.0.1'], + ['wide-align', 'npm:1.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'generator-code', + [ + [ + 'npm:1.2.19', + { + packageLocation: + './.yarn/cache/generator-code-npm-1.2.19-507ede2c99-f79c7cafa2.zip/node_modules/generator-code/', + packageDependencies: [ + ['generator-code', 'npm:1.2.19'], + ['assert-plus', 'npm:1.0.0'], + ['cd', 'npm:0.3.3'], + ['chalk', 'npm:4.1.0'], + ['fast-plist', 'npm:0.1.2'], + ['request-light', 'npm:0.3.0'], + ['sanitize-filename', 'npm:1.6.3'], + ['sax', 'npm:1.2.4'], + ['yeoman-generator', 'npm:4.11.0'], + ['yosay', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'gensync', + [ + [ + 'npm:1.0.0-beta.1', + { + packageLocation: + './.yarn/cache/gensync-npm-1.0.0-beta.1-0bc9838d39-3d14f7c34f.zip/node_modules/gensync/', + packageDependencies: [['gensync', 'npm:1.0.0-beta.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'get-caller-file', + [ + [ + 'npm:2.0.5', + { + packageLocation: + './.yarn/cache/get-caller-file-npm-2.0.5-80e8a86305-9dd9e1e259.zip/node_modules/get-caller-file/', + packageDependencies: [['get-caller-file', 'npm:2.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'get-package-type', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/get-package-type-npm-0.1.0-6c70cdc8ab-a5b8beaf68.zip/node_modules/get-package-type/', + packageDependencies: [['get-package-type', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'get-stdin', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/get-stdin-npm-4.0.1-10c6ac0b43-ba122b0569.zip/node_modules/get-stdin/', + packageDependencies: [['get-stdin', 'npm:4.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/get-stdin-npm-6.0.0-22ebabe125-b51d664838.zip/node_modules/get-stdin/', + packageDependencies: [['get-stdin', 'npm:6.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'get-stream', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/get-stream-npm-3.0.0-ca0b13ddbe-83ed722c1b.zip/node_modules/get-stream/', + packageDependencies: [['get-stream', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/get-stream-npm-4.1.0-314d430a5d-f41bb3c74d.zip/node_modules/get-stream/', + packageDependencies: [ + ['get-stream', 'npm:4.1.0'], + ['pump', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/get-stream-npm-5.1.0-29a3aa3558-599dad0b6b.zip/node_modules/get-stream/', + packageDependencies: [ + ['get-stream', 'npm:5.1.0'], + ['pump', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'get-value', + [ + [ + 'npm:2.0.6', + { + packageLocation: + './.yarn/cache/get-value-npm-2.0.6-03cd422e0a-f08da32627.zip/node_modules/get-value/', + packageDependencies: [['get-value', 'npm:2.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'getpass', + [ + [ + 'npm:0.1.7', + { + packageLocation: + './.yarn/cache/getpass-npm-0.1.7-519164a3be-2650725bc6.zip/node_modules/getpass/', + packageDependencies: [ + ['getpass', 'npm:0.1.7'], + ['assert-plus', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'gh-got', + [ + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/gh-got-npm-5.0.0-401e6f2070-fd1d68c3f4.zip/node_modules/gh-got/', + packageDependencies: [ + ['gh-got', 'npm:5.0.0'], + ['got', 'npm:6.7.1'], + ['is-plain-obj', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'git-config-path', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/git-config-path-npm-1.0.1-158ab972e4-47a09f3846.zip/node_modules/git-config-path/', + packageDependencies: [ + ['git-config-path', 'npm:1.0.1'], + ['extend-shallow', 'npm:2.0.1'], + ['fs-exists-sync', 'npm:0.1.0'], + ['homedir-polyfill', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'github-from-package', + [ + [ + 'npm:0.0.0', + { + packageLocation: + './.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-9c3bae6015.zip/node_modules/github-from-package/', + packageDependencies: [['github-from-package', 'npm:0.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'github-username', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/github-username-npm-3.0.0-6108009012-3ccaa00861.zip/node_modules/github-username/', + packageDependencies: [ + ['github-username', 'npm:3.0.0'], + ['gh-got', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'gitlab', + [ + [ + 'npm:10.2.1', + { + packageLocation: + './.yarn/cache/gitlab-npm-10.2.1-add588f84a-d4cf6153ff.zip/node_modules/gitlab/', + packageDependencies: [ + ['gitlab', 'npm:10.2.1'], + ['form-data', 'npm:2.5.1'], + ['humps', 'npm:2.0.1'], + ['ky', 'npm:0.12.0'], + [ + 'ky-universal', + 'virtual:add588f84a4ecd8f02492550bb63eb7e87b18983b79581d31fb353368187e30c57f0ccfe7f55e1893cd041e7c7b18ba4ded0ed1efb652afa5c6c1663d676d61b#npm:0.3.0', + ], + ['li', 'npm:1.3.0'], + ['query-string', 'npm:6.13.8'], + ['universal-url', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'glob', + [ + [ + 'npm:7.1.6', + { + packageLocation: + './.yarn/cache/glob-npm-7.1.6-1ce3a5189a-789977b524.zip/node_modules/glob/', + packageDependencies: [ + ['glob', 'npm:7.1.6'], + ['fs.realpath', 'npm:1.0.0'], + ['inflight', 'npm:1.0.6'], + ['inherits', 'npm:2.0.4'], + ['minimatch', 'npm:3.0.4'], + ['once', 'npm:1.4.0'], + ['path-is-absolute', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'glob-parent', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/glob-parent-npm-3.1.0-31416ad085-2827ec4405.zip/node_modules/glob-parent/', + packageDependencies: [ + ['glob-parent', 'npm:3.1.0'], + ['is-glob', 'npm:3.1.0'], + ['path-dirname', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/glob-parent-npm-5.1.1-57b061cd88-2af6e196fb.zip/node_modules/glob-parent/', + packageDependencies: [ + ['glob-parent', 'npm:5.1.1'], + ['is-glob', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'glob-to-regexp', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/glob-to-regexp-npm-0.3.0-4f55888857-9e6e3f1170.zip/node_modules/glob-to-regexp/', + packageDependencies: [['glob-to-regexp', 'npm:0.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.4.1', + { + packageLocation: + './.yarn/cache/glob-to-regexp-npm-0.4.1-cd697e0fc7-6093c15d9f.zip/node_modules/glob-to-regexp/', + packageDependencies: [['glob-to-regexp', 'npm:0.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'global-agent', + [ + [ + 'npm:2.1.12', + { + packageLocation: + './.yarn/cache/global-agent-npm-2.1.12-886227ed9c-ee616a998d.zip/node_modules/global-agent/', + packageDependencies: [ + ['global-agent', 'npm:2.1.12'], + ['boolean', 'npm:3.0.1'], + ['core-js', 'npm:3.6.5'], + ['es6-error', 'npm:4.1.1'], + ['matcher', 'npm:3.0.0'], + ['roarr', 'npm:2.15.3'], + ['semver', 'npm:7.3.2'], + ['serialize-error', 'npm:7.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'global-dirs', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/global-dirs-npm-0.1.1-87c167e806-0d46e90b45.zip/node_modules/global-dirs/', + packageDependencies: [ + ['global-dirs', 'npm:0.1.1'], + ['ini', 'npm:1.3.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/global-dirs-npm-2.0.1-db647d4aca-8dfdc04e84.zip/node_modules/global-dirs/', + packageDependencies: [ + ['global-dirs', 'npm:2.0.1'], + ['ini', 'npm:1.3.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'global-tunnel-ng', + [ + [ + 'npm:2.7.1', + { + packageLocation: + './.yarn/cache/global-tunnel-ng-npm-2.7.1-0f22380ecc-9aa6702b55.zip/node_modules/global-tunnel-ng/', + packageDependencies: [ + ['global-tunnel-ng', 'npm:2.7.1'], + ['encodeurl', 'npm:1.0.2'], + ['lodash', 'npm:4.17.19'], + ['npm-conf', 'npm:1.1.3'], + ['tunnel', 'npm:0.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'globals', + [ + [ + 'npm:11.12.0', + { + packageLocation: + './.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-2563d3306a.zip/node_modules/globals/', + packageDependencies: [['globals', 'npm:11.12.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:12.4.0', + { + packageLocation: + './.yarn/cache/globals-npm-12.4.0-02b5a6ba9c-0b9764bdea.zip/node_modules/globals/', + packageDependencies: [ + ['globals', 'npm:12.4.0'], + ['type-fest', 'npm:0.8.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'globalthis', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/globalthis-npm-1.0.1-d5cb9c6789-031f9e8873.zip/node_modules/globalthis/', + packageDependencies: [ + ['globalthis', 'npm:1.0.1'], + ['define-properties', 'npm:1.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'globby', + [ + [ + 'npm:10.0.2', + { + packageLocation: + './.yarn/cache/globby-npm-10.0.2-9b274c88d3-53924c2b46.zip/node_modules/globby/', + packageDependencies: [ + ['globby', 'npm:10.0.2'], + ['@types/glob', 'npm:7.1.3'], + ['array-union', 'npm:2.1.0'], + ['dir-glob', 'npm:3.0.1'], + ['fast-glob', 'npm:3.2.4'], + ['glob', 'npm:7.1.6'], + ['ignore', 'npm:5.1.8'], + ['merge2', 'npm:1.4.1'], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:11.0.1', + { + packageLocation: + './.yarn/cache/globby-npm-11.0.1-b32c0f1cff-e7239e9e46.zip/node_modules/globby/', + packageDependencies: [ + ['globby', 'npm:11.0.1'], + ['array-union', 'npm:2.1.0'], + ['dir-glob', 'npm:3.0.1'], + ['fast-glob', 'npm:3.2.4'], + ['ignore', 'npm:5.1.8'], + ['merge2', 'npm:1.4.1'], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:11.0.2', + { + packageLocation: + './.yarn/cache/globby-npm-11.0.2-7ff8329b4b-d23f2a6b88.zip/node_modules/globby/', + packageDependencies: [ + ['globby', 'npm:11.0.2'], + ['array-union', 'npm:2.1.0'], + ['dir-glob', 'npm:3.0.1'], + ['fast-glob', 'npm:3.2.4'], + ['ignore', 'npm:5.1.8'], + ['merge2', 'npm:1.4.1'], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.0.2', + { + packageLocation: + './.yarn/cache/globby-npm-8.0.2-9c4bc6b4e1-de3e13ccbb.zip/node_modules/globby/', + packageDependencies: [ + ['globby', 'npm:8.0.2'], + ['array-union', 'npm:1.0.2'], + ['dir-glob', 'npm:2.0.0'], + ['fast-glob', 'npm:2.2.7'], + ['glob', 'npm:7.1.6'], + ['ignore', 'npm:3.3.10'], + ['pify', 'npm:3.0.0'], + ['slash', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.2.0', + { + packageLocation: + './.yarn/cache/globby-npm-9.2.0-686548dc5f-af02094ec1.zip/node_modules/globby/', + packageDependencies: [ + ['globby', 'npm:9.2.0'], + ['@types/glob', 'npm:7.1.3'], + ['array-union', 'npm:1.0.2'], + ['dir-glob', 'npm:2.2.2'], + ['fast-glob', 'npm:2.2.7'], + ['glob', 'npm:7.1.6'], + ['ignore', 'npm:4.0.6'], + ['pify', 'npm:4.0.1'], + ['slash', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'got', + [ + [ + 'npm:11.5.1', + { + packageLocation: + './.yarn/cache/got-npm-11.5.1-7b30dbe914-a746db1245.zip/node_modules/got/', + packageDependencies: [ + ['got', 'npm:11.5.1'], + ['@sindresorhus/is', 'npm:3.1.0'], + ['@szmarczak/http-timer', 'npm:4.0.5'], + ['@types/cacheable-request', 'npm:6.0.1'], + ['@types/responselike', 'npm:1.0.0'], + ['cacheable-lookup', 'npm:5.0.3'], + ['cacheable-request', 'npm:7.0.1'], + ['decompress-response', 'npm:6.0.0'], + ['http2-wrapper', 'npm:1.0.0-beta.5.2'], + ['lowercase-keys', 'npm:2.0.0'], + ['p-cancelable', 'npm:2.0.0'], + ['responselike', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.7.1', + { + packageLocation: + './.yarn/cache/got-npm-6.7.1-f61570d59b-bf19ee1cbb.zip/node_modules/got/', + packageDependencies: [ + ['got', 'npm:6.7.1'], + ['@types/keyv', 'npm:3.1.1'], + ['@types/responselike', 'npm:1.0.0'], + ['create-error-class', 'npm:3.0.2'], + ['duplexer3', 'npm:0.1.4'], + ['get-stream', 'npm:3.0.0'], + ['is-redirect', 'npm:1.0.0'], + ['is-retry-allowed', 'npm:1.2.0'], + ['is-stream', 'npm:1.1.0'], + ['lowercase-keys', 'npm:1.0.1'], + ['safe-buffer', 'npm:5.1.2'], + ['timed-out', 'npm:4.0.1'], + ['unzip-response', 'npm:2.0.1'], + ['url-parse-lax', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.1.0', + { + packageLocation: + './.yarn/cache/got-npm-7.1.0-83d1107046-db742d18a8.zip/node_modules/got/', + packageDependencies: [ + ['got', 'npm:7.1.0'], + ['@types/keyv', 'npm:3.1.1'], + ['@types/responselike', 'npm:1.0.0'], + ['decompress-response', 'npm:3.3.0'], + ['duplexer3', 'npm:0.1.4'], + ['get-stream', 'npm:3.0.0'], + ['is-plain-obj', 'npm:1.1.0'], + ['is-retry-allowed', 'npm:1.2.0'], + ['is-stream', 'npm:1.1.0'], + ['isurl', 'npm:1.0.0'], + ['lowercase-keys', 'npm:1.0.1'], + ['p-cancelable', 'npm:0.3.0'], + ['p-timeout', 'npm:1.2.1'], + ['safe-buffer', 'npm:5.1.2'], + ['timed-out', 'npm:4.0.1'], + ['url-parse-lax', 'npm:1.0.0'], + ['url-to-options', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.3.2', + { + packageLocation: + './.yarn/cache/got-npm-8.3.2-bed075f916-4f2b15dc9c.zip/node_modules/got/', + packageDependencies: [ + ['got', 'npm:8.3.2'], + ['@sindresorhus/is', 'npm:0.7.0'], + ['@types/keyv', 'npm:3.1.1'], + ['@types/responselike', 'npm:1.0.0'], + ['cacheable-request', 'npm:2.1.4'], + ['decompress-response', 'npm:3.3.0'], + ['duplexer3', 'npm:0.1.4'], + ['get-stream', 'npm:3.0.0'], + ['into-stream', 'npm:3.1.0'], + ['is-retry-allowed', 'npm:1.2.0'], + ['isurl', 'npm:1.0.0'], + ['lowercase-keys', 'npm:1.0.1'], + ['mimic-response', 'npm:1.0.1'], + ['p-cancelable', 'npm:0.4.1'], + ['p-timeout', 'npm:2.0.1'], + ['pify', 'npm:3.0.0'], + ['safe-buffer', 'npm:5.1.2'], + ['timed-out', 'npm:4.0.1'], + ['url-parse-lax', 'npm:3.0.0'], + ['url-to-options', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.6.0', + { + packageLocation: + './.yarn/cache/got-npm-9.6.0-80edc15fd0-4cfb862eb7.zip/node_modules/got/', + packageDependencies: [ + ['got', 'npm:9.6.0'], + ['@sindresorhus/is', 'npm:0.14.0'], + ['@szmarczak/http-timer', 'npm:1.1.2'], + ['@types/keyv', 'npm:3.1.1'], + ['@types/responselike', 'npm:1.0.0'], + ['cacheable-request', 'npm:6.1.0'], + ['decompress-response', 'npm:3.3.0'], + ['duplexer3', 'npm:0.1.4'], + ['get-stream', 'npm:4.1.0'], + ['lowercase-keys', 'npm:1.0.1'], + ['mimic-response', 'npm:1.0.1'], + ['p-cancelable', 'npm:1.1.0'], + ['to-readable-stream', 'npm:1.0.0'], + ['url-parse-lax', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graceful-fs', + [ + [ + 'npm:4.2.4', + { + packageLocation: + './.yarn/cache/graceful-fs-npm-4.2.4-734467635f-d095ee4dc6.zip/node_modules/graceful-fs/', + packageDependencies: [['graceful-fs', 'npm:4.2.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'grapheme-splitter', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/grapheme-splitter-npm-1.0.4-648f2bf509-6875e94add.zip/node_modules/grapheme-splitter/', + packageDependencies: [['grapheme-splitter', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphiql', + [ + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/graphiql-npm-1.2.2-5e1f7d8bd3-6c9c024616.zip/node_modules/graphiql/', + packageDependencies: [['graphiql', 'npm:1.2.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2', + { + packageLocation: + './.yarn/$$virtual/graphiql-virtual-03cd25c4d9/0/cache/graphiql-npm-1.2.2-5e1f7d8bd3-6c9c024616.zip/node_modules/graphiql/', + packageDependencies: [ + [ + 'graphiql', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2', + ], + ['@types/graphql', null], + ['@types/prop-types', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['codemirror', 'npm:5.56.0'], + [ + 'codemirror-graphql', + 'virtual:03cd25c4d9e3c4537fdae1f1d2b87684da41cf9a7df2bdfc043735a2d0dd8a7c14ab6f5cc81216f47340443866e0560e1edfa5d2ff3f7f5e733e1e01f152b4d7#npm:0.14.0', + ], + ['copy-to-clipboard', 'npm:3.3.1'], + ['entities', 'npm:2.0.3'], + ['graphql', 'npm:15.3.0'], + ['markdown-it', 'npm:10.0.0'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ], + packagePeers: [ + '@types/graphql', + '@types/prop-types', + '@types/react-dom', + '@types/react', + 'graphql', + 'prop-types', + 'react-dom', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql', + [ + [ + 'npm:14.7.0', + { + packageLocation: + './.yarn/cache/graphql-npm-14.7.0-5e981fc8a0-3b7d50f98f.zip/node_modules/graphql/', + packageDependencies: [ + ['graphql', 'npm:14.7.0'], + ['iterall', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:15.3.0', + { + packageLocation: + './.yarn/cache/graphql-npm-15.3.0-37caa96674-f01c05eb91.zip/node_modules/graphql/', + packageDependencies: [['graphql', 'npm:15.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-language-service-interface', + [ + [ + 'npm:2.7.0', + { + packageLocation: + './.yarn/cache/graphql-language-service-interface-npm-2.7.0-e1eadbfefd-d03a48d633.zip/node_modules/graphql-language-service-interface/', + packageDependencies: [ + ['graphql-language-service-interface', 'npm:2.7.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.7.0', + { + packageLocation: + './.yarn/$$virtual/graphql-language-service-interface-virtual-324dc72f29/0/cache/graphql-language-service-interface-npm-2.7.0-e1eadbfefd-d03a48d633.zip/node_modules/graphql-language-service-interface/', + packageDependencies: [ + [ + 'graphql-language-service-interface', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.7.0', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-language-service-parser', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0', + ], + [ + 'graphql-language-service-types', + 'virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0', + ], + [ + 'graphql-language-service-utils', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4', + ], + ['vscode-languageserver-types', 'npm:3.15.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-language-service-parser', + [ + [ + 'npm:1.8.0', + { + packageLocation: + './.yarn/cache/graphql-language-service-parser-npm-1.8.0-58711c16f2-3059a07c11.zip/node_modules/graphql-language-service-parser/', + packageDependencies: [ + ['graphql-language-service-parser', 'npm:1.8.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0', + { + packageLocation: + './.yarn/$$virtual/graphql-language-service-parser-virtual-a898aa2641/0/cache/graphql-language-service-parser-npm-1.8.0-58711c16f2-3059a07c11.zip/node_modules/graphql-language-service-parser/', + packageDependencies: [ + [ + 'graphql-language-service-parser', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:1.8.0', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-language-service-types', + 'virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0', + ], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-language-service-types', + [ + [ + 'npm:1.7.0', + { + packageLocation: + './.yarn/cache/graphql-language-service-types-npm-1.7.0-c2fd38fd07-ee93d5b428.zip/node_modules/graphql-language-service-types/', + packageDependencies: [ + ['graphql-language-service-types', 'npm:1.7.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0', + { + packageLocation: + './.yarn/$$virtual/graphql-language-service-types-virtual-b889eb2dd1/0/cache/graphql-language-service-types-npm-1.7.0-c2fd38fd07-ee93d5b428.zip/node_modules/graphql-language-service-types/', + packageDependencies: [ + [ + 'graphql-language-service-types', + 'virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-language-service-utils', + [ + [ + 'npm:2.4.4', + { + packageLocation: + './.yarn/cache/graphql-language-service-utils-npm-2.4.4-b61957bd76-9cf51ccbba.zip/node_modules/graphql-language-service-utils/', + packageDependencies: [ + ['graphql-language-service-utils', 'npm:2.4.4'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4', + { + packageLocation: + './.yarn/$$virtual/graphql-language-service-utils-virtual-02b28dacd1/0/cache/graphql-language-service-utils-npm-2.4.4-b61957bd76-9cf51ccbba.zip/node_modules/graphql-language-service-utils/', + packageDependencies: [ + [ + 'graphql-language-service-utils', + 'virtual:62f5b60d82e8a90bbcb522ee85ba48af2db2c9bb865064f4d4efa141b32afc208a1aa874caac16e4164a5535a2d43ad24b01d7b117de40db5b78d8af328aecc0#npm:2.4.4', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-language-service-types', + 'virtual:324dc72f29e8fe02fe02b0a20598af389cbad42e27c83e9f1dfaaf8aebe7fd77c2ccedc1261d504648a27f8096e39618ac8f6ee55beb60a52c3f73b58ebd9a20#npm:1.7.0', + ], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-tag', + [ + [ + 'npm:2.10.4', + { + packageLocation: + './.yarn/cache/graphql-tag-npm-2.10.4-6cee82501e-19c20d48c2.zip/node_modules/graphql-tag/', + packageDependencies: [['graphql-tag', 'npm:2.10.4']], + linkType: 'SOFT', + }, + ], + [ + 'npm:2.11.0', + { + packageLocation: + './.yarn/cache/graphql-tag-npm-2.11.0-d505ecf590-4003555901.zip/node_modules/graphql-tag/', + packageDependencies: [['graphql-tag', 'npm:2.11.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:2.10.4', + { + packageLocation: + './.yarn/$$virtual/graphql-tag-virtual-196dcd58ab/0/cache/graphql-tag-npm-2.10.4-6cee82501e-19c20d48c2.zip/node_modules/graphql-tag/', + packageDependencies: [ + [ + 'graphql-tag', + 'virtual:5d3d34b4324c87aa07a81efdaa2a96fa39cd8141b53992bc022e311ab0cdad634c0cbe5ebca2a8de6fa17cf98136752442a9f34500fa8080a4583a0eb417976d#npm:2.10.4', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + { + packageLocation: + './.yarn/$$virtual/graphql-tag-virtual-7e66e638c6/0/cache/graphql-tag-npm-2.11.0-d505ecf590-4003555901.zip/node_modules/graphql-tag/', + packageDependencies: [ + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-tools', + [ + [ + 'npm:6.2.1', + { + packageLocation: + './.yarn/cache/graphql-tools-npm-6.2.1-fcfaac98d1-839abf3722.zip/node_modules/graphql-tools/', + packageDependencies: [['graphql-tools', 'npm:6.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + { + packageLocation: + './.yarn/$$virtual/graphql-tools-virtual-80141ff236/0/cache/graphql-tools-npm-6.2.1-fcfaac98d1-839abf3722.zip/node_modules/graphql-tools/', + packageDependencies: [ + [ + 'graphql-tools', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/batch-delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/code-file-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/delegate', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/git-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/github-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/graphql-file-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/graphql-tag-pluck', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/import', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/json-file-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/links', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/load', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/load-files', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/merge', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/mock', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/module-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/relay-operation-optimizer', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/resolvers-composition', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + '@graphql-tools/stitch', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/url-loader', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + [ + '@graphql-tools/utils', + 'virtual:a08a0a2e775d36f6e5b053cdbdf61160d00c5bc12363ad78fead57f10c741565facfd3c572c26e64b6fc6e1e2023d8eed04768600ec7f6af10042f690b3569a6#npm:6.2.1', + ], + [ + '@graphql-tools/wrap', + 'virtual:80141ff23606e756eb6176d58d947588296c830318f7bed12e0232dbe2a8f22866dbb90b7c726b336e836ab2e76acb8a422ecfbbc95f7ec85fc16c7982e4bb50#npm:6.2.1', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ['tslib', 'npm:2.0.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'graphql-type-json', + [ + [ + 'npm:0.3.2', + { + packageLocation: + './.yarn/cache/graphql-type-json-npm-0.3.2-05debc01d8-dbc2ca9b00.zip/node_modules/graphql-type-json/', + packageDependencies: [['graphql-type-json', 'npm:0.3.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.3.2', + { + packageLocation: + './.yarn/$$virtual/graphql-type-json-virtual-e60ce49fa8/0/cache/graphql-type-json-npm-0.3.2-05debc01d8-dbc2ca9b00.zip/node_modules/graphql-type-json/', + packageDependencies: [ + [ + 'graphql-type-json', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.3.2', + ], + ['@types/graphql', null], + ['graphql', 'npm:15.3.0'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'gray-matter', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/gray-matter-npm-4.0.2-fbbccdd025-a4e24f74db.zip/node_modules/gray-matter/', + packageDependencies: [ + ['gray-matter', 'npm:4.0.2'], + ['js-yaml', 'npm:3.14.0'], + ['kind-of', 'npm:6.0.3'], + ['section-matter', 'npm:1.0.0'], + ['strip-bom-string', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'grouped-queue', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/grouped-queue-npm-1.1.0-4784f3398e-cf0c40a057.zip/node_modules/grouped-queue/', + packageDependencies: [ + ['grouped-queue', 'npm:1.1.0'], + ['lodash', 'npm:4.17.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'growly', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/growly-npm-1.3.0-b3a02d4d2a-c87f7e8c78.zip/node_modules/growly/', + packageDependencies: [['growly', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'handlebars', + [ + [ + 'npm:4.7.6', + { + packageLocation: + './.yarn/cache/handlebars-npm-4.7.6-f64e7514e4-50276715da.zip/node_modules/handlebars/', + packageDependencies: [ + ['handlebars', 'npm:4.7.6'], + ['minimist', 'npm:1.2.5'], + ['neo-async', 'npm:2.6.1'], + ['source-map', 'npm:0.6.1'], + ['uglify-js', 'npm:3.10.4'], + ['wordwrap', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'har-schema', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/har-schema-npm-2.0.0-3a318c0ca5-e27ac33a96.zip/node_modules/har-schema/', + packageDependencies: [['har-schema', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'har-validator', + [ + [ + 'npm:5.1.3', + { + packageLocation: + './.yarn/cache/har-validator-npm-5.1.3-f192d43c41-64cb2294c1.zip/node_modules/har-validator/', + packageDependencies: [ + ['har-validator', 'npm:5.1.3'], + ['ajv', 'npm:6.12.3'], + ['har-schema', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/has-npm-1.0.3-b7f00631c1-c686e15300.zip/node_modules/has/', + packageDependencies: [ + ['has', 'npm:1.0.3'], + ['function-bind', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-ansi', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/has-ansi-npm-2.0.0-9bf0cff2af-c6805f5d01.zip/node_modules/has-ansi/', + packageDependencies: [ + ['has-ansi', 'npm:2.0.0'], + ['ansi-regex', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-flag', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/has-flag-npm-1.0.0-9e0c397172-556423170e.zip/node_modules/has-flag/', + packageDependencies: [['has-flag', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/has-flag-npm-2.0.0-afbe649c60-bdc20630df.zip/node_modules/has-flag/', + packageDependencies: [['has-flag', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-63aade480d.zip/node_modules/has-flag/', + packageDependencies: [['has-flag', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/has-flag-npm-4.0.0-32af9f0536-2e5391139d.zip/node_modules/has-flag/', + packageDependencies: [['has-flag', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-own-prop', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/has-own-prop-npm-2.0.0-d895adfe8c-8513ff9052.zip/node_modules/has-own-prop/', + packageDependencies: [['has-own-prop', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-symbol-support-x', + [ + [ + 'npm:1.4.2', + { + packageLocation: + './.yarn/cache/has-symbol-support-x-npm-1.4.2-185b8a260c-d75110e7e3.zip/node_modules/has-symbol-support-x/', + packageDependencies: [['has-symbol-support-x', 'npm:1.4.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-symbols', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/has-symbols-npm-1.0.1-b783bc25ec-84e2a03ada.zip/node_modules/has-symbols/', + packageDependencies: [['has-symbols', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-to-string-tag-x', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/has-to-string-tag-x-npm-1.4.1-205861f243-fbbd620826.zip/node_modules/has-to-string-tag-x/', + packageDependencies: [ + ['has-to-string-tag-x', 'npm:1.4.1'], + ['has-symbol-support-x', 'npm:1.4.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-unicode', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/has-unicode-npm-2.0.1-893adb4747-ed3719f95c.zip/node_modules/has-unicode/', + packageDependencies: [['has-unicode', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-value', + [ + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/has-value-npm-0.3.1-4a15b6c29f-d78fab4523.zip/node_modules/has-value/', + packageDependencies: [ + ['has-value', 'npm:0.3.1'], + ['get-value', 'npm:2.0.6'], + ['has-values', 'npm:0.1.4'], + ['isobject', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/has-value-npm-1.0.0-19d82fd04b-e05422bce9.zip/node_modules/has-value/', + packageDependencies: [ + ['has-value', 'npm:1.0.0'], + ['get-value', 'npm:2.0.6'], + ['has-values', 'npm:1.0.0'], + ['isobject', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-values', + [ + [ + 'npm:0.1.4', + { + packageLocation: + './.yarn/cache/has-values-npm-0.1.4-6b4397786d-df7ac830e4.zip/node_modules/has-values/', + packageDependencies: [['has-values', 'npm:0.1.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/has-values-npm-1.0.0-890c077bbd-b69c45d513.zip/node_modules/has-values/', + packageDependencies: [ + ['has-values', 'npm:1.0.0'], + ['is-number', 'npm:3.0.0'], + ['kind-of', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'has-yarn', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/has-yarn-npm-2.1.0-b73f6750d9-105682f263.zip/node_modules/has-yarn/', + packageDependencies: [['has-yarn', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hash-base', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/hash-base-npm-3.1.0-26fc5711dd-9f4b0d183d.zip/node_modules/hash-base/', + packageDependencies: [ + ['hash-base', 'npm:3.1.0'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:3.6.0'], + ['safe-buffer', 'npm:5.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hash.js', + [ + [ + 'npm:1.1.7', + { + packageLocation: + './.yarn/cache/hash.js-npm-1.1.7-f1ad187358-fceb7fb87e.zip/node_modules/hash.js/', + packageDependencies: [ + ['hash.js', 'npm:1.1.7'], + ['inherits', 'npm:2.0.4'], + ['minimalistic-assert', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-embedded', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/hast-util-embedded-npm-1.0.5-ba4cc23c00-2208c8e00d.zip/node_modules/hast-util-embedded/', + packageDependencies: [ + ['hast-util-embedded', 'npm:1.0.5'], + ['hast-util-is-element', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-has-property', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/hast-util-has-property-npm-1.0.4-a09b607810-c9b8dcf181.zip/node_modules/hast-util-has-property/', + packageDependencies: [['hast-util-has-property', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-is-body-ok-link', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/hast-util-is-body-ok-link-npm-1.0.4-7d0327a924-93b1c8d6d4.zip/node_modules/hast-util-is-body-ok-link/', + packageDependencies: [ + ['hast-util-is-body-ok-link', 'npm:1.0.4'], + ['hast-util-has-property', 'npm:1.0.4'], + ['hast-util-is-element', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-is-element', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/hast-util-is-element-npm-1.1.0-be10e62fa7-fb8241c9a0.zip/node_modules/hast-util-is-element/', + packageDependencies: [['hast-util-is-element', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-phrasing', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/hast-util-phrasing-npm-1.0.5-9c550faa2d-53ece8fc56.zip/node_modules/hast-util-phrasing/', + packageDependencies: [ + ['hast-util-phrasing', 'npm:1.0.5'], + ['hast-util-embedded', 'npm:1.0.5'], + ['hast-util-has-property', 'npm:1.0.4'], + ['hast-util-is-body-ok-link', 'npm:1.0.4'], + ['hast-util-is-element', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-to-html', + [ + [ + 'npm:7.1.1', + { + packageLocation: + './.yarn/cache/hast-util-to-html-npm-7.1.1-088b4f4781-6087ccca17.zip/node_modules/hast-util-to-html/', + packageDependencies: [ + ['hast-util-to-html', 'npm:7.1.1'], + ['ccount', 'npm:1.0.5'], + ['comma-separated-tokens', 'npm:1.0.8'], + ['hast-util-is-element', 'npm:1.1.0'], + ['hast-util-whitespace', 'npm:1.0.4'], + ['html-void-elements', 'npm:1.0.5'], + ['property-information', 'npm:5.6.0'], + ['space-separated-tokens', 'npm:1.1.5'], + ['stringify-entities', 'npm:3.0.1'], + ['unist-util-is', 'npm:4.0.2'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hast-util-whitespace', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/hast-util-whitespace-npm-1.0.4-43bb1ff3d0-4acef9a83d.zip/node_modules/hast-util-whitespace/', + packageDependencies: [['hast-util-whitespace', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hasurl', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/hasurl-npm-1.0.0-198002760a-523cb8fc4d.zip/node_modules/hasurl/', + packageDependencies: [['hasurl', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'he', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/he-npm-1.1.1-441b4d33c6-b2b167171c.zip/node_modules/he/', + packageDependencies: [['he', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/he-npm-1.2.0-3b73a2ff07-212122003c.zip/node_modules/he/', + packageDependencies: [['he', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hex-color-regex', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/hex-color-regex-npm-1.1.0-35ec780c11-89899f5f74.zip/node_modules/hex-color-regex/', + packageDependencies: [['hex-color-regex', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hex-rgb', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/hex-rgb-npm-4.1.0-e9373742a2-38b46c4b71.zip/node_modules/hex-rgb/', + packageDependencies: [['hex-rgb', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'highlight.js', + [ + [ + 'npm:10.2.0', + { + packageLocation: + './.yarn/cache/highlight.js-npm-10.2.0-c7b0b930ee-249ae2aa45.zip/node_modules/highlight.js/', + packageDependencies: [['highlight.js', 'npm:10.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hmac-drbg', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/hmac-drbg-npm-1.0.1-3499ad31cd-729d5a55bf.zip/node_modules/hmac-drbg/', + packageDependencies: [ + ['hmac-drbg', 'npm:1.0.1'], + ['hash.js', 'npm:1.1.7'], + ['minimalistic-assert', 'npm:1.0.1'], + ['minimalistic-crypto-utils', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hoist-non-react-statics', + [ + [ + 'npm:3.3.2', + { + packageLocation: + './.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-d3e3791d6e.zip/node_modules/hoist-non-react-statics/', + packageDependencies: [ + ['hoist-non-react-statics', 'npm:3.3.2'], + ['react-is', 'npm:16.13.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'homedir-polyfill', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/homedir-polyfill-npm-1.0.3-da1a29ce00-86a4e544ca.zip/node_modules/homedir-polyfill/', + packageDependencies: [ + ['homedir-polyfill', 'npm:1.0.3'], + ['parse-passwd', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hosted-git-info', + [ + [ + 'npm:2.8.8', + { + packageLocation: + './.yarn/cache/hosted-git-info-npm-2.8.8-94a3928c03-3ecc389dc6.zip/node_modules/hosted-git-info/', + packageDependencies: [['hosted-git-info', 'npm:2.8.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hsl-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/hsl-regex-npm-1.0.0-49e975d55c-b04a50c6c7.zip/node_modules/hsl-regex/', + packageDependencies: [['hsl-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hsla-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/hsla-regex-npm-1.0.0-f9d795def9-2460f935b5.zip/node_modules/hsla-regex/', + packageDependencies: [['hsla-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'html-comment-regex', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/html-comment-regex-npm-1.1.2-3f748b74f9-f3bf135002.zip/node_modules/html-comment-regex/', + packageDependencies: [['html-comment-regex', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'html-encoding-sniffer', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/html-encoding-sniffer-npm-2.0.1-381bf15a76-6f49e83a2e.zip/node_modules/html-encoding-sniffer/', + packageDependencies: [ + ['html-encoding-sniffer', 'npm:2.0.1'], + ['whatwg-encoding', 'npm:1.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'html-escaper', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/html-escaper-npm-2.0.2-38e51ef294-a216ae96fa.zip/node_modules/html-escaper/', + packageDependencies: [['html-escaper', 'npm:2.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'html-to-react', + [ + [ + 'npm:1.4.3', + { + packageLocation: + './.yarn/cache/html-to-react-npm-1.4.3-1046be01f1-7a1545316a.zip/node_modules/html-to-react/', + packageDependencies: [['html-to-react', 'npm:1.4.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3', + { + packageLocation: + './.yarn/$$virtual/html-to-react-virtual-8c0c4a4459/0/cache/html-to-react-npm-1.4.3-1046be01f1-7a1545316a.zip/node_modules/html-to-react/', + packageDependencies: [ + [ + 'html-to-react', + 'virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3', + ], + ['@types/react', 'npm:16.9.43'], + ['domhandler', 'npm:3.0.0'], + ['htmlparser2', 'npm:4.1.0'], + ['lodash.camelcase', 'npm:4.3.0'], + ['ramda', 'npm:0.27.0'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'html-void-elements', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/html-void-elements-npm-1.0.5-64f7ffca37-62cb426bd3.zip/node_modules/html-void-elements/', + packageDependencies: [['html-void-elements', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'html-whitespace-sensitive-tag-names', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/html-whitespace-sensitive-tag-names-npm-1.0.3-a68ebcf264-b928448aa3.zip/node_modules/html-whitespace-sensitive-tag-names/', + packageDependencies: [ + ['html-whitespace-sensitive-tag-names', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'htmlparser2', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/htmlparser2-npm-4.1.0-484402b323-4a5d9ecbe3.zip/node_modules/htmlparser2/', + packageDependencies: [ + ['htmlparser2', 'npm:4.1.0'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.0.0'], + ['domutils', 'npm:2.0.0'], + ['entities', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/htmlparser2-npm-5.0.1-d50ebd0fbb-c3564b7d26.zip/node_modules/htmlparser2/', + packageDependencies: [ + ['htmlparser2', 'npm:5.0.1'], + ['domelementtype', 'npm:2.0.1'], + ['domhandler', 'npm:3.3.0'], + ['domutils', 'npm:2.6.0'], + ['entities', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'http-cache-semantics', + [ + [ + 'npm:3.8.1', + { + packageLocation: + './.yarn/cache/http-cache-semantics-npm-3.8.1-9d037f563e-715784dc20.zip/node_modules/http-cache-semantics/', + packageDependencies: [['http-cache-semantics', 'npm:3.8.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/http-cache-semantics-npm-4.1.0-860520a31f-451df9784a.zip/node_modules/http-cache-semantics/', + packageDependencies: [['http-cache-semantics', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'http-errors', + [ + [ + 'npm:1.7.2', + { + packageLocation: + './.yarn/cache/http-errors-npm-1.7.2-67163ae1df-8ce4a4af05.zip/node_modules/http-errors/', + packageDependencies: [ + ['http-errors', 'npm:1.7.2'], + ['depd', 'npm:1.1.2'], + ['inherits', 'npm:2.0.3'], + ['setprototypeof', 'npm:1.1.1'], + ['statuses', 'npm:1.5.0'], + ['toidentifier', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.7.3', + { + packageLocation: + './.yarn/cache/http-errors-npm-1.7.3-f6dc83b082-563ae4a3f1.zip/node_modules/http-errors/', + packageDependencies: [ + ['http-errors', 'npm:1.7.3'], + ['depd', 'npm:1.1.2'], + ['inherits', 'npm:2.0.4'], + ['setprototypeof', 'npm:1.1.1'], + ['statuses', 'npm:1.5.0'], + ['toidentifier', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.8.0', + { + packageLocation: + './.yarn/cache/http-errors-npm-1.8.0-4399ea3b8d-95ad78508b.zip/node_modules/http-errors/', + packageDependencies: [ + ['http-errors', 'npm:1.8.0'], + ['depd', 'npm:1.1.2'], + ['inherits', 'npm:2.0.4'], + ['setprototypeof', 'npm:1.2.0'], + ['statuses', 'npm:1.5.0'], + ['toidentifier', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'http-proxy', + [ + [ + 'npm:1.18.1', + { + packageLocation: + './.yarn/cache/http-proxy-npm-1.18.1-a313c479c5-fc2062718d.zip/node_modules/http-proxy/', + packageDependencies: [ + ['http-proxy', 'npm:1.18.1'], + ['eventemitter3', 'npm:4.0.4'], + ['follow-redirects', 'npm:1.12.1'], + ['requires-port', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'http-proxy-agent', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/http-proxy-agent-npm-2.1.0-6618ab6046-627c6a7437.zip/node_modules/http-proxy-agent/', + packageDependencies: [ + ['http-proxy-agent', 'npm:2.1.0'], + ['agent-base', 'npm:4.3.0'], + [ + 'debug', + 'virtual:6618ab6046111bda0b9a733e34fec5329265b155b4408a2345f36333ccbe1a86dfc9efc447e5134e4156dde98ed737f5efbe42b5378f22c09197bf46e2cdab17#npm:3.1.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'http-signature', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/http-signature-npm-1.2.0-ee92426f34-d28227eed3.zip/node_modules/http-signature/', + packageDependencies: [ + ['http-signature', 'npm:1.2.0'], + ['assert-plus', 'npm:1.0.0'], + ['jsprim', 'npm:1.4.1'], + ['sshpk', 'npm:1.16.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'http2-wrapper', + [ + [ + 'npm:1.0.0-beta.5.2', + { + packageLocation: + './.yarn/cache/http2-wrapper-npm-1.0.0-beta.5.2-3ea360ab61-74db457c83.zip/node_modules/http2-wrapper/', + packageDependencies: [ + ['http2-wrapper', 'npm:1.0.0-beta.5.2'], + ['quick-lru', 'npm:5.1.1'], + ['resolve-alpn', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'https-browserify', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/https-browserify-npm-1.0.0-7d6b10abbc-9746a4ef02.zip/node_modules/https-browserify/', + packageDependencies: [['https-browserify', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'https-proxy-agent', + [ + [ + 'npm:2.2.4', + { + packageLocation: + './.yarn/cache/https-proxy-agent-npm-2.2.4-8bb97bed48-4e42bed005.zip/node_modules/https-proxy-agent/', + packageDependencies: [ + ['https-proxy-agent', 'npm:2.2.4'], + ['agent-base', 'npm:4.3.0'], + [ + 'debug', + 'virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/https-proxy-agent-npm-5.0.0-bb777903c3-18aa04ea08.zip/node_modules/https-proxy-agent/', + packageDependencies: [ + ['https-proxy-agent', 'npm:5.0.0'], + ['agent-base', 'npm:6.0.2'], + [ + 'debug', + 'virtual:428f325a939c2653ad822eb3d75efb02ac311523dd0d4f9645afc39ea00bd86eceac35a9d59c9b6977d76b670a4ef0ae057ea572338a44729aa592711a8c05a3#npm:4.3.2', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'human-signals', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/human-signals-npm-1.1.1-616b2586c2-cac115f635.zip/node_modules/human-signals/', + packageDependencies: [['human-signals', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'humanize-string', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/humanize-string-npm-1.0.2-e8024b948d-d455bcdbf8.zip/node_modules/humanize-string/', + packageDependencies: [ + ['humanize-string', 'npm:1.0.2'], + ['decamelize', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'humps', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/humps-npm-2.0.1-268b3f430d-d7758bccbb.zip/node_modules/humps/', + packageDependencies: [['humps', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'husky', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/husky-npm-6.0.0-384872ea98-61e1f7f53f.zip/node_modules/husky/', + packageDependencies: [['husky', 'npm:6.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'hyperlinker', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/hyperlinker-npm-1.0.0-c2e60c3b2a-80273573e9.zip/node_modules/hyperlinker/', + packageDependencies: [['hyperlinker', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'iconv-lite', + [ + [ + 'npm:0.4.24', + { + packageLocation: + './.yarn/cache/iconv-lite-npm-0.4.24-c5c4ac6695-a9b9521066.zip/node_modules/iconv-lite/', + packageDependencies: [ + ['iconv-lite', 'npm:0.4.24'], + ['safer-buffer', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.6.2', + { + packageLocation: + './.yarn/cache/iconv-lite-npm-0.6.2-13e85ec7dc-0785670120.zip/node_modules/iconv-lite/', + packageDependencies: [ + ['iconv-lite', 'npm:0.6.2'], + ['safer-buffer', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'icss-utils', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/icss-utils-npm-4.1.1-9d588ebc46-437ba4f7c9.zip/node_modules/icss-utils/', + packageDependencies: [ + ['icss-utils', 'npm:4.1.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ieee754', + [ + [ + 'npm:1.1.13', + { + packageLocation: + './.yarn/cache/ieee754-npm-1.1.13-a57522ba12-9ef12932e8.zip/node_modules/ieee754/', + packageDependencies: [['ieee754', 'npm:1.1.13']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/ieee754-npm-1.2.1-fb63b3caeb-6c1cfab995.zip/node_modules/ieee754/', + packageDependencies: [['ieee754', 'npm:1.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'iferr', + [ + [ + 'npm:0.1.5', + { + packageLocation: + './.yarn/cache/iferr-npm-0.1.5-c49f4a3fbc-9d366dcc63.zip/node_modules/iferr/', + packageDependencies: [['iferr', 'npm:0.1.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ignore', + [ + [ + 'npm:3.3.10', + { + packageLocation: + './.yarn/cache/ignore-npm-3.3.10-baaf3519b5-eda1ee5716.zip/node_modules/ignore/', + packageDependencies: [['ignore', 'npm:3.3.10']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.6', + { + packageLocation: + './.yarn/cache/ignore-npm-4.0.6-66c0d6543e-8f7b7f7c26.zip/node_modules/ignore/', + packageDependencies: [['ignore', 'npm:4.0.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.8', + { + packageLocation: + './.yarn/cache/ignore-npm-5.1.8-aa9a49ada4-b08e3d5b5d.zip/node_modules/ignore/', + packageDependencies: [['ignore', 'npm:5.1.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ignore-by-default', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/ignore-by-default-npm-1.0.1-78ea10bc54-c5c70afd7c.zip/node_modules/ignore-by-default/', + packageDependencies: [['ignore-by-default', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'immutable', + [ + [ + 'npm:3.7.6', + { + packageLocation: + './.yarn/cache/immutable-npm-3.7.6-1c13b39359-33fb106a33.zip/node_modules/immutable/', + packageDependencies: [['immutable', 'npm:3.7.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'import-cwd', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/import-cwd-npm-3.0.0-2f801f964d-5689cfc5d2.zip/node_modules/import-cwd/', + packageDependencies: [ + ['import-cwd', 'npm:3.0.0'], + ['import-from', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'import-fresh', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/import-fresh-npm-2.0.0-8b4e6073aa-c95204ecfb.zip/node_modules/import-fresh/', + packageDependencies: [ + ['import-fresh', 'npm:2.0.0'], + ['caller-path', 'npm:2.0.0'], + ['resolve-from', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.1', + { + packageLocation: + './.yarn/cache/import-fresh-npm-3.2.1-b4f6711244-5ace950631.zip/node_modules/import-fresh/', + packageDependencies: [ + ['import-fresh', 'npm:3.2.1'], + ['parent-module', 'npm:1.0.1'], + ['resolve-from', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-3ff624f001.zip/node_modules/import-fresh/', + packageDependencies: [ + ['import-fresh', 'npm:3.3.0'], + ['parent-module', 'npm:1.0.1'], + ['resolve-from', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'import-from', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/import-from-npm-3.0.0-8656bfd330-ba66d42da5.zip/node_modules/import-from/', + packageDependencies: [ + ['import-from', 'npm:3.0.0'], + ['resolve-from', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'import-lazy', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/import-lazy-npm-2.1.0-b128ce6959-4907a2ddbe.zip/node_modules/import-lazy/', + packageDependencies: [['import-lazy', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'import-local', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/import-local-npm-3.0.2-c8afc1fd5f-9ba5f1697b.zip/node_modules/import-local/', + packageDependencies: [ + ['import-local', 'npm:3.0.2'], + ['pkg-dir', 'npm:4.2.0'], + ['resolve-cwd', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'imurmurhash', + [ + [ + 'npm:0.1.4', + { + packageLocation: + './.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-34d414d789.zip/node_modules/imurmurhash/', + packageDependencies: [['imurmurhash', 'npm:0.1.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'indent-string', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/indent-string-npm-2.1.0-fe23253c76-5c6bc6548e.zip/node_modules/indent-string/', + packageDependencies: [ + ['indent-string', 'npm:2.1.0'], + ['repeating', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/indent-string-npm-3.2.0-9930503310-00d5200e3a.zip/node_modules/indent-string/', + packageDependencies: [['indent-string', 'npm:3.2.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/indent-string-npm-4.0.0-7b717435b2-3e54996c6e.zip/node_modules/indent-string/', + packageDependencies: [['indent-string', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'indexes-of', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/indexes-of-npm-1.0.1-5ce8500941-e1c232a326.zip/node_modules/indexes-of/', + packageDependencies: [['indexes-of', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'infer-owner', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-56aa1d87b0.zip/node_modules/infer-owner/', + packageDependencies: [['infer-owner', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'inflight', + [ + [ + 'npm:1.0.6', + { + packageLocation: + './.yarn/cache/inflight-npm-1.0.6-ccedb4b908-17c53fc42c.zip/node_modules/inflight/', + packageDependencies: [ + ['inflight', 'npm:1.0.6'], + ['once', 'npm:1.4.0'], + ['wrappy', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'inherits', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/inherits-npm-2.0.1-0011554c03-6f59f627a6.zip/node_modules/inherits/', + packageDependencies: [['inherits', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/inherits-npm-2.0.3-401e64b080-9488f9433e.zip/node_modules/inherits/', + packageDependencies: [['inherits', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/inherits-npm-2.0.4-c66b3957a0-98426da247.zip/node_modules/inherits/', + packageDependencies: [['inherits', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ini', + [ + [ + 'npm:1.3.5', + { + packageLocation: + './.yarn/cache/ini-npm-1.3.5-c4f62924bc-304a78d1e0.zip/node_modules/ini/', + packageDependencies: [['ini', 'npm:1.3.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'inquirer', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/inquirer-npm-1.2.3-a9065a86ba-189a0fb7c7.zip/node_modules/inquirer/', + packageDependencies: [ + ['inquirer', 'npm:1.2.3'], + ['ansi-escapes', 'npm:1.4.0'], + ['chalk', 'npm:1.1.3'], + ['cli-cursor', 'npm:1.0.2'], + ['cli-width', 'npm:2.2.1'], + ['external-editor', 'npm:1.1.1'], + ['figures', 'npm:1.7.0'], + ['lodash', 'npm:4.17.19'], + ['mute-stream', 'npm:0.0.6'], + ['pinkie-promise', 'npm:2.0.1'], + ['run-async', 'npm:2.4.1'], + ['rx', 'npm:4.1.0'], + ['string-width', 'npm:1.0.2'], + ['strip-ansi', 'npm:3.0.1'], + ['through', 'npm:2.3.8'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.5.2', + { + packageLocation: + './.yarn/cache/inquirer-npm-6.5.2-4f6408c247-f3185658ee.zip/node_modules/inquirer/', + packageDependencies: [ + ['inquirer', 'npm:6.5.2'], + ['ansi-escapes', 'npm:3.2.0'], + ['chalk', 'npm:2.4.2'], + ['cli-cursor', 'npm:2.1.0'], + ['cli-width', 'npm:2.2.1'], + ['external-editor', 'npm:3.1.0'], + ['figures', 'npm:2.0.0'], + ['lodash', 'npm:4.17.19'], + ['mute-stream', 'npm:0.0.7'], + ['run-async', 'npm:2.4.1'], + ['rxjs', 'npm:6.6.0'], + ['string-width', 'npm:2.1.1'], + ['strip-ansi', 'npm:5.2.0'], + ['through', 'npm:2.3.8'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.3.3', + { + packageLocation: + './.yarn/cache/inquirer-npm-7.3.3-9e86782610-fa0cbd9594.zip/node_modules/inquirer/', + packageDependencies: [ + ['inquirer', 'npm:7.3.3'], + ['ansi-escapes', 'npm:4.3.1'], + ['chalk', 'npm:4.1.0'], + ['cli-cursor', 'npm:3.1.0'], + ['cli-width', 'npm:3.0.0'], + ['external-editor', 'npm:3.1.0'], + ['figures', 'npm:3.2.0'], + ['lodash', 'npm:4.17.19'], + ['mute-stream', 'npm:0.0.8'], + ['run-async', 'npm:2.4.1'], + ['rxjs', 'npm:6.6.0'], + ['string-width', 'npm:4.2.0'], + ['strip-ansi', 'npm:6.0.0'], + ['through', 'npm:2.3.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'insight', + [ + [ + 'npm:0.10.3', + { + packageLocation: + './.yarn/cache/insight-npm-0.10.3-6de547d728-dbd7e97257.zip/node_modules/insight/', + packageDependencies: [ + ['insight', 'npm:0.10.3'], + ['async', 'npm:2.6.3'], + ['chalk', 'npm:2.4.2'], + ['conf', 'npm:1.4.0'], + ['inquirer', 'npm:6.5.2'], + ['lodash.debounce', 'npm:4.0.8'], + ['os-name', 'npm:3.1.0'], + ['request', 'npm:2.88.2'], + ['tough-cookie', 'npm:3.0.1'], + ['uuid', 'npm:3.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'interpret', + [ + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/interpret-npm-1.4.0-17b4b5b0a4-f15725d762.zip/node_modules/interpret/', + packageDependencies: [['interpret', 'npm:1.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'into-stream', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/into-stream-npm-3.1.0-56f8d76349-c3af9c2ee7.zip/node_modules/into-stream/', + packageDependencies: [ + ['into-stream', 'npm:3.1.0'], + ['from2', 'npm:2.3.0'], + ['p-is-promise', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'invariant', + [ + [ + 'npm:2.2.4', + { + packageLocation: + './.yarn/cache/invariant-npm-2.2.4-717fbdb119-96d8a2a4f0.zip/node_modules/invariant/', + packageDependencies: [ + ['invariant', 'npm:2.2.4'], + ['loose-envify', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ip-regex', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/ip-regex-npm-2.1.0-7eb0f6c4ab-2fd2190ada.zip/node_modules/ip-regex/', + packageDependencies: [['ip-regex', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ipaddr.js', + [ + [ + 'npm:1.9.1', + { + packageLocation: + './.yarn/cache/ipaddr.js-npm-1.9.1-19ae7878b4-de15bc7e63.zip/node_modules/ipaddr.js/', + packageDependencies: [['ipaddr.js', 'npm:1.9.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is', + [ + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/is-npm-3.3.0-90b1d93580-191293ded7.zip/node_modules/is/', + packageDependencies: [['is', 'npm:3.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-absolute', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-absolute-npm-1.0.0-2525cf00c8-4b8ebda658.zip/node_modules/is-absolute/', + packageDependencies: [ + ['is-absolute', 'npm:1.0.0'], + ['is-relative', 'npm:1.0.0'], + ['is-windows', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-absolute-url', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/is-absolute-url-npm-2.1.0-f1cdafe3db-f9d193d86b.zip/node_modules/is-absolute-url/', + packageDependencies: [['is-absolute-url', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-accessor-descriptor', + [ + [ + 'npm:0.1.6', + { + packageLocation: + './.yarn/cache/is-accessor-descriptor-npm-0.1.6-41c495d517-7a7fca2185.zip/node_modules/is-accessor-descriptor/', + packageDependencies: [ + ['is-accessor-descriptor', 'npm:0.1.6'], + ['kind-of', 'npm:3.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-accessor-descriptor-npm-1.0.0-d8ce016e98-3973215c2e.zip/node_modules/is-accessor-descriptor/', + packageDependencies: [ + ['is-accessor-descriptor', 'npm:1.0.0'], + ['kind-of', 'npm:6.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-alphabetical', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/is-alphabetical-npm-1.0.4-94e2e7f984-a4a2afcf65.zip/node_modules/is-alphabetical/', + packageDependencies: [['is-alphabetical', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-alphanumeric', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-alphanumeric-npm-1.0.0-d58b7d3fab-f00fa59efc.zip/node_modules/is-alphanumeric/', + packageDependencies: [['is-alphanumeric', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-alphanumerical', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/is-alphanumerical-npm-1.0.4-c96dc6d674-d97ec38a74.zip/node_modules/is-alphanumerical/', + packageDependencies: [ + ['is-alphanumerical', 'npm:1.0.4'], + ['is-alphabetical', 'npm:1.0.4'], + ['is-decimal', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-arrayish', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-fc2bbe14db.zip/node_modules/is-arrayish/', + packageDependencies: [['is-arrayish', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.3.2', + { + packageLocation: + './.yarn/cache/is-arrayish-npm-0.3.2-f856180f79-0687b6b8f2.zip/node_modules/is-arrayish/', + packageDependencies: [['is-arrayish', 'npm:0.3.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-binary-path', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/is-binary-path-npm-1.0.1-9af74a6099-25a2cda1e5.zip/node_modules/is-binary-path/', + packageDependencies: [ + ['is-binary-path', 'npm:1.0.1'], + ['binary-extensions', 'npm:1.13.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-49a1446a3c.zip/node_modules/is-binary-path/', + packageDependencies: [ + ['is-binary-path', 'npm:2.1.0'], + ['binary-extensions', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-buffer', + [ + [ + 'npm:1.1.6', + { + packageLocation: + './.yarn/cache/is-buffer-npm-1.1.6-08199d9ccc-336ec78f00.zip/node_modules/is-buffer/', + packageDependencies: [['is-buffer', 'npm:1.1.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/is-buffer-npm-2.0.4-ce097f06a1-cd1cbc19e5.zip/node_modules/is-buffer/', + packageDependencies: [['is-buffer', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-callable', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/is-callable-npm-1.2.0-65cf88fe60-8a5e68b7c3.zip/node_modules/is-callable/', + packageDependencies: [['is-callable', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-ci', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/is-ci-npm-1.2.1-6a67118112-cdcdeba942.zip/node_modules/is-ci/', + packageDependencies: [ + ['is-ci', 'npm:1.2.1'], + ['ci-info', 'npm:1.6.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/is-ci-npm-2.0.0-8662a0f445-09083018ed.zip/node_modules/is-ci/', + packageDependencies: [ + ['is-ci', 'npm:2.0.0'], + ['ci-info', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-color-stop', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-color-stop-npm-1.1.0-4235280dc5-0e3d46b1e1.zip/node_modules/is-color-stop/', + packageDependencies: [ + ['is-color-stop', 'npm:1.1.0'], + ['css-color-names', 'npm:0.0.4'], + ['hex-color-regex', 'npm:1.1.0'], + ['hsl-regex', 'npm:1.0.0'], + ['hsla-regex', 'npm:1.0.0'], + ['rgb-regex', 'npm:1.0.1'], + ['rgba-regex', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-core-module', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/is-core-module-npm-2.2.0-497065e3b0-2344744de9.zip/node_modules/is-core-module/', + packageDependencies: [ + ['is-core-module', 'npm:2.2.0'], + ['has', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-data-descriptor', + [ + [ + 'npm:0.1.4', + { + packageLocation: + './.yarn/cache/is-data-descriptor-npm-0.1.4-6f53f71c67-51db89bb46.zip/node_modules/is-data-descriptor/', + packageDependencies: [ + ['is-data-descriptor', 'npm:0.1.4'], + ['kind-of', 'npm:3.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-data-descriptor-npm-1.0.0-f7d2e852ca-0297518899.zip/node_modules/is-data-descriptor/', + packageDependencies: [ + ['is-data-descriptor', 'npm:1.0.0'], + ['kind-of', 'npm:6.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-date-object', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/is-date-object-npm-1.0.2-461fbe93c0-0e32269946.zip/node_modules/is-date-object/', + packageDependencies: [['is-date-object', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-decimal', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/is-decimal-npm-1.0.4-e67dbd40dd-57a0e1a87f.zip/node_modules/is-decimal/', + packageDependencies: [['is-decimal', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-descriptor', + [ + [ + 'npm:0.1.6', + { + packageLocation: + './.yarn/cache/is-descriptor-npm-0.1.6-15c7346839-cab6979fb6.zip/node_modules/is-descriptor/', + packageDependencies: [ + ['is-descriptor', 'npm:0.1.6'], + ['is-accessor-descriptor', 'npm:0.1.6'], + ['is-data-descriptor', 'npm:0.1.4'], + ['kind-of', 'npm:5.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/is-descriptor-npm-1.0.2-5cfc02c444-be8004010e.zip/node_modules/is-descriptor/', + packageDependencies: [ + ['is-descriptor', 'npm:1.0.2'], + ['is-accessor-descriptor', 'npm:1.0.0'], + ['is-data-descriptor', 'npm:1.0.0'], + ['kind-of', 'npm:6.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-directory', + [ + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/is-directory-npm-0.3.1-e835db28ed-e921dc1817.zip/node_modules/is-directory/', + packageDependencies: [['is-directory', 'npm:0.3.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-docker', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-docker-npm-1.1.0-3a06b7148b-9762929738.zip/node_modules/is-docker/', + packageDependencies: [['is-docker', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/is-docker-npm-2.0.0-e998f9161a-9972935f7d.zip/node_modules/is-docker/', + packageDependencies: [['is-docker', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-extendable', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/is-extendable-npm-0.1.1-322b4649ec-9d051e68c3.zip/node_modules/is-extendable/', + packageDependencies: [['is-extendable', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/is-extendable-npm-1.0.1-7095ad8b16-2bf711afe6.zip/node_modules/is-extendable/', + packageDependencies: [ + ['is-extendable', 'npm:1.0.1'], + ['is-plain-object', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-extglob', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-ca623e2c56.zip/node_modules/is-extglob/', + packageDependencies: [['is-extglob', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-finite', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-finite-npm-1.1.0-c6324c0f8f-d2ea9746ec.zip/node_modules/is-finite/', + packageDependencies: [['is-finite', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-fullwidth-code-point', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-fullwidth-code-point-npm-1.0.0-0e436ba1ef-fc3d51ef08.zip/node_modules/is-fullwidth-code-point/', + packageDependencies: [ + ['is-fullwidth-code-point', 'npm:1.0.0'], + ['number-is-nan', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-e1e5284f84.zip/node_modules/is-fullwidth-code-point/', + packageDependencies: [['is-fullwidth-code-point', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-a01a19ecac.zip/node_modules/is-fullwidth-code-point/', + packageDependencies: [['is-fullwidth-code-point', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-generator-fn', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/is-generator-fn-npm-2.1.0-37895c2d2b-9639f81679.zip/node_modules/is-generator-fn/', + packageDependencies: [['is-generator-fn', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-glob', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/is-glob-npm-3.1.0-ea0bd3271e-9911e04e28.zip/node_modules/is-glob/', + packageDependencies: [ + ['is-glob', 'npm:3.1.0'], + ['is-extglob', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/is-glob-npm-4.0.1-341760116f-98cd4f715f.zip/node_modules/is-glob/', + packageDependencies: [ + ['is-glob', 'npm:4.0.1'], + ['is-extglob', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-hexadecimal', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/is-hexadecimal-npm-1.0.4-b4091da09e-653c1d0115.zip/node_modules/is-hexadecimal/', + packageDependencies: [['is-hexadecimal', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-installed-globally', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/is-installed-globally-npm-0.1.0-c4b41928c9-99de529fc6.zip/node_modules/is-installed-globally/', + packageDependencies: [ + ['is-installed-globally', 'npm:0.1.0'], + ['global-dirs', 'npm:0.1.1'], + ['is-path-inside', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.3.2', + { + packageLocation: + './.yarn/cache/is-installed-globally-npm-0.3.2-a593acf078-10fc4fb09f.zip/node_modules/is-installed-globally/', + packageDependencies: [ + ['is-installed-globally', 'npm:0.3.2'], + ['global-dirs', 'npm:2.0.1'], + ['is-path-inside', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-interactive', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-interactive-npm-1.0.0-7ff7c6e04a-d79b435e51.zip/node_modules/is-interactive/', + packageDependencies: [['is-interactive', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-module', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-module-npm-1.0.0-79ba918283-2cbd41e276.zip/node_modules/is-module/', + packageDependencies: [['is-module', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-npm', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-npm-npm-1.0.0-3797354863-b562218ef0.zip/node_modules/is-npm/', + packageDependencies: [['is-npm', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/is-npm-npm-4.0.0-86d312340b-94ab2edae3.zip/node_modules/is-npm/', + packageDependencies: [['is-npm', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-number', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/is-number-npm-3.0.0-9088035ade-ae03986ded.zip/node_modules/is-number/', + packageDependencies: [ + ['is-number', 'npm:3.0.0'], + ['kind-of', 'npm:3.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.0', + { + packageLocation: + './.yarn/cache/is-number-npm-7.0.0-060086935c-eec6e506c6.zip/node_modules/is-number/', + packageDependencies: [['is-number', 'npm:7.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-obj', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/is-obj-npm-1.0.1-7d391539d7-0913a3bb64.zip/node_modules/is-obj/', + packageDependencies: [['is-obj', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/is-obj-npm-2.0.0-3d95e053f4-ffa67ed5df.zip/node_modules/is-obj/', + packageDependencies: [['is-obj', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-object', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/is-object-npm-1.0.1-a3c5154f6f-deb32fdb99.zip/node_modules/is-object/', + packageDependencies: [['is-object', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-observable', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-observable-npm-1.1.0-fd19f68a6c-6c40892788.zip/node_modules/is-observable/', + packageDependencies: [ + ['is-observable', 'npm:1.1.0'], + ['symbol-observable', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-path-inside', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/is-path-inside-npm-1.0.1-cd0d417091-7ccbc0bedf.zip/node_modules/is-path-inside/', + packageDependencies: [ + ['is-path-inside', 'npm:1.0.1'], + ['path-is-inside', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/is-path-inside-npm-3.0.2-e675e113cb-709ba85a71.zip/node_modules/is-path-inside/', + packageDependencies: [['is-path-inside', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-plain-obj', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-plain-obj-npm-1.1.0-1046f64c0b-d2eb5a32ea.zip/node_modules/is-plain-obj/', + packageDependencies: [['is-plain-obj', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/is-plain-obj-npm-2.1.0-8dffd7ae9c-2314302f91.zip/node_modules/is-plain-obj/', + packageDependencies: [['is-plain-obj', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-plain-object', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/is-plain-object-npm-2.0.4-da3265d804-2f32322673.zip/node_modules/is-plain-object/', + packageDependencies: [ + ['is-plain-object', 'npm:2.0.4'], + ['isobject', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-92bd87f095.zip/node_modules/is-plain-object/', + packageDependencies: [['is-plain-object', 'npm:5.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-potential-custom-element-name', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-potential-custom-element-name-npm-1.0.0-0000641861-55b1ae44cf.zip/node_modules/is-potential-custom-element-name/', + packageDependencies: [ + ['is-potential-custom-element-name', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-promise', + [ + [ + 'npm:2.2.2', + { + packageLocation: + './.yarn/cache/is-promise-npm-2.2.2-afbf94db67-6fe84293b8.zip/node_modules/is-promise/', + packageDependencies: [['is-promise', 'npm:2.2.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/is-promise-npm-4.0.0-1e3c05420c-7085bdc4ea.zip/node_modules/is-promise/', + packageDependencies: [['is-promise', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-redirect', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-redirect-npm-1.0.0-0ff2c21753-24c2aef7db.zip/node_modules/is-redirect/', + packageDependencies: [['is-redirect', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-regex', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-regex-npm-1.1.0-3c0bd70230-8fe7ae8c06.zip/node_modules/is-regex/', + packageDependencies: [ + ['is-regex', 'npm:1.1.0'], + ['has-symbols', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-regexp', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-regexp-npm-1.0.0-8f95f51a0c-b6c3ea4f40.zip/node_modules/is-regexp/', + packageDependencies: [['is-regexp', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-relative', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-relative-npm-1.0.0-af71733ca6-a93a7b57d8.zip/node_modules/is-relative/', + packageDependencies: [ + ['is-relative', 'npm:1.0.0'], + ['is-unc-path', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-resolvable', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-resolvable-npm-1.1.0-c03fa806bf-ef1a289c54.zip/node_modules/is-resolvable/', + packageDependencies: [['is-resolvable', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-retry-allowed', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/is-retry-allowed-npm-1.2.0-730be11f6c-739384d266.zip/node_modules/is-retry-allowed/', + packageDependencies: [['is-retry-allowed', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-root', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-root-npm-1.0.0-f0e75e9688-ec099a88eb.zip/node_modules/is-root/', + packageDependencies: [['is-root', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-scoped', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-scoped-npm-1.0.0-f485e8ba50-05329dc061.zip/node_modules/is-scoped/', + packageDependencies: [ + ['is-scoped', 'npm:1.0.0'], + ['scoped-regex', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-stream', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-stream-npm-1.1.0-818ecbf6bb-39843ee9ff.zip/node_modules/is-stream/', + packageDependencies: [['is-stream', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/is-stream-npm-2.0.0-1401f82ad7-f92ba04a8b.zip/node_modules/is-stream/', + packageDependencies: [['is-stream', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-supported-regexp-flag', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/is-supported-regexp-flag-npm-1.0.1-28b6c95ae1-da366eb98e.zip/node_modules/is-supported-regexp-flag/', + packageDependencies: [ + ['is-supported-regexp-flag', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-svg', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/is-svg-npm-3.0.0-405580f5e7-7dd3f5f18d.zip/node_modules/is-svg/', + packageDependencies: [ + ['is-svg', 'npm:3.0.0'], + ['html-comment-regex', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-symbol', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/is-symbol-npm-1.0.3-6bebca15dc-753aa0cf95.zip/node_modules/is-symbol/', + packageDependencies: [ + ['is-symbol', 'npm:1.0.3'], + ['has-symbols', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-typedarray', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-typedarray-npm-1.0.0-bbd99de5b6-4e21156e73.zip/node_modules/is-typedarray/', + packageDependencies: [['is-typedarray', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-unc-path', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/is-unc-path-npm-1.0.0-9cee24d85f-ee43c89aa0.zip/node_modules/is-unc-path/', + packageDependencies: [ + ['is-unc-path', 'npm:1.0.0'], + ['unc-path-regex', 'npm:0.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-utf8', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/is-utf8-npm-0.2.1-46ab364e2f-c72f604d72.zip/node_modules/is-utf8/', + packageDependencies: [['is-utf8', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-whitespace-character', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/is-whitespace-character-npm-1.0.4-02d39af907-fd6dbced04.zip/node_modules/is-whitespace-character/', + packageDependencies: [['is-whitespace-character', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-windows', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-dd1ed8339a.zip/node_modules/is-windows/', + packageDependencies: [['is-windows', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-word-character', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/is-word-character-npm-1.0.4-eeb59c97bc-84da3b0a2c.zip/node_modules/is-word-character/', + packageDependencies: [['is-word-character', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-wsl', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/is-wsl-npm-1.1.0-136e2b7c74-0f15cf5d5f.zip/node_modules/is-wsl/', + packageDependencies: [['is-wsl', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/is-wsl-npm-2.2.0-2ba10d6393-3dcc4073d4.zip/node_modules/is-wsl/', + packageDependencies: [ + ['is-wsl', 'npm:2.2.0'], + ['is-docker', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'is-yarn-global', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/is-yarn-global-npm-0.3.0-18cad00879-5a66f706f2.zip/node_modules/is-yarn-global/', + packageDependencies: [['is-yarn-global', 'npm:0.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isarray', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/isarray-npm-1.0.0-db4f547720-b0ff31a290.zip/node_modules/isarray/', + packageDependencies: [['isarray', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isbinaryfile', + [ + [ + 'npm:4.0.6', + { + packageLocation: + './.yarn/cache/isbinaryfile-npm-4.0.6-0ca92621fe-23d94f36fb.zip/node_modules/isbinaryfile/', + packageDependencies: [['isbinaryfile', 'npm:4.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isexe', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/isexe-npm-2.0.0-b58870bd2e-7b437980bb.zip/node_modules/isexe/', + packageDependencies: [['isexe', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isobject', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/isobject-npm-2.1.0-2798cf0d94-2e7d7dd8d5.zip/node_modules/isobject/', + packageDependencies: [ + ['isobject', 'npm:2.1.0'], + ['isarray', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/isobject-npm-3.0.1-8145901fd2-b537a9ccdd.zip/node_modules/isobject/', + packageDependencies: [['isobject', 'npm:3.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isomorphic-fetch', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/isomorphic-fetch-npm-2.2.1-46b4db5d7b-a4174e332a.zip/node_modules/isomorphic-fetch/', + packageDependencies: [ + ['isomorphic-fetch', 'npm:2.2.1'], + ['node-fetch', 'npm:1.7.3'], + ['whatwg-fetch', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isomorphic-unfetch', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/isomorphic-unfetch-npm-3.0.0-78ab1ced12-c095a48045.zip/node_modules/isomorphic-unfetch/', + packageDependencies: [ + ['isomorphic-unfetch', 'npm:3.0.0'], + ['node-fetch', 'npm:2.6.0'], + ['unfetch', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isstream', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/isstream-npm-0.1.2-8581c75385-8e6e5c4cf1.zip/node_modules/isstream/', + packageDependencies: [['isstream', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'istanbul-lib-coverage', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/istanbul-lib-coverage-npm-3.0.0-654bb0146d-c8effc09ae.zip/node_modules/istanbul-lib-coverage/', + packageDependencies: [['istanbul-lib-coverage', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'istanbul-lib-instrument', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/istanbul-lib-instrument-npm-4.0.3-4d4c2263f8-478e43e75d.zip/node_modules/istanbul-lib-instrument/', + packageDependencies: [ + ['istanbul-lib-instrument', 'npm:4.0.3'], + ['@babel/core', 'npm:7.10.5'], + ['@istanbuljs/schema', 'npm:0.1.2'], + ['istanbul-lib-coverage', 'npm:3.0.0'], + ['semver', 'npm:6.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'istanbul-lib-report', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/istanbul-lib-report-npm-3.0.0-660f97340a-aada59dfce.zip/node_modules/istanbul-lib-report/', + packageDependencies: [ + ['istanbul-lib-report', 'npm:3.0.0'], + ['istanbul-lib-coverage', 'npm:3.0.0'], + ['make-dir', 'npm:3.1.0'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'istanbul-lib-source-maps', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/istanbul-lib-source-maps-npm-4.0.0-def3895674-018b5feeb4.zip/node_modules/istanbul-lib-source-maps/', + packageDependencies: [ + ['istanbul-lib-source-maps', 'npm:4.0.0'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['istanbul-lib-coverage', 'npm:3.0.0'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'istanbul-reports', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/istanbul-reports-npm-3.0.2-6ccd67e17e-d4ed416e13.zip/node_modules/istanbul-reports/', + packageDependencies: [ + ['istanbul-reports', 'npm:3.0.2'], + ['html-escaper', 'npm:2.0.2'], + ['istanbul-lib-report', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'istextorbinary', + [ + [ + 'npm:2.6.0', + { + packageLocation: + './.yarn/cache/istextorbinary-npm-2.6.0-0d1776e9aa-4ba5e89d7e.zip/node_modules/istextorbinary/', + packageDependencies: [ + ['istextorbinary', 'npm:2.6.0'], + ['binaryextensions', 'npm:2.3.0'], + ['editions', 'npm:2.3.1'], + ['textextensions', 'npm:2.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'isurl', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/isurl-npm-1.0.0-51543986df-2c63877b4e.zip/node_modules/isurl/', + packageDependencies: [ + ['isurl', 'npm:1.0.0'], + ['has-to-string-tag-x', 'npm:1.4.1'], + ['is-object', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'iterall', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/iterall-npm-1.3.0-a2cb04809f-25ae2d07cf.zip/node_modules/iterall/', + packageDependencies: [['iterall', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jake', + [ + [ + 'npm:10.8.2', + { + packageLocation: + './.yarn/cache/jake-npm-10.8.2-e211473cb9-c60d3f491c.zip/node_modules/jake/', + packageDependencies: [ + ['jake', 'npm:10.8.2'], + ['async', 'npm:0.9.2'], + ['chalk', 'npm:2.4.2'], + ['filelist', 'npm:1.0.1'], + ['minimatch', 'npm:3.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-npm-26.1.0-bd255a3889-95638b5947.zip/node_modules/jest/', + packageDependencies: [ + ['jest', 'npm:26.1.0'], + ['@jest/core', 'npm:26.1.0'], + ['import-local', 'npm:3.0.2'], + ['jest-cli', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-npm-26.6.3-dafe93d52f-4ffcfefa2b.zip/node_modules/jest/', + packageDependencies: [ + ['jest', 'npm:26.6.3'], + ['@jest/core', 'npm:26.6.3'], + ['import-local', 'npm:3.0.2'], + ['jest-cli', 'npm:26.6.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-changed-files', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-changed-files-npm-26.1.0-625cf9820c-6dbf530993.zip/node_modules/jest-changed-files/', + packageDependencies: [ + ['jest-changed-files', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['execa', 'npm:4.0.3'], + ['throat', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-changed-files-npm-26.6.2-f511617ef2-b15a1c524b.zip/node_modules/jest-changed-files/', + packageDependencies: [ + ['jest-changed-files', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['execa', 'npm:4.0.3'], + ['throat', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-cli', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-cli-npm-26.1.0-91142dcbda-c520c0040d.zip/node_modules/jest-cli/', + packageDependencies: [ + ['jest-cli', 'npm:26.1.0'], + ['@jest/core', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['exit', 'npm:0.1.2'], + ['graceful-fs', 'npm:4.2.4'], + ['import-local', 'npm:3.0.2'], + ['is-ci', 'npm:2.0.0'], + ['jest-config', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-validate', 'npm:26.1.0'], + ['prompts', 'npm:2.3.2'], + ['yargs', 'npm:15.4.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-cli-npm-26.6.3-983e1fcf7f-2d32e7e4b2.zip/node_modules/jest-cli/', + packageDependencies: [ + ['jest-cli', 'npm:26.6.3'], + ['@jest/core', 'npm:26.6.3'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['chalk', 'npm:4.1.0'], + ['exit', 'npm:0.1.2'], + ['graceful-fs', 'npm:4.2.4'], + ['import-local', 'npm:3.0.2'], + ['is-ci', 'npm:2.0.0'], + [ + 'jest-config', + 'virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3', + ], + ['jest-util', 'npm:26.6.2'], + ['jest-validate', 'npm:26.6.2'], + ['prompts', 'npm:2.3.2'], + ['yargs', 'npm:15.4.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-config', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-config-npm-26.1.0-9abf384bc4-4859acb358.zip/node_modules/jest-config/', + packageDependencies: [ + ['jest-config', 'npm:26.1.0'], + ['@babel/core', 'npm:7.10.5'], + ['@jest/test-sequencer', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + [ + 'babel-jest', + 'virtual:9abf384bc41cada52db19b9b690df683e74e43291fe7be017740370df8c21131394ddb5930427e3bd01a491f851022382666efb31eac63220e76176492722e2c#npm:26.1.0', + ], + ['chalk', 'npm:4.1.0'], + ['deepmerge', 'npm:4.2.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-environment-jsdom', 'npm:26.1.0'], + ['jest-environment-node', 'npm:26.1.0'], + ['jest-get-type', 'npm:26.0.0'], + ['jest-jasmine2', 'npm:26.1.0'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-resolve', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-validate', 'npm:26.1.0'], + ['micromatch', 'npm:4.0.2'], + ['pretty-format', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-config-npm-26.6.3-ac5d27f4ad-974e7690ba.zip/node_modules/jest-config/', + packageDependencies: [['jest-config', 'npm:26.6.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3', + { + packageLocation: + './.yarn/$$virtual/jest-config-virtual-caddf51df4/0/cache/jest-config-npm-26.6.3-ac5d27f4ad-974e7690ba.zip/node_modules/jest-config/', + packageDependencies: [ + [ + 'jest-config', + 'virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3', + ], + ['@babel/core', 'npm:7.10.5'], + ['@jest/test-sequencer', 'npm:26.6.3'], + ['@jest/types', 'npm:26.6.2'], + ['@types/ts-node', null], + [ + 'babel-jest', + 'virtual:caddf51df4928b33a437ca87b8f5ddfb6205ebd6d8231f74d4ee7223f3866e6f815b221aa1e2bd33e98915f701e95bae72a93d2288b49a34a6246bdbc2a4a132#npm:26.6.3', + ], + ['chalk', 'npm:4.1.0'], + ['deepmerge', 'npm:4.2.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-environment-jsdom', 'npm:26.6.2'], + ['jest-environment-node', 'npm:26.6.2'], + ['jest-get-type', 'npm:26.3.0'], + ['jest-jasmine2', 'npm:26.6.3'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-resolve', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['jest-validate', 'npm:26.6.2'], + ['micromatch', 'npm:4.0.2'], + ['pretty-format', 'npm:26.6.2'], + ['ts-node', null], + ], + packagePeers: ['@types/ts-node', 'ts-node'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-diff', + [ + [ + 'npm:25.5.0', + { + packageLocation: + './.yarn/cache/jest-diff-npm-25.5.0-dfbc320001-14a2634ecb.zip/node_modules/jest-diff/', + packageDependencies: [ + ['jest-diff', 'npm:25.5.0'], + ['chalk', 'npm:3.0.0'], + ['diff-sequences', 'npm:25.2.6'], + ['jest-get-type', 'npm:25.2.6'], + ['pretty-format', 'npm:25.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-diff-npm-26.1.0-702cb0bc74-2acfa0cde6.zip/node_modules/jest-diff/', + packageDependencies: [ + ['jest-diff', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['diff-sequences', 'npm:26.0.0'], + ['jest-get-type', 'npm:26.0.0'], + ['pretty-format', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.4.2', + { + packageLocation: + './.yarn/cache/jest-diff-npm-26.4.2-f97bd236d8-c7ece95bb1.zip/node_modules/jest-diff/', + packageDependencies: [ + ['jest-diff', 'npm:26.4.2'], + ['chalk', 'npm:4.1.0'], + ['diff-sequences', 'npm:26.3.0'], + ['jest-get-type', 'npm:26.3.0'], + ['pretty-format', 'npm:26.4.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-diff-npm-26.6.2-06ca2a96ca-05d0f1bdba.zip/node_modules/jest-diff/', + packageDependencies: [ + ['jest-diff', 'npm:26.6.2'], + ['chalk', 'npm:4.1.0'], + ['diff-sequences', 'npm:26.6.2'], + ['jest-get-type', 'npm:26.3.0'], + ['pretty-format', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-docblock', + [ + [ + 'npm:26.0.0', + { + packageLocation: + './.yarn/cache/jest-docblock-npm-26.0.0-7d0129b0be-54b8ea1c84.zip/node_modules/jest-docblock/', + packageDependencies: [ + ['jest-docblock', 'npm:26.0.0'], + ['detect-newline', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-each', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-each-npm-26.1.0-ed7b36b5b8-0f5999b22f.zip/node_modules/jest-each/', + packageDependencies: [ + ['jest-each', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['jest-get-type', 'npm:26.0.0'], + ['jest-util', 'npm:26.1.0'], + ['pretty-format', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-each-npm-26.6.2-651078df67-628eaeca64.zip/node_modules/jest-each/', + packageDependencies: [ + ['jest-each', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['chalk', 'npm:4.1.0'], + ['jest-get-type', 'npm:26.3.0'], + ['jest-util', 'npm:26.6.2'], + ['pretty-format', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-environment-jsdom', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-environment-jsdom-npm-26.1.0-46ef47a8bd-3bafe59eaf.zip/node_modules/jest-environment-jsdom/', + packageDependencies: [ + ['jest-environment-jsdom', 'npm:26.1.0'], + ['@jest/environment', 'npm:26.1.0'], + ['@jest/fake-timers', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['jest-mock', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + [ + 'jsdom', + 'virtual:46ef47a8bdd09c3f26c8c86875a3c0d0f1b857abb009bcf3f2db8a3ce62c19b7af3703fcafb363412f98fde63a3cfe630016ad0835e10a4067edade81449f6f1#npm:16.3.0', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-environment-jsdom-npm-26.6.2-defa486869-70af4860b7.zip/node_modules/jest-environment-jsdom/', + packageDependencies: [ + ['jest-environment-jsdom', 'npm:26.6.2'], + ['@jest/environment', 'npm:26.6.2'], + ['@jest/fake-timers', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['jest-mock', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + [ + 'jsdom', + 'virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-environment-node', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-environment-node-npm-26.1.0-6b8fa4a815-f2a2227c36.zip/node_modules/jest-environment-node/', + packageDependencies: [ + ['jest-environment-node', 'npm:26.1.0'], + ['@jest/environment', 'npm:26.1.0'], + ['@jest/fake-timers', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['jest-mock', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-environment-node-npm-26.6.2-9030128a2f-68ea035d62.zip/node_modules/jest-environment-node/', + packageDependencies: [ + ['jest-environment-node', 'npm:26.6.2'], + ['@jest/environment', 'npm:26.6.2'], + ['@jest/fake-timers', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['jest-mock', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-get-type', + [ + [ + 'npm:25.2.6', + { + packageLocation: + './.yarn/cache/jest-get-type-npm-25.2.6-7abd790493-6051fcb75c.zip/node_modules/jest-get-type/', + packageDependencies: [['jest-get-type', 'npm:25.2.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:26.0.0', + { + packageLocation: + './.yarn/cache/jest-get-type-npm-26.0.0-32f433dd67-df81e05d3e.zip/node_modules/jest-get-type/', + packageDependencies: [['jest-get-type', 'npm:26.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:26.3.0', + { + packageLocation: + './.yarn/cache/jest-get-type-npm-26.3.0-a481f14d96-fc3e2d2b90.zip/node_modules/jest-get-type/', + packageDependencies: [['jest-get-type', 'npm:26.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-haste-map', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-haste-map-npm-26.1.0-f7602760cd-bbdc8e203d.zip/node_modules/jest-haste-map/', + packageDependencies: [ + ['jest-haste-map', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['@types/graceful-fs', 'npm:4.1.3'], + ['anymatch', 'npm:3.1.1'], + ['fb-watchman', 'npm:2.0.1'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ['graceful-fs', 'npm:4.2.4'], + ['jest-serializer', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-worker', 'npm:26.1.0'], + ['micromatch', 'npm:4.0.2'], + ['sane', 'npm:4.1.0'], + ['walker', 'npm:1.0.7'], + ['which', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-haste-map-npm-26.6.2-16ea967617-5c9e3a1e3f.zip/node_modules/jest-haste-map/', + packageDependencies: [ + ['jest-haste-map', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/graceful-fs', 'npm:4.1.3'], + ['@types/node', 'npm:14.0.27'], + ['anymatch', 'npm:3.1.1'], + ['fb-watchman', 'npm:2.0.1'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ['graceful-fs', 'npm:4.2.4'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-serializer', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['jest-worker', 'npm:26.6.2'], + ['micromatch', 'npm:4.0.2'], + ['sane', 'npm:4.1.0'], + ['walker', 'npm:1.0.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-jasmine2', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-jasmine2-npm-26.1.0-94172b05a9-b574b0d475.zip/node_modules/jest-jasmine2/', + packageDependencies: [ + ['jest-jasmine2', 'npm:26.1.0'], + ['@babel/traverse', 'npm:7.10.5'], + ['@jest/environment', 'npm:26.1.0'], + ['@jest/source-map', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['co', 'npm:4.6.0'], + ['expect', 'npm:26.1.0'], + ['is-generator-fn', 'npm:2.1.0'], + ['jest-each', 'npm:26.1.0'], + ['jest-matcher-utils', 'npm:26.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-runtime', 'npm:26.1.0'], + ['jest-snapshot', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['pretty-format', 'npm:26.1.0'], + ['throat', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-jasmine2-npm-26.6.3-aba0c11c28-18b15901f8.zip/node_modules/jest-jasmine2/', + packageDependencies: [ + ['jest-jasmine2', 'npm:26.6.3'], + ['@babel/traverse', 'npm:7.10.5'], + ['@jest/environment', 'npm:26.6.2'], + ['@jest/source-map', 'npm:26.6.2'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['chalk', 'npm:4.1.0'], + ['co', 'npm:4.6.0'], + ['expect', 'npm:26.6.2'], + ['is-generator-fn', 'npm:2.1.0'], + ['jest-each', 'npm:26.6.2'], + ['jest-matcher-utils', 'npm:26.6.2'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-runtime', 'npm:26.6.3'], + ['jest-snapshot', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['pretty-format', 'npm:26.6.2'], + ['throat', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-leak-detector', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-leak-detector-npm-26.1.0-608dbb4a0c-32113e73a5.zip/node_modules/jest-leak-detector/', + packageDependencies: [ + ['jest-leak-detector', 'npm:26.1.0'], + ['jest-get-type', 'npm:26.0.0'], + ['pretty-format', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-leak-detector-npm-26.6.2-3b253a4eef-08c1bbb628.zip/node_modules/jest-leak-detector/', + packageDependencies: [ + ['jest-leak-detector', 'npm:26.6.2'], + ['jest-get-type', 'npm:26.3.0'], + ['pretty-format', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-matcher-utils', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-matcher-utils-npm-26.1.0-7c81a6267e-911a73507f.zip/node_modules/jest-matcher-utils/', + packageDependencies: [ + ['jest-matcher-utils', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['jest-diff', 'npm:26.1.0'], + ['jest-get-type', 'npm:26.0.0'], + ['pretty-format', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.4.2', + { + packageLocation: + './.yarn/cache/jest-matcher-utils-npm-26.4.2-fe0258e7bc-e368b46a02.zip/node_modules/jest-matcher-utils/', + packageDependencies: [ + ['jest-matcher-utils', 'npm:26.4.2'], + ['chalk', 'npm:4.1.0'], + ['jest-diff', 'npm:26.4.2'], + ['jest-get-type', 'npm:26.3.0'], + ['pretty-format', 'npm:26.4.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-matcher-utils-npm-26.6.2-90bcfd468b-c6db72f19e.zip/node_modules/jest-matcher-utils/', + packageDependencies: [ + ['jest-matcher-utils', 'npm:26.6.2'], + ['chalk', 'npm:4.1.0'], + ['jest-diff', 'npm:26.6.2'], + ['jest-get-type', 'npm:26.3.0'], + ['pretty-format', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-message-util', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-message-util-npm-26.1.0-3d58200c40-59557a26a3.zip/node_modules/jest-message-util/', + packageDependencies: [ + ['jest-message-util', 'npm:26.1.0'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@jest/types', 'npm:26.1.0'], + ['@types/stack-utils', 'npm:1.0.1'], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['micromatch', 'npm:4.0.2'], + ['slash', 'npm:3.0.0'], + ['stack-utils', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-message-util-npm-26.6.2-2dd6f71234-7a47773259.zip/node_modules/jest-message-util/', + packageDependencies: [ + ['jest-message-util', 'npm:26.6.2'], + ['@babel/code-frame', 'npm:7.10.4'], + ['@jest/types', 'npm:26.6.2'], + ['@types/stack-utils', 'npm:2.0.0'], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['micromatch', 'npm:4.0.2'], + ['pretty-format', 'npm:26.6.2'], + ['slash', 'npm:3.0.0'], + ['stack-utils', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-mock', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-mock-npm-26.1.0-591dd7c852-cc1627cb72.zip/node_modules/jest-mock/', + packageDependencies: [ + ['jest-mock', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-mock-npm-26.6.2-87f47530a8-98e658beca.zip/node_modules/jest-mock/', + packageDependencies: [ + ['jest-mock', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-pnp-resolver', + [ + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-d91c86e389.zip/node_modules/jest-pnp-resolver/', + packageDependencies: [['jest-pnp-resolver', 'npm:1.2.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:41f6264ab5e6fa768b72f816f151389d041001a75a7fdca7daba08e9f52089bf3976db47d789a49d597094cd6a6527f12b627ce8be453728ee1420526f653d8b#npm:1.2.2', + { + packageLocation: + './.yarn/$$virtual/jest-pnp-resolver-virtual-fae24cabfa/0/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-d91c86e389.zip/node_modules/jest-pnp-resolver/', + packageDependencies: [ + [ + 'jest-pnp-resolver', + 'virtual:41f6264ab5e6fa768b72f816f151389d041001a75a7fdca7daba08e9f52089bf3976db47d789a49d597094cd6a6527f12b627ce8be453728ee1420526f653d8b#npm:1.2.2', + ], + ['@types/jest-resolve', null], + ['jest-resolve', 'npm:26.1.0'], + ], + packagePeers: ['@types/jest-resolve', 'jest-resolve'], + linkType: 'HARD', + }, + ], + [ + 'virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2', + { + packageLocation: + './.yarn/$$virtual/jest-pnp-resolver-virtual-c95d0051b1/0/cache/jest-pnp-resolver-npm-1.2.2-da20f8bdfe-d91c86e389.zip/node_modules/jest-pnp-resolver/', + packageDependencies: [ + [ + 'jest-pnp-resolver', + 'virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2', + ], + ['@types/jest-resolve', null], + ['jest-resolve', 'npm:26.6.2'], + ], + packagePeers: ['@types/jest-resolve', 'jest-resolve'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-regex-util', + [ + [ + 'npm:26.0.0', + { + packageLocation: + './.yarn/cache/jest-regex-util-npm-26.0.0-310f72dd82-a3d08a852a.zip/node_modules/jest-regex-util/', + packageDependencies: [['jest-regex-util', 'npm:26.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-resolve', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-resolve-npm-26.1.0-41f6264ab5-1710ca5b7d.zip/node_modules/jest-resolve/', + packageDependencies: [ + ['jest-resolve', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + [ + 'jest-pnp-resolver', + 'virtual:41f6264ab5e6fa768b72f816f151389d041001a75a7fdca7daba08e9f52089bf3976db47d789a49d597094cd6a6527f12b627ce8be453728ee1420526f653d8b#npm:1.2.2', + ], + ['jest-util', 'npm:26.1.0'], + ['read-pkg-up', 'npm:7.0.1'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-resolve-npm-26.6.2-6ad3c87f85-61e8884462.zip/node_modules/jest-resolve/', + packageDependencies: [ + ['jest-resolve', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + [ + 'jest-pnp-resolver', + 'virtual:6ad3c87f852a744f0ca052ddcf60cfb1d20f148e44c4d3bc933aed1297626798d738b65c746a40d5eb58079971d680449b7c0894918212fabb0b9f5575e9f921#npm:1.2.2', + ], + ['jest-util', 'npm:26.6.2'], + ['read-pkg-up', 'npm:7.0.1'], + [ + 'resolve', + 'patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa', + ], + ['slash', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-resolve-dependencies', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-resolve-dependencies-npm-26.1.0-b1e62aad59-2323ec088b.zip/node_modules/jest-resolve-dependencies/', + packageDependencies: [ + ['jest-resolve-dependencies', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-snapshot', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-resolve-dependencies-npm-26.6.3-e36bbb2abc-72e7a200c4.zip/node_modules/jest-resolve-dependencies/', + packageDependencies: [ + ['jest-resolve-dependencies', 'npm:26.6.3'], + ['@jest/types', 'npm:26.6.2'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-snapshot', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-runner', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-runner-npm-26.1.0-9593dda0a4-36e34c68ed.zip/node_modules/jest-runner/', + packageDependencies: [ + ['jest-runner', 'npm:26.1.0'], + ['@jest/console', 'npm:26.1.0'], + ['@jest/environment', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['exit', 'npm:0.1.2'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-config', 'npm:26.1.0'], + ['jest-docblock', 'npm:26.0.0'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-jasmine2', 'npm:26.1.0'], + ['jest-leak-detector', 'npm:26.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-resolve', 'npm:26.1.0'], + ['jest-runtime', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-worker', 'npm:26.1.0'], + ['source-map-support', 'npm:0.5.19'], + ['throat', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-runner-npm-26.6.3-4a4a361df8-7cac133ccf.zip/node_modules/jest-runner/', + packageDependencies: [ + ['jest-runner', 'npm:26.6.3'], + ['@jest/console', 'npm:26.6.2'], + ['@jest/environment', 'npm:26.6.2'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['chalk', 'npm:4.1.0'], + ['emittery', 'npm:0.7.2'], + ['exit', 'npm:0.1.2'], + ['graceful-fs', 'npm:4.2.4'], + [ + 'jest-config', + 'virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3', + ], + ['jest-docblock', 'npm:26.0.0'], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-leak-detector', 'npm:26.6.2'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-resolve', 'npm:26.6.2'], + ['jest-runtime', 'npm:26.6.3'], + ['jest-util', 'npm:26.6.2'], + ['jest-worker', 'npm:26.6.2'], + ['source-map-support', 'npm:0.5.19'], + ['throat', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-runtime', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-runtime-npm-26.1.0-9823960324-0b87c1bb5b.zip/node_modules/jest-runtime/', + packageDependencies: [ + ['jest-runtime', 'npm:26.1.0'], + ['@jest/console', 'npm:26.1.0'], + ['@jest/environment', 'npm:26.1.0'], + ['@jest/fake-timers', 'npm:26.1.0'], + ['@jest/globals', 'npm:26.1.0'], + ['@jest/source-map', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/transform', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['@types/yargs', 'npm:15.0.5'], + ['chalk', 'npm:4.1.0'], + ['collect-v8-coverage', 'npm:1.0.1'], + ['exit', 'npm:0.1.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-config', 'npm:26.1.0'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-mock', 'npm:26.1.0'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-resolve', 'npm:26.1.0'], + ['jest-snapshot', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['jest-validate', 'npm:26.1.0'], + ['slash', 'npm:3.0.0'], + ['strip-bom', 'npm:4.0.0'], + ['yargs', 'npm:15.4.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.3', + { + packageLocation: + './.yarn/cache/jest-runtime-npm-26.6.3-bf7a869586-5ef4ceaefb.zip/node_modules/jest-runtime/', + packageDependencies: [ + ['jest-runtime', 'npm:26.6.3'], + ['@jest/console', 'npm:26.6.2'], + ['@jest/environment', 'npm:26.6.2'], + ['@jest/fake-timers', 'npm:26.6.2'], + ['@jest/globals', 'npm:26.6.2'], + ['@jest/source-map', 'npm:26.6.2'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/transform', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/yargs', 'npm:15.0.5'], + ['chalk', 'npm:4.1.0'], + ['cjs-module-lexer', 'npm:0.6.0'], + ['collect-v8-coverage', 'npm:1.0.1'], + ['exit', 'npm:0.1.2'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + [ + 'jest-config', + 'virtual:bf7a8695861ccc96c7503a95daba2b038c9b3eca0fc65dc5ea7e5ae0e56354c6c3e3ee05f1c8d4420e3a01abf48ad9e2dea477db48ad56147605b32adf33b489#npm:26.6.3', + ], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-mock', 'npm:26.6.2'], + ['jest-regex-util', 'npm:26.0.0'], + ['jest-resolve', 'npm:26.6.2'], + ['jest-snapshot', 'npm:26.6.2'], + ['jest-util', 'npm:26.6.2'], + ['jest-validate', 'npm:26.6.2'], + ['slash', 'npm:3.0.0'], + ['strip-bom', 'npm:4.0.0'], + ['yargs', 'npm:15.4.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-serializer', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-serializer-npm-26.1.0-e2e28723e9-140f613d45.zip/node_modules/jest-serializer/', + packageDependencies: [ + ['jest-serializer', 'npm:26.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-serializer-npm-26.6.2-0907990487-62802ac809.zip/node_modules/jest-serializer/', + packageDependencies: [ + ['jest-serializer', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['graceful-fs', 'npm:4.2.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-snapshot', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-snapshot-npm-26.1.0-4ac73b23ef-627d67488e.zip/node_modules/jest-snapshot/', + packageDependencies: [ + ['jest-snapshot', 'npm:26.1.0'], + ['@babel/types', 'npm:7.10.5'], + ['@jest/types', 'npm:26.1.0'], + ['@types/prettier', 'npm:2.0.2'], + ['chalk', 'npm:4.1.0'], + ['expect', 'npm:26.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-diff', 'npm:26.1.0'], + ['jest-get-type', 'npm:26.0.0'], + ['jest-haste-map', 'npm:26.1.0'], + ['jest-matcher-utils', 'npm:26.1.0'], + ['jest-message-util', 'npm:26.1.0'], + ['jest-resolve', 'npm:26.1.0'], + ['natural-compare', 'npm:1.4.0'], + ['pretty-format', 'npm:26.1.0'], + ['semver', 'npm:7.3.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-snapshot-npm-26.6.2-b91f41a0f2-9cf50bd7b7.zip/node_modules/jest-snapshot/', + packageDependencies: [ + ['jest-snapshot', 'npm:26.6.2'], + ['@babel/types', 'npm:7.10.5'], + ['@jest/types', 'npm:26.6.2'], + ['@types/babel__traverse', 'npm:7.11.0'], + ['@types/prettier', 'npm:2.0.2'], + ['chalk', 'npm:4.1.0'], + ['expect', 'npm:26.6.2'], + ['graceful-fs', 'npm:4.2.4'], + ['jest-diff', 'npm:26.6.2'], + ['jest-get-type', 'npm:26.3.0'], + ['jest-haste-map', 'npm:26.6.2'], + ['jest-matcher-utils', 'npm:26.6.2'], + ['jest-message-util', 'npm:26.6.2'], + ['jest-resolve', 'npm:26.6.2'], + ['natural-compare', 'npm:1.4.0'], + ['pretty-format', 'npm:26.6.2'], + ['semver', 'npm:7.3.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-util', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-util-npm-26.1.0-bba9a3cb6b-5420145596.zip/node_modules/jest-util/', + packageDependencies: [ + ['jest-util', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['is-ci', 'npm:2.0.0'], + ['micromatch', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-util-npm-26.6.2-28a10c2acf-1aef748c82.zip/node_modules/jest-util/', + packageDependencies: [ + ['jest-util', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['chalk', 'npm:4.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['is-ci', 'npm:2.0.0'], + ['micromatch', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-validate', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-validate-npm-26.1.0-e91b21e0b8-09ab0be90d.zip/node_modules/jest-validate/', + packageDependencies: [ + ['jest-validate', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['camelcase', 'npm:6.0.0'], + ['chalk', 'npm:4.1.0'], + ['jest-get-type', 'npm:26.0.0'], + ['leven', 'npm:3.1.0'], + ['pretty-format', 'npm:26.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-validate-npm-26.6.2-26ab48a006-b19fd33b86.zip/node_modules/jest-validate/', + packageDependencies: [ + ['jest-validate', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['camelcase', 'npm:6.0.0'], + ['chalk', 'npm:4.1.0'], + ['jest-get-type', 'npm:26.3.0'], + ['leven', 'npm:3.1.0'], + ['pretty-format', 'npm:26.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-watcher', + [ + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-watcher-npm-26.1.0-6d14033086-1c0c9d8ab3.zip/node_modules/jest-watcher/', + packageDependencies: [ + ['jest-watcher', 'npm:26.1.0'], + ['@jest/test-result', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['ansi-escapes', 'npm:4.3.1'], + ['chalk', 'npm:4.1.0'], + ['jest-util', 'npm:26.1.0'], + ['string-length', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-watcher-npm-26.6.2-d4afa66ea5-d4a13c17c7.zip/node_modules/jest-watcher/', + packageDependencies: [ + ['jest-watcher', 'npm:26.6.2'], + ['@jest/test-result', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['ansi-escapes', 'npm:4.3.1'], + ['chalk', 'npm:4.1.0'], + ['jest-util', 'npm:26.6.2'], + ['string-length', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jest-worker', + [ + [ + 'npm:24.9.0', + { + packageLocation: + './.yarn/cache/jest-worker-npm-24.9.0-bcd452e3a8-9740355081.zip/node_modules/jest-worker/', + packageDependencies: [ + ['jest-worker', 'npm:24.9.0'], + ['merge-stream', 'npm:2.0.0'], + ['supports-color', 'npm:6.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/jest-worker-npm-26.1.0-3b0c4356ef-ef0145e09e.zip/node_modules/jest-worker/', + packageDependencies: [ + ['jest-worker', 'npm:26.1.0'], + ['merge-stream', 'npm:2.0.0'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/jest-worker-npm-26.6.2-46cbcd449f-5eb349833b.zip/node_modules/jest-worker/', + packageDependencies: [ + ['jest-worker', 'npm:26.6.2'], + ['@types/node', 'npm:14.0.27'], + ['merge-stream', 'npm:2.0.0'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'joycon', + [ + [ + 'npm:2.2.5', + { + packageLocation: + './.yarn/cache/joycon-npm-2.2.5-fff23ab519-7908f551e0.zip/node_modules/joycon/', + packageDependencies: [['joycon', 'npm:2.2.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'js-cookie', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/js-cookie-npm-2.2.1-e879cd2148-c110f78427.zip/node_modules/js-cookie/', + packageDependencies: [['js-cookie', 'npm:2.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'js-tokens', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/js-tokens-npm-3.0.2-fe6fb334bd-81e634d5a9.zip/node_modules/js-tokens/', + packageDependencies: [['js-tokens', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-1fc4e4667a.zip/node_modules/js-tokens/', + packageDependencies: [['js-tokens', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'js-yaml', + [ + [ + 'npm:3.14.0', + { + packageLocation: + './.yarn/cache/js-yaml-npm-3.14.0-7ecf74b3d2-2eb95464e5.zip/node_modules/js-yaml/', + packageDependencies: [ + ['js-yaml', 'npm:3.14.0'], + ['argparse', 'npm:1.0.10'], + ['esprima', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/js-yaml-npm-4.0.0-3ac8e950bb-ee9b16cdbb.zip/node_modules/js-yaml/', + packageDependencies: [ + ['js-yaml', 'npm:4.0.0'], + ['argparse', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsbn', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/jsbn-npm-0.1.1-0eb7132404-b530d48a64.zip/node_modules/jsbn/', + packageDependencies: [['jsbn', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsdom', + [ + [ + 'npm:16.3.0', + { + packageLocation: + './.yarn/cache/jsdom-npm-16.3.0-55bd8b11f1-8136e06866.zip/node_modules/jsdom/', + packageDependencies: [['jsdom', 'npm:16.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:16.5.0', + { + packageLocation: + './.yarn/cache/jsdom-npm-16.5.0-4759c6adec-651e1f01ea.zip/node_modules/jsdom/', + packageDependencies: [['jsdom', 'npm:16.5.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:46ef47a8bdd09c3f26c8c86875a3c0d0f1b857abb009bcf3f2db8a3ce62c19b7af3703fcafb363412f98fde63a3cfe630016ad0835e10a4067edade81449f6f1#npm:16.3.0', + { + packageLocation: + './.yarn/$$virtual/jsdom-virtual-011ff9495d/0/cache/jsdom-npm-16.3.0-55bd8b11f1-8136e06866.zip/node_modules/jsdom/', + packageDependencies: [ + [ + 'jsdom', + 'virtual:46ef47a8bdd09c3f26c8c86875a3c0d0f1b857abb009bcf3f2db8a3ce62c19b7af3703fcafb363412f98fde63a3cfe630016ad0835e10a4067edade81449f6f1#npm:16.3.0', + ], + ['@types/canvas', null], + ['abab', 'npm:2.0.3'], + ['acorn', 'npm:7.3.1'], + ['acorn-globals', 'npm:6.0.0'], + ['canvas', null], + ['cssom', 'npm:0.4.4'], + ['cssstyle', 'npm:2.3.0'], + ['data-urls', 'npm:2.0.0'], + ['decimal.js', 'npm:10.2.0'], + ['domexception', 'npm:2.0.1'], + ['escodegen', 'npm:1.14.3'], + ['html-encoding-sniffer', 'npm:2.0.1'], + ['is-potential-custom-element-name', 'npm:1.0.0'], + ['nwsapi', 'npm:2.2.0'], + ['parse5', 'npm:5.1.1'], + ['request', 'npm:2.88.2'], + [ + 'request-promise-native', + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9', + ], + ['saxes', 'npm:5.0.1'], + ['symbol-tree', 'npm:3.2.4'], + ['tough-cookie', 'npm:3.0.1'], + ['w3c-hr-time', 'npm:1.0.2'], + ['w3c-xmlserializer', 'npm:2.0.0'], + ['webidl-conversions', 'npm:6.1.0'], + ['whatwg-encoding', 'npm:1.0.5'], + ['whatwg-mimetype', 'npm:2.3.0'], + ['whatwg-url', 'npm:8.1.0'], + [ + 'ws', + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1', + ], + ['xml-name-validator', 'npm:3.0.0'], + ], + packagePeers: ['@types/canvas', 'canvas'], + linkType: 'HARD', + }, + ], + [ + 'virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.0', + { + packageLocation: + './.yarn/$$virtual/jsdom-virtual-6a57145ae3/0/cache/jsdom-npm-16.5.0-4759c6adec-651e1f01ea.zip/node_modules/jsdom/', + packageDependencies: [ + [ + 'jsdom', + 'virtual:defa486869c88441047200a53b3aa18d79743b272095f3ee31b5b7b80b2c93d87f722added867470dcb94104504489a1a89040ea8fd89dffb9cfb1864d4bf54e#npm:16.5.0', + ], + ['@types/canvas', null], + ['abab', 'npm:2.0.5'], + ['acorn', 'npm:8.1.0'], + ['acorn-globals', 'npm:6.0.0'], + ['canvas', null], + ['cssom', 'npm:0.4.4'], + ['cssstyle', 'npm:2.3.0'], + ['data-urls', 'npm:2.0.0'], + ['decimal.js', 'npm:10.2.1'], + ['domexception', 'npm:2.0.1'], + ['escodegen', 'npm:2.0.0'], + ['html-encoding-sniffer', 'npm:2.0.1'], + ['is-potential-custom-element-name', 'npm:1.0.0'], + ['nwsapi', 'npm:2.2.0'], + ['parse5', 'npm:6.0.1'], + ['request', 'npm:2.88.2'], + [ + 'request-promise-native', + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9', + ], + ['saxes', 'npm:5.0.1'], + ['symbol-tree', 'npm:3.2.4'], + ['tough-cookie', 'npm:4.0.0'], + ['w3c-hr-time', 'npm:1.0.2'], + ['w3c-xmlserializer', 'npm:2.0.0'], + ['webidl-conversions', 'npm:6.1.0'], + ['whatwg-encoding', 'npm:1.0.5'], + ['whatwg-mimetype', 'npm:2.3.0'], + ['whatwg-url', 'npm:8.1.0'], + [ + 'ws', + 'virtual:6a57145ae363bb2f8a80076838317f779b911b58a6fdc784436689f4fc9a322b39f6f7e8a3aef742ffc5f8f7155890a4bb43ad7ac6c86073071726501001d707#npm:7.4.4', + ], + ['xml-name-validator', 'npm:3.0.0'], + ], + packagePeers: ['@types/canvas', 'canvas'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsesc', + [ + [ + 'npm:0.5.0', + { + packageLocation: + './.yarn/cache/jsesc-npm-0.5.0-6827074492-1e4574920d.zip/node_modules/jsesc/', + packageDependencies: [['jsesc', 'npm:0.5.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.5.2', + { + packageLocation: + './.yarn/cache/jsesc-npm-2.5.2-c5acb78804-ca91ec33d7.zip/node_modules/jsesc/', + packageDependencies: [['jsesc', 'npm:2.5.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-buffer', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/json-buffer-npm-3.0.0-21c267a314-09b53ecc8f.zip/node_modules/json-buffer/', + packageDependencies: [['json-buffer', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-78011309cb.zip/node_modules/json-buffer/', + packageDependencies: [['json-buffer', 'npm:3.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-file-plus', + [ + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/json-file-plus-npm-3.3.1-7166c0c0e0-91d5ea4871.zip/node_modules/json-file-plus/', + packageDependencies: [ + ['json-file-plus', 'npm:3.3.1'], + ['is', 'npm:3.3.0'], + ['node.extend', 'npm:2.0.2'], + ['object.assign', 'npm:4.1.0'], + ['promiseback', 'npm:2.0.3'], + ['safer-buffer', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-parse-better-errors', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/json-parse-better-errors-npm-1.0.2-7f37637d19-b4c4f0e43b.zip/node_modules/json-parse-better-errors/', + packageDependencies: [ + ['json-parse-better-errors', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-schema', + [ + [ + 'npm:0.2.3', + { + packageLocation: + './.yarn/cache/json-schema-npm-0.2.3-018ee3dfc9-d382ea841f.zip/node_modules/json-schema/', + packageDependencies: [['json-schema', 'npm:0.2.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-schema-traverse', + [ + [ + 'npm:0.4.1', + { + packageLocation: + './.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-6f71bddba3.zip/node_modules/json-schema-traverse/', + packageDependencies: [['json-schema-traverse', 'npm:0.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-stable-stringify-without-jsonify', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-a01b6c6541.zip/node_modules/json-stable-stringify-without-jsonify/', + packageDependencies: [ + ['json-stable-stringify-without-jsonify', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json-stringify-safe', + [ + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/json-stringify-safe-npm-5.0.1-064ddd6ab4-261dfb8eb3.zip/node_modules/json-stringify-safe/', + packageDependencies: [['json-stringify-safe', 'npm:5.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'json5', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/json5-npm-1.0.1-647fc8794b-df41624f9f.zip/node_modules/json5/', + packageDependencies: [ + ['json5', 'npm:1.0.1'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.3', + { + packageLocation: + './.yarn/cache/json5-npm-2.1.3-b71ec6bcca-957e493710.zip/node_modules/json5/', + packageDependencies: [ + ['json5', 'npm:2.1.3'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsonfile', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/jsonfile-npm-4.0.0-10ce3aea15-a40b7b64da.zip/node_modules/jsonfile/', + packageDependencies: [ + ['jsonfile', 'npm:4.0.0'], + ['graceful-fs', 'npm:4.2.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.1', + { + packageLocation: + './.yarn/cache/jsonfile-npm-6.0.1-989c3a9870-ebd6932424.zip/node_modules/jsonfile/', + packageDependencies: [ + ['jsonfile', 'npm:6.0.1'], + ['graceful-fs', 'npm:4.2.4'], + ['universalify', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsonparse', + [ + [ + 'npm:1.3.1', + { + packageLocation: + './.yarn/cache/jsonparse-npm-1.3.1-b6fde74828-6669acd7b3.zip/node_modules/jsonparse/', + packageDependencies: [['jsonparse', 'npm:1.3.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsonpointer', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/jsonpointer-npm-4.1.0-212fb6b677-90724d8a84.zip/node_modules/jsonpointer/', + packageDependencies: [['jsonpointer', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsonwebtoken', + [ + [ + 'npm:8.5.1', + { + packageLocation: + './.yarn/cache/jsonwebtoken-npm-8.5.1-c007670b76-ea44bbb7a7.zip/node_modules/jsonwebtoken/', + packageDependencies: [ + ['jsonwebtoken', 'npm:8.5.1'], + ['jws', 'npm:3.2.2'], + ['lodash.includes', 'npm:4.3.0'], + ['lodash.isboolean', 'npm:3.0.3'], + ['lodash.isinteger', 'npm:4.0.4'], + ['lodash.isnumber', 'npm:3.0.3'], + ['lodash.isplainobject', 'npm:4.0.6'], + ['lodash.isstring', 'npm:4.0.1'], + ['lodash.once', 'npm:4.1.1'], + ['ms', 'npm:2.1.2'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jsprim', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/jsprim-npm-1.4.1-948d2c9ec3-ee0177b7ef.zip/node_modules/jsprim/', + packageDependencies: [ + ['jsprim', 'npm:1.4.1'], + ['assert-plus', 'npm:1.0.0'], + ['extsprintf', 'npm:1.3.0'], + ['json-schema', 'npm:0.2.3'], + ['verror', 'npm:1.10.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jwa', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/jwa-npm-1.4.1-4f19d6572c-e3a6234a3a.zip/node_modules/jwa/', + packageDependencies: [ + ['jwa', 'npm:1.4.1'], + ['buffer-equal-constant-time', 'npm:1.0.1'], + ['ecdsa-sig-formatter', 'npm:1.0.11'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jwks-rsa', + [ + [ + 'npm:1.8.1', + { + packageLocation: + './.yarn/cache/jwks-rsa-npm-1.8.1-8bf81468b9-eaa4a2d73c.zip/node_modules/jwks-rsa/', + packageDependencies: [ + ['jwks-rsa', 'npm:1.8.1'], + ['@types/express-jwt', 'npm:0.0.42'], + ['axios', 'npm:0.19.2'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['jsonwebtoken', 'npm:8.5.1'], + ['limiter', 'npm:1.1.5'], + ['lru-memoizer', 'npm:2.1.2'], + ['ms', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'jws', + [ + [ + 'npm:3.2.2', + { + packageLocation: + './.yarn/cache/jws-npm-3.2.2-c1ae59c7af-3990b26ebb.zip/node_modules/jws/', + packageDependencies: [ + ['jws', 'npm:3.2.2'], + ['jwa', 'npm:1.4.1'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'keyv', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/keyv-npm-3.0.0-31c4735a55-b3e5f5eee0.zip/node_modules/keyv/', + packageDependencies: [ + ['keyv', 'npm:3.0.0'], + ['json-buffer', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/keyv-npm-4.0.1-04a825d708-f4e65024a7.zip/node_modules/keyv/', + packageDependencies: [ + ['keyv', 'npm:4.0.1'], + ['json-buffer', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'kind-of', + [ + [ + 'npm:3.2.2', + { + packageLocation: + './.yarn/cache/kind-of-npm-3.2.2-7deaffa5f9-e8a1835c4b.zip/node_modules/kind-of/', + packageDependencies: [ + ['kind-of', 'npm:3.2.2'], + ['is-buffer', 'npm:1.1.6'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/kind-of-npm-4.0.0-69fd153375-2e7296c614.zip/node_modules/kind-of/', + packageDependencies: [ + ['kind-of', 'npm:4.0.0'], + ['is-buffer', 'npm:1.1.6'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/kind-of-npm-5.1.0-ce82f43eaa-c98cfe70c8.zip/node_modules/kind-of/', + packageDependencies: [['kind-of', 'npm:5.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.3', + { + packageLocation: + './.yarn/cache/kind-of-npm-6.0.3-ab15f36220-5de5d65777.zip/node_modules/kind-of/', + packageDependencies: [['kind-of', 'npm:6.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'kleur', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/kleur-npm-3.0.3-f6f53649a4-20ef0e37fb.zip/node_modules/kleur/', + packageDependencies: [['kleur', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'klona', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/klona-npm-2.0.4-6bc4e7cd86-be4a0c7841.zip/node_modules/klona/', + packageDependencies: [['klona', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ky', + [ + [ + 'npm:0.12.0', + { + packageLocation: + './.yarn/cache/ky-npm-0.12.0-19269162de-a4c8d87002.zip/node_modules/ky/', + packageDependencies: [['ky', 'npm:0.12.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ky-universal', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/ky-universal-npm-0.3.0-2f0c42ccef-a84a89db2a.zip/node_modules/ky-universal/', + packageDependencies: [['ky-universal', 'npm:0.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:add588f84a4ecd8f02492550bb63eb7e87b18983b79581d31fb353368187e30c57f0ccfe7f55e1893cd041e7c7b18ba4ded0ed1efb652afa5c6c1663d676d61b#npm:0.3.0', + { + packageLocation: + './.yarn/$$virtual/ky-universal-virtual-62e84b48db/0/cache/ky-universal-npm-0.3.0-2f0c42ccef-a84a89db2a.zip/node_modules/ky-universal/', + packageDependencies: [ + [ + 'ky-universal', + 'virtual:add588f84a4ecd8f02492550bb63eb7e87b18983b79581d31fb353368187e30c57f0ccfe7f55e1893cd041e7c7b18ba4ded0ed1efb652afa5c6c1663d676d61b#npm:0.3.0', + ], + ['@types/ky', null], + ['abort-controller', 'npm:3.0.0'], + ['ky', 'npm:0.12.0'], + ['node-fetch', 'npm:2.6.0'], + ], + packagePeers: ['@types/ky', 'ky'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'latest-version', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/latest-version-npm-3.1.0-deb049c563-117b4a315a.zip/node_modules/latest-version/', + packageDependencies: [ + ['latest-version', 'npm:3.1.0'], + ['package-json', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/latest-version-npm-5.1.0-ddb9b0eb39-63c1f22435.zip/node_modules/latest-version/', + packageDependencies: [ + ['latest-version', 'npm:5.1.0'], + ['package-json', 'npm:6.5.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lazy-cache', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/lazy-cache-npm-2.0.2-6f6bc0b22b-27bc7d08d4.zip/node_modules/lazy-cache/', + packageDependencies: [ + ['lazy-cache', 'npm:2.0.2'], + ['set-getter', 'npm:0.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'leven', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/leven-npm-3.1.0-b7697736a3-6ebca75298.zip/node_modules/leven/', + packageDependencies: [['leven', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'levenary', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/levenary-npm-1.1.1-10ba3797a5-6d3b78e395.zip/node_modules/levenary/', + packageDependencies: [ + ['levenary', 'npm:1.1.1'], + ['leven', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'levn', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/levn-npm-0.3.0-48d774b1c2-775861da38.zip/node_modules/levn/', + packageDependencies: [ + ['levn', 'npm:0.3.0'], + ['prelude-ls', 'npm:1.1.2'], + ['type-check', 'npm:0.3.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'li', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/li-npm-1.3.0-52325ed9c4-f4737d4deb.zip/node_modules/li/', + packageDependencies: [['li', 'npm:1.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'limiter', + [ + [ + 'npm:1.1.5', + { + packageLocation: + './.yarn/cache/limiter-npm-1.1.5-aa11b1b2de-83f7aa20fe.zip/node_modules/limiter/', + packageDependencies: [['limiter', 'npm:1.1.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'line-column', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/line-column-npm-1.0.2-bdeb1193f9-e6fa785b0c.zip/node_modules/line-column/', + packageDependencies: [ + ['line-column', 'npm:1.0.2'], + ['isarray', 'npm:1.0.0'], + ['isobject', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lines-and-columns', + [ + [ + 'npm:1.1.6', + { + packageLocation: + './.yarn/cache/lines-and-columns-npm-1.1.6-23e74fab67-798b80ed7a.zip/node_modules/lines-and-columns/', + packageDependencies: [['lines-and-columns', 'npm:1.1.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'linkify-it', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/linkify-it-npm-2.2.0-3eb4775d11-7905b34078.zip/node_modules/linkify-it/', + packageDependencies: [ + ['linkify-it', 'npm:2.2.0'], + ['uc.micro', 'npm:1.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'listr', + [ + [ + 'npm:0.14.3', + { + packageLocation: + './.yarn/cache/listr-npm-0.14.3-f9030beb58-97a194b6ad.zip/node_modules/listr/', + packageDependencies: [ + ['listr', 'npm:0.14.3'], + [ + '@samverschueren/stream-to-observable', + 'virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.3.0', + ], + ['is-observable', 'npm:1.1.0'], + ['is-promise', 'npm:2.2.2'], + ['is-stream', 'npm:1.1.0'], + ['listr-silent-renderer', 'npm:1.1.1'], + [ + 'listr-update-renderer', + 'virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.5.0', + ], + ['listr-verbose-renderer', 'npm:0.5.0'], + ['p-map', 'npm:2.1.0'], + ['rxjs', 'npm:6.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'listr-silent-renderer', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/listr-silent-renderer-npm-1.1.1-01f9e73935-ea91806bd0.zip/node_modules/listr-silent-renderer/', + packageDependencies: [['listr-silent-renderer', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'listr-update-renderer', + [ + [ + 'npm:0.5.0', + { + packageLocation: + './.yarn/cache/listr-update-renderer-npm-0.5.0-3e539fc2df-0219b8752f.zip/node_modules/listr-update-renderer/', + packageDependencies: [['listr-update-renderer', 'npm:0.5.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.5.0', + { + packageLocation: + './.yarn/$$virtual/listr-update-renderer-virtual-28f8a2d38d/0/cache/listr-update-renderer-npm-0.5.0-3e539fc2df-0219b8752f.zip/node_modules/listr-update-renderer/', + packageDependencies: [ + [ + 'listr-update-renderer', + 'virtual:f9030beb58c47c1141ba8b09c2df04fef48a2f5eb49ae3c8132ed2ffb349f2b1c2584d8259aba093199758c25920e8ec85b45ef2f0e68231c1e99dada643a9c5#npm:0.5.0', + ], + ['@types/listr', null], + ['chalk', 'npm:1.1.3'], + ['cli-truncate', 'npm:0.2.1'], + ['elegant-spinner', 'npm:1.0.1'], + ['figures', 'npm:1.7.0'], + ['indent-string', 'npm:3.2.0'], + ['listr', 'npm:0.14.3'], + ['log-symbols', 'npm:1.0.2'], + ['log-update', 'npm:2.3.0'], + ['strip-ansi', 'npm:3.0.1'], + ], + packagePeers: ['@types/listr', 'listr'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'listr-verbose-renderer', + [ + [ + 'npm:0.5.0', + { + packageLocation: + './.yarn/cache/listr-verbose-renderer-npm-0.5.0-e15abcfcc9-83aec28ed1.zip/node_modules/listr-verbose-renderer/', + packageDependencies: [ + ['listr-verbose-renderer', 'npm:0.5.0'], + ['chalk', 'npm:2.4.2'], + ['cli-cursor', 'npm:2.1.0'], + ['date-fns', 'npm:1.30.1'], + ['figures', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'load-json-file', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/load-json-file-npm-1.1.0-455d5470c2-3966dbc0c4.zip/node_modules/load-json-file/', + packageDependencies: [ + ['load-json-file', 'npm:1.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['parse-json', 'npm:2.2.0'], + ['pify', 'npm:2.3.0'], + ['pinkie-promise', 'npm:2.0.1'], + ['strip-bom', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/load-json-file-npm-4.0.0-c9f09d85eb-692f33387b.zip/node_modules/load-json-file/', + packageDependencies: [ + ['load-json-file', 'npm:4.0.0'], + ['graceful-fs', 'npm:4.2.4'], + ['parse-json', 'npm:4.0.0'], + ['pify', 'npm:3.0.0'], + ['strip-bom', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'loader-runner', + [ + [ + 'npm:2.4.0', + { + packageLocation: + './.yarn/cache/loader-runner-npm-2.4.0-c414104c2f-9173b602e8.zip/node_modules/loader-runner/', + packageDependencies: [['loader-runner', 'npm:2.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'loader-utils', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/loader-utils-npm-1.2.3-d5bb1b4e08-61b44f2d30.zip/node_modules/loader-utils/', + packageDependencies: [ + ['loader-utils', 'npm:1.2.3'], + ['big.js', 'npm:5.2.2'], + ['emojis-list', 'npm:2.1.0'], + ['json5', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/loader-utils-npm-2.0.0-cf7d5aadbf-a1c2e48781.zip/node_modules/loader-utils/', + packageDependencies: [ + ['loader-utils', 'npm:2.0.0'], + ['big.js', 'npm:5.2.2'], + ['emojis-list', 'npm:3.0.0'], + ['json5', 'npm:2.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'locate-path', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/locate-path-npm-2.0.0-673d28b0ea-ee5a888d68.zip/node_modules/locate-path/', + packageDependencies: [ + ['locate-path', 'npm:2.0.0'], + ['p-locate', 'npm:2.0.0'], + ['path-exists', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/locate-path-npm-3.0.0-991671ae9f-0b6bf0c1bb.zip/node_modules/locate-path/', + packageDependencies: [ + ['locate-path', 'npm:3.0.0'], + ['p-locate', 'npm:3.0.0'], + ['path-exists', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/locate-path-npm-5.0.0-46580c43e4-c58f49d45c.zip/node_modules/locate-path/', + packageDependencies: [ + ['locate-path', 'npm:5.0.0'], + ['p-locate', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'locutus', + [ + [ + 'npm:2.0.11', + { + packageLocation: + './.yarn/cache/locutus-npm-2.0.11-6e5823f3ea-a52d885011.zip/node_modules/locutus/', + packageDependencies: [ + ['locutus', 'npm:2.0.11'], + ['es6-promise', 'npm:4.2.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash', + [ + [ + 'npm:4.17.19', + { + packageLocation: + './.yarn/cache/lodash-npm-4.17.19-fa87a8e838-ff2b7a95f0.zip/node_modules/lodash/', + packageDependencies: [['lodash', 'npm:4.17.19']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.17.20', + { + packageLocation: + './.yarn/cache/lodash-npm-4.17.20-c0db62021c-c62101d250.zip/node_modules/lodash/', + packageDependencies: [['lodash', 'npm:4.17.20']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.17.21', + { + packageLocation: + './.yarn/cache/lodash-npm-4.17.21-6382451519-4983720b9a.zip/node_modules/lodash/', + packageDependencies: [['lodash', 'npm:4.17.21']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash-es', + [ + [ + 'npm:4.17.15', + { + packageLocation: + './.yarn/cache/lodash-es-npm-4.17.15-ad31f98cc6-ee2871b76d.zip/node_modules/lodash-es/', + packageDependencies: [['lodash-es', 'npm:4.17.15']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.17.21', + { + packageLocation: + './.yarn/cache/lodash-es-npm-4.17.21-b45832dfce-ff0e7bb959.zip/node_modules/lodash-es/', + packageDependencies: [['lodash-es', 'npm:4.17.21']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.camelcase', + [ + [ + 'npm:4.3.0', + { + packageLocation: + './.yarn/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-3cb674ed3b.zip/node_modules/lodash.camelcase/', + packageDependencies: [['lodash.camelcase', 'npm:4.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.clonedeep', + [ + [ + 'npm:4.5.0', + { + packageLocation: + './.yarn/cache/lodash.clonedeep-npm-4.5.0-fbc3cda4e5-41e2fe4c57.zip/node_modules/lodash.clonedeep/', + packageDependencies: [['lodash.clonedeep', 'npm:4.5.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.debounce', + [ + [ + 'npm:4.0.8', + { + packageLocation: + './.yarn/cache/lodash.debounce-npm-4.0.8-f1d6e09799-b6042bd8c0.zip/node_modules/lodash.debounce/', + packageDependencies: [['lodash.debounce', 'npm:4.0.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.find', + [ + [ + 'npm:4.6.0', + { + packageLocation: + './.yarn/cache/lodash.find-npm-4.6.0-dd2db8c53f-a6188ffe8d.zip/node_modules/lodash.find/', + packageDependencies: [['lodash.find', 'npm:4.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.get', + [ + [ + 'npm:4.4.2', + { + packageLocation: + './.yarn/cache/lodash.get-npm-4.4.2-7bda64ed87-447e575e3c.zip/node_modules/lodash.get/', + packageDependencies: [['lodash.get', 'npm:4.4.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.has', + [ + [ + 'npm:4.5.2', + { + packageLocation: + './.yarn/cache/lodash.has-npm-4.5.2-0a10673e08-ed2cbed6f3.zip/node_modules/lodash.has/', + packageDependencies: [['lodash.has', 'npm:4.5.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.includes', + [ + [ + 'npm:4.3.0', + { + packageLocation: + './.yarn/cache/lodash.includes-npm-4.3.0-3a2f6fa22c-20d6b1bf78.zip/node_modules/lodash.includes/', + packageDependencies: [['lodash.includes', 'npm:4.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.isboolean', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/lodash.isboolean-npm-3.0.3-b575b41488-e5b7a921f4.zip/node_modules/lodash.isboolean/', + packageDependencies: [['lodash.isboolean', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.isinteger', + [ + [ + 'npm:4.0.4', + { + packageLocation: + './.yarn/cache/lodash.isinteger-npm-4.0.4-42add9f4e1-a29551cc9a.zip/node_modules/lodash.isinteger/', + packageDependencies: [['lodash.isinteger', 'npm:4.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.isnumber', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/lodash.isnumber-npm-3.0.3-b3bb5f7347-a33b10bf57.zip/node_modules/lodash.isnumber/', + packageDependencies: [['lodash.isnumber', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.isobject', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/lodash.isobject-npm-3.0.2-ec19461220-650d6689f3.zip/node_modules/lodash.isobject/', + packageDependencies: [['lodash.isobject', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.isplainobject', + [ + [ + 'npm:4.0.6', + { + packageLocation: + './.yarn/cache/lodash.isplainobject-npm-4.0.6-d73937742f-72a114b610.zip/node_modules/lodash.isplainobject/', + packageDependencies: [['lodash.isplainobject', 'npm:4.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.isstring', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/lodash.isstring-npm-4.0.1-721fee791c-20c46960b7.zip/node_modules/lodash.isstring/', + packageDependencies: [['lodash.isstring', 'npm:4.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.kebabcase', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/lodash.kebabcase-npm-4.1.1-89ffca7e1f-cee7b365bf.zip/node_modules/lodash.kebabcase/', + packageDependencies: [['lodash.kebabcase', 'npm:4.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.keys', + [ + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/lodash.keys-npm-4.2.0-0fc9ed9da3-d6cedf4942.zip/node_modules/lodash.keys/', + packageDependencies: [['lodash.keys', 'npm:4.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.mapvalues', + [ + [ + 'npm:4.6.0', + { + packageLocation: + './.yarn/cache/lodash.mapvalues-npm-4.6.0-4664380119-84399826cc.zip/node_modules/lodash.mapvalues/', + packageDependencies: [['lodash.mapvalues', 'npm:4.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.memoize', + [ + [ + 'npm:4.1.2', + { + packageLocation: + './.yarn/cache/lodash.memoize-npm-4.1.2-0e6250041f-080c1095b7.zip/node_modules/lodash.memoize/', + packageDependencies: [['lodash.memoize', 'npm:4.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.merge', + [ + [ + 'npm:4.6.2', + { + packageLocation: + './.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-4e2bb42a87.zip/node_modules/lodash.merge/', + packageDependencies: [['lodash.merge', 'npm:4.6.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.once', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/lodash.once-npm-4.1.1-d8ba329ead-236e00ca5f.zip/node_modules/lodash.once/', + packageDependencies: [['lodash.once', 'npm:4.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.pad', + [ + [ + 'npm:4.5.1', + { + packageLocation: + './.yarn/cache/lodash.pad-npm-4.5.1-814297ce35-0e2251711f.zip/node_modules/lodash.pad/', + packageDependencies: [['lodash.pad', 'npm:4.5.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.padend', + [ + [ + 'npm:4.6.1', + { + packageLocation: + './.yarn/cache/lodash.padend-npm-4.6.1-6a28392d72-95e8a9cfdf.zip/node_modules/lodash.padend/', + packageDependencies: [['lodash.padend', 'npm:4.6.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.padstart', + [ + [ + 'npm:4.6.1', + { + packageLocation: + './.yarn/cache/lodash.padstart-npm-4.6.1-c905d3b705-c1fffb1c84.zip/node_modules/lodash.padstart/', + packageDependencies: [['lodash.padstart', 'npm:4.6.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.set', + [ + [ + 'npm:4.3.2', + { + packageLocation: + './.yarn/cache/lodash.set-npm-4.3.2-7586c942c2-4dfedacae1.zip/node_modules/lodash.set/', + packageDependencies: [['lodash.set', 'npm:4.3.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.snakecase', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/lodash.snakecase-npm-4.1.1-b12cdbecb4-3b3d145759.zip/node_modules/lodash.snakecase/', + packageDependencies: [['lodash.snakecase', 'npm:4.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.sortby', + [ + [ + 'npm:4.7.0', + { + packageLocation: + './.yarn/cache/lodash.sortby-npm-4.7.0-fda8ab950d-43cde11276.zip/node_modules/lodash.sortby/', + packageDependencies: [['lodash.sortby', 'npm:4.7.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.toarray', + [ + [ + 'npm:4.4.0', + { + packageLocation: + './.yarn/cache/lodash.toarray-npm-4.4.0-e7e700a242-f2b8de1812.zip/node_modules/lodash.toarray/', + packageDependencies: [['lodash.toarray', 'npm:4.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.uniq', + [ + [ + 'npm:4.5.0', + { + packageLocation: + './.yarn/cache/lodash.uniq-npm-4.5.0-7c270dca85-47cb25b59b.zip/node_modules/lodash.uniq/', + packageDependencies: [['lodash.uniq', 'npm:4.5.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lodash.upperfirst', + [ + [ + 'npm:4.3.1', + { + packageLocation: + './.yarn/cache/lodash.upperfirst-npm-4.3.1-e3b7c364ba-2d9fc60a1f.zip/node_modules/lodash.upperfirst/', + packageDependencies: [['lodash.upperfirst', 'npm:4.3.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'log-symbols', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/log-symbols-npm-1.0.2-2224ede6fd-69ba19d52b.zip/node_modules/log-symbols/', + packageDependencies: [ + ['log-symbols', 'npm:1.0.2'], + ['chalk', 'npm:1.1.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/log-symbols-npm-2.2.0-9541ad4da6-e2dfd255f3.zip/node_modules/log-symbols/', + packageDependencies: [ + ['log-symbols', 'npm:2.2.0'], + ['chalk', 'npm:2.4.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/log-symbols-npm-3.0.0-b9d1446657-bfa7cceaea.zip/node_modules/log-symbols/', + packageDependencies: [ + ['log-symbols', 'npm:3.0.0'], + ['chalk', 'npm:2.4.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'log-update', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/log-update-npm-2.3.0-2ab0d1b479-9b28467861.zip/node_modules/log-update/', + packageDependencies: [ + ['log-update', 'npm:2.3.0'], + ['ansi-escapes', 'npm:3.2.0'], + ['cli-cursor', 'npm:2.1.0'], + ['wrap-ansi', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'logic-solver', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/logic-solver-npm-2.0.1-3f092e9b27-48458c6771.zip/node_modules/logic-solver/', + packageDependencies: [ + ['logic-solver', 'npm:2.0.1'], + ['underscore', 'npm:1.8.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'longest-streak', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/longest-streak-npm-2.0.4-a83545ec19-ba5ebac147.zip/node_modules/longest-streak/', + packageDependencies: [['longest-streak', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'loose-envify', + [ + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-5c3b47bbe5.zip/node_modules/loose-envify/', + packageDependencies: [ + ['loose-envify', 'npm:1.4.0'], + ['js-tokens', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'loud-rejection', + [ + [ + 'npm:1.6.0', + { + packageLocation: + './.yarn/cache/loud-rejection-npm-1.6.0-1d4b7666c5-9d57f7bc81.zip/node_modules/loud-rejection/', + packageDependencies: [ + ['loud-rejection', 'npm:1.6.0'], + ['currently-unhandled', 'npm:0.4.1'], + ['signal-exit', 'npm:3.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lower-case', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/lower-case-npm-2.0.1-f34f50c78b-52a55327ea.zip/node_modules/lower-case/', + packageDependencies: [ + ['lower-case', 'npm:2.0.1'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lowercase-keys', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/lowercase-keys-npm-1.0.0-b65e7708c5-9f082209f9.zip/node_modules/lowercase-keys/', + packageDependencies: [['lowercase-keys', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/lowercase-keys-npm-1.0.1-0979e653b8-ac9d79c47d.zip/node_modules/lowercase-keys/', + packageDependencies: [['lowercase-keys', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/lowercase-keys-npm-2.0.0-1876065a32-4da67f4186.zip/node_modules/lowercase-keys/', + packageDependencies: [['lowercase-keys', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lru-cache', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/lru-cache-npm-4.0.2-5e365dbc4a-503a21816b.zip/node_modules/lru-cache/', + packageDependencies: [ + ['lru-cache', 'npm:4.0.2'], + ['pseudomap', 'npm:1.0.2'], + ['yallist', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/lru-cache-npm-5.1.1-f475882a51-ffd9a280fa.zip/node_modules/lru-cache/', + packageDependencies: [ + ['lru-cache', 'npm:5.1.1'], + ['yallist', 'npm:3.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-b8b78353d2.zip/node_modules/lru-cache/', + packageDependencies: [ + ['lru-cache', 'npm:6.0.0'], + ['yallist', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lru-memoizer', + [ + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/lru-memoizer-npm-2.1.2-7b03f0ca3d-cef6810e8f.zip/node_modules/lru-memoizer/', + packageDependencies: [ + ['lru-memoizer', 'npm:2.1.2'], + ['lodash.clonedeep', 'npm:4.5.0'], + ['lru-cache', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'lunr', + [ + [ + 'npm:2.3.9', + { + packageLocation: + './.yarn/cache/lunr-npm-2.3.9-fa3aa9c2d6-a2b66320c2.zip/node_modules/lunr/', + packageDependencies: [['lunr', 'npm:2.3.9']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'macos-release', + [ + [ + 'npm:2.4.1', + { + packageLocation: + './.yarn/cache/macos-release-npm-2.4.1-4856441ab1-0d15f4b163.zip/node_modules/macos-release/', + packageDependencies: [['macos-release', 'npm:2.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'make-dir', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/make-dir-npm-1.3.0-692810d225-20a14043c6.zip/node_modules/make-dir/', + packageDependencies: [ + ['make-dir', 'npm:1.3.0'], + ['pify', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/make-dir-npm-2.1.0-1ddaf205e7-94e2ab9dda.zip/node_modules/make-dir/', + packageDependencies: [ + ['make-dir', 'npm:2.1.0'], + ['pify', 'npm:4.0.1'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/make-dir-npm-3.1.0-d1d7505142-54b6f186c2.zip/node_modules/make-dir/', + packageDependencies: [ + ['make-dir', 'npm:3.1.0'], + ['semver', 'npm:6.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'make-error', + [ + [ + 'npm:1.3.6', + { + packageLocation: + './.yarn/cache/make-error-npm-1.3.6-ccb85d9458-2c780bab84.zip/node_modules/make-error/', + packageDependencies: [['make-error', 'npm:1.3.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'makeerror', + [ + [ + 'npm:1.0.11', + { + packageLocation: + './.yarn/cache/makeerror-npm-1.0.11-f7d070b73c-582016a5e8.zip/node_modules/makeerror/', + packageDependencies: [ + ['makeerror', 'npm:1.0.11'], + ['tmpl', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'map-age-cleaner', + [ + [ + 'npm:0.1.3', + { + packageLocation: + './.yarn/cache/map-age-cleaner-npm-0.1.3-fd9e4b4aff-0f0b811492.zip/node_modules/map-age-cleaner/', + packageDependencies: [ + ['map-age-cleaner', 'npm:0.1.3'], + ['p-defer', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'map-cache', + [ + [ + 'npm:0.2.2', + { + packageLocation: + './.yarn/cache/map-cache-npm-0.2.2-1620199b05-3d205d20e0.zip/node_modules/map-cache/', + packageDependencies: [['map-cache', 'npm:0.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'map-obj', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/map-obj-npm-1.0.1-fa55100fac-e68b20e4fa.zip/node_modules/map-obj/', + packageDependencies: [['map-obj', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'map-visit', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/map-visit-npm-1.0.0-33a7988a9d-9e85e6d802.zip/node_modules/map-visit/', + packageDependencies: [ + ['map-visit', 'npm:1.0.0'], + ['object-visit', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'markdown-escapes', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/markdown-escapes-npm-1.0.4-6f56c61420-eea95364ec.zip/node_modules/markdown-escapes/', + packageDependencies: [['markdown-escapes', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'markdown-it', + [ + [ + 'npm:10.0.0', + { + packageLocation: + './.yarn/cache/markdown-it-npm-10.0.0-5f034e780e-f052906744.zip/node_modules/markdown-it/', + packageDependencies: [ + ['markdown-it', 'npm:10.0.0'], + ['argparse', 'npm:1.0.10'], + ['entities', 'npm:2.0.3'], + ['linkify-it', 'npm:2.2.0'], + ['mdurl', 'npm:1.0.1'], + ['uc.micro', 'npm:1.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'markdown-table', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/markdown-table-npm-2.0.0-a9c10c8e83-48492b01bc.zip/node_modules/markdown-table/', + packageDependencies: [ + ['markdown-table', 'npm:2.0.0'], + ['repeat-string', 'npm:1.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'marked', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/marked-npm-1.1.1-94b9332cf8-4fb077a99c.zip/node_modules/marked/', + packageDependencies: [['marked', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'matcher', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/matcher-npm-3.0.0-d32d29365e-4b54c0a8ed.zip/node_modules/matcher/', + packageDependencies: [ + ['matcher', 'npm:3.0.0'], + ['escape-string-regexp', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'material-colors', + [ + [ + 'npm:1.2.6', + { + packageLocation: + './.yarn/cache/material-colors-npm-1.2.6-38f7e3d1c1-15883150a3.zip/node_modules/material-colors/', + packageDependencies: [['material-colors', 'npm:1.2.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'md5.js', + [ + [ + 'npm:1.3.5', + { + packageLocation: + './.yarn/cache/md5.js-npm-1.3.5-130901125a-ca0b260ea2.zip/node_modules/md5.js/', + packageDependencies: [ + ['md5.js', 'npm:1.3.5'], + ['hash-base', 'npm:3.1.0'], + ['inherits', 'npm:2.0.4'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-add-list-metadata', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/mdast-add-list-metadata-npm-1.0.1-af1e386973-1aa118b3c3.zip/node_modules/mdast-add-list-metadata/', + packageDependencies: [ + ['mdast-add-list-metadata', 'npm:1.0.1'], + ['unist-util-visit-parents', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-compact', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/mdast-util-compact-npm-2.0.1-a807b39cc4-0f1d42a28b.zip/node_modules/mdast-util-compact/', + packageDependencies: [ + ['mdast-util-compact', 'npm:2.0.1'], + ['unist-util-visit', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-definitions', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/mdast-util-definitions-npm-4.0.0-207d18be98-a6ef899727.zip/node_modules/mdast-util-definitions/', + packageDependencies: [ + ['mdast-util-definitions', 'npm:4.0.0'], + ['unist-util-visit', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-from-markdown', + [ + [ + 'npm:0.8.0', + { + packageLocation: + './.yarn/cache/mdast-util-from-markdown-npm-0.8.0-92070304d3-9bd1733de2.zip/node_modules/mdast-util-from-markdown/', + packageDependencies: [ + ['mdast-util-from-markdown', 'npm:0.8.0'], + ['@types/mdast', 'npm:3.0.3'], + ['mdast-util-to-string', 'npm:1.1.0'], + ['micromark', 'npm:2.10.1'], + ['parse-entities', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-frontmatter', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/mdast-util-frontmatter-npm-0.2.0-c07c93d080-7ad4406e45.zip/node_modules/mdast-util-frontmatter/', + packageDependencies: [ + ['mdast-util-frontmatter', 'npm:0.2.0'], + ['micromark-extension-frontmatter', 'npm:0.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-to-hast', + [ + [ + 'npm:10.0.0', + { + packageLocation: + './.yarn/cache/mdast-util-to-hast-npm-10.0.0-8f92042e63-30098259ad.zip/node_modules/mdast-util-to-hast/', + packageDependencies: [ + ['mdast-util-to-hast', 'npm:10.0.0'], + ['@types/mdast', 'npm:3.0.3'], + ['@types/unist', 'npm:2.0.3'], + ['mdast-util-definitions', 'npm:4.0.0'], + ['mdurl', 'npm:1.0.1'], + ['unist-builder', 'npm:2.0.3'], + ['unist-util-generated', 'npm:1.1.5'], + ['unist-util-position', 'npm:3.1.0'], + ['unist-util-visit', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-to-markdown', + [ + [ + 'npm:0.5.3', + { + packageLocation: + './.yarn/cache/mdast-util-to-markdown-npm-0.5.3-eeab404b56-87b196a807.zip/node_modules/mdast-util-to-markdown/', + packageDependencies: [ + ['mdast-util-to-markdown', 'npm:0.5.3'], + ['@types/unist', 'npm:2.0.3'], + ['longest-streak', 'npm:2.0.4'], + ['mdast-util-to-string', 'npm:1.1.0'], + ['parse-entities', 'npm:2.0.0'], + ['repeat-string', 'npm:1.6.1'], + ['zwitch', 'npm:1.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdast-util-to-string', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/mdast-util-to-string-npm-1.1.0-9a11069485-0d5ebe2cb5.zip/node_modules/mdast-util-to-string/', + packageDependencies: [['mdast-util-to-string', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdn-data', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/mdn-data-npm-2.0.4-59a77d1e29-bcecf9ae69.zip/node_modules/mdn-data/', + packageDependencies: [['mdn-data', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.6', + { + packageLocation: + './.yarn/cache/mdn-data-npm-2.0.6-2e8c1b34fd-fc723bad3b.zip/node_modules/mdn-data/', + packageDependencies: [['mdn-data', 'npm:2.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mdurl', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/mdurl-npm-1.0.1-054d974269-ed5e81efed.zip/node_modules/mdurl/', + packageDependencies: [['mdurl', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'media-typer', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/media-typer-npm-0.3.0-8674f8f0f5-be1c825782.zip/node_modules/media-typer/', + packageDependencies: [['media-typer', 'npm:0.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mem', + [ + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/mem-npm-5.1.1-2d4979148e-66b6c1a02b.zip/node_modules/mem/', + packageDependencies: [ + ['mem', 'npm:5.1.1'], + ['map-age-cleaner', 'npm:0.1.3'], + ['mimic-fn', 'npm:2.1.0'], + ['p-is-promise', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mem-fs', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/mem-fs-npm-1.2.0-2dffc0dd19-5f1e955267.zip/node_modules/mem-fs/', + packageDependencies: [ + ['mem-fs', 'npm:1.2.0'], + ['through2', 'npm:3.0.2'], + ['vinyl', 'npm:2.2.0'], + ['vinyl-file', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mem-fs-editor', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/mem-fs-editor-npm-6.0.0-7109215b6c-25d69e5316.zip/node_modules/mem-fs-editor/', + packageDependencies: [ + ['mem-fs-editor', 'npm:6.0.0'], + ['commondir', 'npm:1.0.1'], + ['deep-extend', 'npm:0.6.0'], + ['ejs', 'npm:2.7.4'], + ['glob', 'npm:7.1.6'], + ['globby', 'npm:9.2.0'], + ['isbinaryfile', 'npm:4.0.6'], + ['mkdirp', 'npm:0.5.5'], + ['multimatch', 'npm:4.0.0'], + ['rimraf', 'npm:2.7.1'], + ['through2', 'npm:3.0.2'], + ['vinyl', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.1', + { + packageLocation: + './.yarn/cache/mem-fs-editor-npm-7.0.1-d25c5bb014-5097632333.zip/node_modules/mem-fs-editor/', + packageDependencies: [ + ['mem-fs-editor', 'npm:7.0.1'], + ['commondir', 'npm:1.0.1'], + ['deep-extend', 'npm:0.6.0'], + ['ejs', 'npm:3.1.3'], + ['glob', 'npm:7.1.6'], + ['globby', 'npm:9.2.0'], + ['isbinaryfile', 'npm:4.0.6'], + ['mkdirp', 'npm:1.0.4'], + ['multimatch', 'npm:4.0.0'], + ['rimraf', 'npm:3.0.2'], + ['through2', 'npm:3.0.2'], + ['vinyl', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'memfs-or-file-map-to-github-branch', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/memfs-or-file-map-to-github-branch-npm-1.2.0-3a94978222-0890dc4bfd.zip/node_modules/memfs-or-file-map-to-github-branch/', + packageDependencies: [ + ['memfs-or-file-map-to-github-branch', 'npm:1.2.0'], + ['@octokit/rest', 'npm:16.43.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'memoize-one', + [ + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/memoize-one-npm-5.1.1-78136bf522-e7c4a9ccec.zip/node_modules/memoize-one/', + packageDependencies: [['memoize-one', 'npm:5.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'memory-fs', + [ + [ + 'npm:0.4.1', + { + packageLocation: + './.yarn/cache/memory-fs-npm-0.4.1-0a5f9b8954-ba79207118.zip/node_modules/memory-fs/', + packageDependencies: [ + ['memory-fs', 'npm:0.4.1'], + ['errno', 'npm:0.1.7'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.5.0', + { + packageLocation: + './.yarn/cache/memory-fs-npm-0.5.0-8be5938449-deb916f33c.zip/node_modules/memory-fs/', + packageDependencies: [ + ['memory-fs', 'npm:0.5.0'], + ['errno', 'npm:0.1.7'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'meow', + [ + [ + 'npm:3.7.0', + { + packageLocation: + './.yarn/cache/meow-npm-3.7.0-5653cc98af-f0d4feec40.zip/node_modules/meow/', + packageDependencies: [ + ['meow', 'npm:3.7.0'], + ['camelcase-keys', 'npm:2.1.0'], + ['decamelize', 'npm:1.2.0'], + ['loud-rejection', 'npm:1.6.0'], + ['map-obj', 'npm:1.0.1'], + ['minimist', 'npm:1.2.5'], + ['normalize-package-data', 'npm:2.5.0'], + ['object-assign', 'npm:4.1.1'], + ['read-pkg-up', 'npm:1.0.1'], + ['redent', 'npm:1.0.0'], + ['trim-newlines', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'merge-descriptors', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/merge-descriptors-npm-1.0.1-615287aaa8-2d2a09eaac.zip/node_modules/merge-descriptors/', + packageDependencies: [['merge-descriptors', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'merge-stream', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/merge-stream-npm-2.0.0-2ac83efea5-cde834809a.zip/node_modules/merge-stream/', + packageDependencies: [['merge-stream', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'merge2', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/merge2-npm-1.4.1-a2507bd06c-7ad40d8b14.zip/node_modules/merge2/', + packageDependencies: [['merge2', 'npm:1.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'methods', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/methods-npm-1.1.2-92f6fdb39b-450e4ea0fd.zip/node_modules/methods/', + packageDependencies: [['methods', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'microevent.ts', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/microevent.ts-npm-0.1.1-e4b5ff3a50-fc547fd00a.zip/node_modules/microevent.ts/', + packageDependencies: [['microevent.ts', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'micromark', + [ + [ + 'npm:2.10.1', + { + packageLocation: + './.yarn/cache/micromark-npm-2.10.1-9fc02028c9-26c2148b6f.zip/node_modules/micromark/', + packageDependencies: [ + ['micromark', 'npm:2.10.1'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['parse-entities', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'micromark-extension-frontmatter', + [ + [ + 'npm:0.2.2', + { + packageLocation: + './.yarn/cache/micromark-extension-frontmatter-npm-0.2.2-9bd552040c-52715e9240.zip/node_modules/micromark-extension-frontmatter/', + packageDependencies: [ + ['micromark-extension-frontmatter', 'npm:0.2.2'], + ['fault', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'micromatch', + [ + [ + 'npm:3.1.10', + { + packageLocation: + './.yarn/cache/micromatch-npm-3.1.10-016e80c79d-a60e73539a.zip/node_modules/micromatch/', + packageDependencies: [ + ['micromatch', 'npm:3.1.10'], + ['arr-diff', 'npm:4.0.0'], + ['array-unique', 'npm:0.3.2'], + ['braces', 'npm:2.3.2'], + ['define-property', 'npm:2.0.2'], + ['extend-shallow', 'npm:3.0.2'], + ['extglob', 'npm:2.0.4'], + ['fragment-cache', 'npm:0.2.1'], + ['kind-of', 'npm:6.0.3'], + ['nanomatch', 'npm:1.2.13'], + ['object.pick', 'npm:1.3.0'], + ['regex-not', 'npm:1.0.2'], + ['snapdragon', 'npm:0.8.2'], + ['to-regex', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/micromatch-npm-4.0.2-f059c00e51-0cb0e11d64.zip/node_modules/micromatch/', + packageDependencies: [ + ['micromatch', 'npm:4.0.2'], + ['braces', 'npm:3.0.2'], + ['picomatch', 'npm:2.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'miller-rabin', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/miller-rabin-npm-4.0.1-3426ac0bf7-e9f78a2c83.zip/node_modules/miller-rabin/', + packageDependencies: [ + ['miller-rabin', 'npm:4.0.1'], + ['bn.js', 'npm:4.11.9'], + ['brorand', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mime', + [ + [ + 'npm:1.6.0', + { + packageLocation: + './.yarn/cache/mime-npm-1.6.0-60ae95038a-d540c24dd3.zip/node_modules/mime/', + packageDependencies: [['mime', 'npm:1.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mime-db', + [ + [ + 'npm:1.44.0', + { + packageLocation: + './.yarn/cache/mime-db-npm-1.44.0-d6ab7b4e20-b4e3b21414.zip/node_modules/mime-db/', + packageDependencies: [['mime-db', 'npm:1.44.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mime-types', + [ + [ + 'npm:2.1.27', + { + packageLocation: + './.yarn/cache/mime-types-npm-2.1.27-bbebca8e17-51fe2f2c08.zip/node_modules/mime-types/', + packageDependencies: [ + ['mime-types', 'npm:2.1.27'], + ['mime-db', 'npm:1.44.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mimic-fn', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/mimic-fn-npm-1.2.0-960bf15ab7-159155e209.zip/node_modules/mimic-fn/', + packageDependencies: [['mimic-fn', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-f7d2d7febe.zip/node_modules/mimic-fn/', + packageDependencies: [['mimic-fn', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mimic-response', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-64b43c717e.zip/node_modules/mimic-response/', + packageDependencies: [['mimic-response', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/mimic-response-npm-2.1.0-037463e454-9c206f3aeb.zip/node_modules/mimic-response/', + packageDependencies: [['mimic-response', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/mimic-response-npm-3.1.0-a4a24b4e96-cfbf19f66d.zip/node_modules/mimic-response/', + packageDependencies: [['mimic-response', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'min-indent', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/min-indent-npm-1.0.1-77031f50e1-c3aeea46bc.zip/node_modules/min-indent/', + packageDependencies: [['min-indent', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mini-css-extract-plugin', + [ + [ + 'npm:0.8.0', + { + packageLocation: + './.yarn/cache/mini-css-extract-plugin-npm-0.8.0-38a71cd586-806060c04c.zip/node_modules/mini-css-extract-plugin/', + packageDependencies: [['mini-css-extract-plugin', 'npm:0.8.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.8.0', + { + packageLocation: + './.yarn/$$virtual/mini-css-extract-plugin-virtual-2c38fc6464/0/cache/mini-css-extract-plugin-npm-0.8.0-38a71cd586-806060c04c.zip/node_modules/mini-css-extract-plugin/', + packageDependencies: [ + [ + 'mini-css-extract-plugin', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.8.0', + ], + ['@types/webpack', null], + ['loader-utils', 'npm:1.2.3'], + ['normalize-url', 'npm:1.9.1'], + ['schema-utils', 'npm:1.0.0'], + ['webpack', 'npm:4.44.0'], + ['webpack-sources', 'npm:1.4.3'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:0.8.0', + { + packageLocation: + './.yarn/$$virtual/mini-css-extract-plugin-virtual-4d54494e0f/0/cache/mini-css-extract-plugin-npm-0.8.0-38a71cd586-806060c04c.zip/node_modules/mini-css-extract-plugin/', + packageDependencies: [ + [ + 'mini-css-extract-plugin', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:0.8.0', + ], + ['@types/webpack', null], + ['loader-utils', 'npm:1.2.3'], + ['normalize-url', 'npm:1.9.1'], + ['schema-utils', 'npm:1.0.0'], + ['webpack', 'npm:4.43.0'], + ['webpack-sources', 'npm:1.4.3'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mini-svg-data-uri', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/mini-svg-data-uri-npm-1.2.3-8ed0f77365-a354646418.zip/node_modules/mini-svg-data-uri/', + packageDependencies: [['mini-svg-data-uri', 'npm:1.2.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minimalistic-assert', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/minimalistic-assert-npm-1.0.1-dc8bb23d29-28f1de3cf9.zip/node_modules/minimalistic-assert/', + packageDependencies: [['minimalistic-assert', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minimalistic-crypto-utils', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/minimalistic-crypto-utils-npm-1.0.1-e66b10822e-736067bddd.zip/node_modules/minimalistic-crypto-utils/', + packageDependencies: [ + ['minimalistic-crypto-utils', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minimatch', + [ + [ + 'npm:3.0.4', + { + packageLocation: + './.yarn/cache/minimatch-npm-3.0.4-6e76f51c23-47eab92639.zip/node_modules/minimatch/', + packageDependencies: [ + ['minimatch', 'npm:3.0.4'], + ['brace-expansion', 'npm:1.1.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minimist', + [ + [ + 'npm:1.2.5', + { + packageLocation: + './.yarn/cache/minimist-npm-1.2.5-ced0e1f617-b77b859014.zip/node_modules/minimist/', + packageDependencies: [['minimist', 'npm:1.2.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minipass', + [ + [ + 'npm:2.9.0', + { + packageLocation: + './.yarn/cache/minipass-npm-2.9.0-6335fbe4af-57a49f9523.zip/node_modules/minipass/', + packageDependencies: [ + ['minipass', 'npm:2.9.0'], + ['safe-buffer', 'npm:5.1.2'], + ['yallist', 'npm:3.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.3', + { + packageLocation: + './.yarn/cache/minipass-npm-3.1.3-af723e33f3-d12b95a845.zip/node_modules/minipass/', + packageDependencies: [ + ['minipass', 'npm:3.1.3'], + ['yallist', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minipass-collect', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-529ef62123.zip/node_modules/minipass-collect/', + packageDependencies: [ + ['minipass-collect', 'npm:1.0.2'], + ['minipass', 'npm:3.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minipass-flush', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-d354ca0da8.zip/node_modules/minipass-flush/', + packageDependencies: [ + ['minipass-flush', 'npm:1.0.5'], + ['minipass', 'npm:3.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minipass-pipeline', + [ + [ + 'npm:1.2.4', + { + packageLocation: + './.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-001d5a4a0c.zip/node_modules/minipass-pipeline/', + packageDependencies: [ + ['minipass-pipeline', 'npm:1.2.4'], + ['minipass', 'npm:3.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'minizlib', + [ + [ + 'npm:1.3.3', + { + packageLocation: + './.yarn/cache/minizlib-npm-1.3.3-b590e5bfb8-8d12782dd9.zip/node_modules/minizlib/', + packageDependencies: [ + ['minizlib', 'npm:1.3.3'], + ['minipass', 'npm:2.9.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/minizlib-npm-2.1.0-9531be52b3-665346bad8.zip/node_modules/minizlib/', + packageDependencies: [ + ['minizlib', 'npm:2.1.0'], + ['minipass', 'npm:3.1.3'], + ['yallist', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mississippi', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/mississippi-npm-3.0.0-02447e293b-6d30a5ba65.zip/node_modules/mississippi/', + packageDependencies: [ + ['mississippi', 'npm:3.0.0'], + ['concat-stream', 'npm:1.6.2'], + ['duplexify', 'npm:3.7.1'], + ['end-of-stream', 'npm:1.4.4'], + ['flush-write-stream', 'npm:1.1.1'], + ['from2', 'npm:2.3.0'], + ['parallel-transform', 'npm:1.2.0'], + ['pump', 'npm:3.0.0'], + ['pumpify', 'npm:1.5.1'], + ['stream-each', 'npm:1.2.3'], + ['through2', 'npm:2.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mixin-deep', + [ + [ + 'npm:1.3.2', + { + packageLocation: + './.yarn/cache/mixin-deep-npm-1.3.2-29b528e571-68da98bc1a.zip/node_modules/mixin-deep/', + packageDependencies: [ + ['mixin-deep', 'npm:1.3.2'], + ['for-in', 'npm:1.0.2'], + ['is-extendable', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mkdirp', + [ + [ + 'npm:0.5.3', + { + packageLocation: + './.yarn/cache/mkdirp-npm-0.5.3-2727087057-92d96ba83c.zip/node_modules/mkdirp/', + packageDependencies: [ + ['mkdirp', 'npm:0.5.3'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.5.5', + { + packageLocation: + './.yarn/cache/mkdirp-npm-0.5.5-6bc76534fc-9dd9792e89.zip/node_modules/mkdirp/', + packageDependencies: [ + ['mkdirp', 'npm:0.5.5'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-1aa3a6a2d7.zip/node_modules/mkdirp/', + packageDependencies: [['mkdirp', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mkdirp-classic', + [ + [ + 'npm:0.5.3', + { + packageLocation: + './.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-b3c46c6284.zip/node_modules/mkdirp-classic/', + packageDependencies: [['mkdirp-classic', 'npm:0.5.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'moment', + [ + [ + 'npm:2.27.0', + { + packageLocation: + './.yarn/cache/moment-npm-2.27.0-0e670d438d-72d9a7d8db.zip/node_modules/moment/', + packageDependencies: [['moment', 'npm:2.27.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'move-concurrently', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/move-concurrently-npm-1.0.1-e1e3c7e2cf-0761308ddb.zip/node_modules/move-concurrently/', + packageDependencies: [ + ['move-concurrently', 'npm:1.0.1'], + ['aproba', 'npm:1.2.0'], + ['copy-concurrently', 'npm:1.0.5'], + ['fs-write-stream-atomic', 'npm:1.0.10'], + ['mkdirp', 'npm:0.5.5'], + ['rimraf', 'npm:2.7.1'], + ['run-queue', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mri', + [ + [ + 'npm:1.1.6', + { + packageLocation: + './.yarn/cache/mri-npm-1.1.6-a1f1c96131-87a0946506.zip/node_modules/mri/', + packageDependencies: [['mri', 'npm:1.1.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ms', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/ms-npm-2.0.0-9e1101a471-1a230340cc.zip/node_modules/ms/', + packageDependencies: [['ms', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/ms-npm-2.1.1-5b4fd72c86-81ad38c74d.zip/node_modules/ms/', + packageDependencies: [['ms', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/ms-npm-2.1.2-ec0c1512ff-9b65fb709b.zip/node_modules/ms/', + packageDependencies: [['ms', 'npm:2.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'multimatch', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/multimatch-npm-4.0.0-8c467f035e-c1ba3c9b68.zip/node_modules/multimatch/', + packageDependencies: [ + ['multimatch', 'npm:4.0.0'], + ['@types/minimatch', 'npm:3.0.3'], + ['array-differ', 'npm:3.0.0'], + ['array-union', 'npm:2.1.0'], + ['arrify', 'npm:2.0.1'], + ['minimatch', 'npm:3.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mute-stream', + [ + [ + 'npm:0.0.6', + { + packageLocation: + './.yarn/cache/mute-stream-npm-0.0.6-afa07e4a56-0fab9c5a25.zip/node_modules/mute-stream/', + packageDependencies: [['mute-stream', 'npm:0.0.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.0.7', + { + packageLocation: + './.yarn/cache/mute-stream-npm-0.0.7-22b59a65dd-698fe32d88.zip/node_modules/mute-stream/', + packageDependencies: [['mute-stream', 'npm:0.0.7']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.0.8', + { + packageLocation: + './.yarn/cache/mute-stream-npm-0.0.8-489a7d6c2b-315c40f463.zip/node_modules/mute-stream/', + packageDependencies: [['mute-stream', 'npm:0.0.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'mz', + [ + [ + 'npm:2.7.0', + { + packageLocation: + './.yarn/cache/mz-npm-2.7.0-ec3cef4ec2-063966dd8e.zip/node_modules/mz/', + packageDependencies: [ + ['mz', 'npm:2.7.0'], + ['any-promise', 'npm:1.3.0'], + ['object-assign', 'npm:4.1.1'], + ['thenify-all', 'npm:1.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nan', + [ + [ + 'npm:2.14.2', + { + packageLocation: + './.yarn/unplugged/nan-npm-2.14.2-e3ede8ce5d/node_modules/nan/', + packageDependencies: [ + ['nan', 'npm:2.14.2'], + ['node-gyp', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nanoclone', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/nanoclone-npm-0.2.1-972ee958a0-f624fe5198.zip/node_modules/nanoclone/', + packageDependencies: [['nanoclone', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nanoid', + [ + [ + 'npm:3.1.23', + { + packageLocation: + './.yarn/cache/nanoid-npm-3.1.23-5f6acb650d-e6dea1da5a.zip/node_modules/nanoid/', + packageDependencies: [['nanoid', 'npm:3.1.23']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nanomatch', + [ + [ + 'npm:1.2.13', + { + packageLocation: + './.yarn/cache/nanomatch-npm-1.2.13-bc9173dbe7-2e1440c570.zip/node_modules/nanomatch/', + packageDependencies: [ + ['nanomatch', 'npm:1.2.13'], + ['arr-diff', 'npm:4.0.0'], + ['array-unique', 'npm:0.3.2'], + ['define-property', 'npm:2.0.2'], + ['extend-shallow', 'npm:3.0.2'], + ['fragment-cache', 'npm:0.2.1'], + ['is-windows', 'npm:1.0.2'], + ['kind-of', 'npm:6.0.3'], + ['object.pick', 'npm:1.3.0'], + ['regex-not', 'npm:1.0.2'], + ['snapdragon', 'npm:0.8.2'], + ['to-regex', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'napi-build-utils', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-e4dfbec94d.zip/node_modules/napi-build-utils/', + packageDependencies: [['napi-build-utils', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'native-url', + [ + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/native-url-npm-0.3.1-3618d3c107-b2f86c0d05.zip/node_modules/native-url/', + packageDependencies: [ + ['native-url', 'npm:0.3.1'], + ['querystring', 'npm:0.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.3.4', + { + packageLocation: + './.yarn/cache/native-url-npm-0.3.4-a190c98bfe-26a3716a25.zip/node_modules/native-url/', + packageDependencies: [ + ['native-url', 'npm:0.3.4'], + ['querystring', 'npm:0.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'natural-compare', + [ + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-2daf93d9bb.zip/node_modules/natural-compare/', + packageDependencies: [['natural-compare', 'npm:1.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'negotiator', + [ + [ + 'npm:0.6.2', + { + packageLocation: + './.yarn/cache/negotiator-npm-0.6.2-ba538e167a-4b230bd15f.zip/node_modules/negotiator/', + packageDependencies: [['negotiator', 'npm:0.6.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'neo-async', + [ + [ + 'npm:2.6.1', + { + packageLocation: + './.yarn/cache/neo-async-npm-2.6.1-96bc443be6-b359ccaa5c.zip/node_modules/neo-async/', + packageDependencies: [['neo-async', 'npm:2.6.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.6.2', + { + packageLocation: + './.yarn/cache/neo-async-npm-2.6.2-75d6902586-34a8f53091.zip/node_modules/neo-async/', + packageDependencies: [['neo-async', 'npm:2.6.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'next', + [ + [ + 'npm:10.0.5', + { + packageLocation: + './.yarn/cache/next-npm-10.0.5-716eec629b-fa8a4c872b.zip/node_modules/next/', + packageDependencies: [['next', 'npm:10.0.5']], + linkType: 'SOFT', + }, + ], + [ + 'npm:9.4.2', + { + packageLocation: + './.yarn/cache/next-npm-9.4.2-4410e5c57d-17b910dbfe.zip/node_modules/next/', + packageDependencies: [['next', 'npm:9.4.2']], + linkType: 'SOFT', + }, + ], + [ + 'npm:9.5.1', + { + packageLocation: + './.yarn/cache/next-npm-9.5.1-e14f31e6e9-effa9056b8.zip/node_modules/next/', + packageDependencies: [['next', 'npm:9.5.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1', + { + packageLocation: + './.yarn/$$virtual/next-virtual-1f9bf2342f/0/cache/next-npm-9.5.1-e14f31e6e9-effa9056b8.zip/node_modules/next/', + packageDependencies: [ + [ + 'next', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1', + ], + [ + '@ampproject/toolbox-optimizer', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:2.5.14', + ], + ['@babel/code-frame', 'npm:7.8.3'], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/plugin-proposal-class-properties', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-proposal-numeric-separator', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/plugin-proposal-optional-chaining', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + ], + [ + '@babel/plugin-syntax-bigint', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-dynamic-import', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/plugin-transform-runtime', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/preset-env', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/preset-modules', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3', + ], + [ + '@babel/preset-react', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4', + ], + [ + '@babel/preset-typescript', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + ], + ['@babel/runtime', 'npm:7.9.6'], + ['@babel/types', 'npm:7.9.6'], + [ + '@next/react-dev-overlay', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1', + ], + [ + '@next/react-refresh-utils', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:9.5.1', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['ast-types', 'npm:0.13.2'], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['babel-plugin-transform-define', 'npm:2.0.0'], + [ + 'babel-plugin-transform-react-remove-prop-types', + 'npm:0.4.24', + ], + ['browserslist', 'npm:4.13.0'], + ['buffer', 'npm:5.6.0'], + ['cacache', 'npm:13.0.1'], + ['chokidar', 'npm:2.1.8'], + [ + 'css-loader', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:3.5.3', + ], + ['cssnano-simple', 'npm:1.0.5'], + ['find-cache-dir', 'npm:3.3.1'], + ['jest-worker', 'npm:24.9.0'], + ['loader-utils', 'npm:2.0.0'], + [ + 'mini-css-extract-plugin', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.8.0', + ], + ['mkdirp', 'npm:0.5.3'], + ['native-url', 'npm:0.3.4'], + ['neo-async', 'npm:2.6.1'], + ['node-html-parser', 'npm:1.2.20'], + ['pnp-webpack-plugin', 'npm:1.6.4'], + ['postcss', 'npm:7.0.32'], + ['process', 'npm:0.11.10'], + ['prop-types', 'npm:15.7.2'], + ['prop-types-exact', 'npm:1.2.0'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + ['react-refresh', 'npm:0.8.3'], + ['resolve-url-loader', 'npm:3.1.1'], + [ + 'sass-loader', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:8.0.2', + ], + ['schema-utils', 'npm:2.6.6'], + [ + 'style-loader', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:1.2.1', + ], + [ + 'styled-jsx', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + ], + [ + 'use-subscription', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1', + ], + ['watchpack', 'npm:2.0.0-beta.13'], + ['web-vitals', 'npm:0.2.1'], + ['webpack', 'npm:4.44.0'], + ['webpack-sources', 'npm:1.4.3'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + 'react-dom', + 'react', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:10.0.5', + { + packageLocation: + './.yarn/$$virtual/next-virtual-077ed4b3e6/0/cache/next-npm-10.0.5-716eec629b-fa8a4c872b.zip/node_modules/next/', + packageDependencies: [ + [ + 'next', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:10.0.5', + ], + [ + '@ampproject/toolbox-optimizer', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:2.7.1-alpha.0', + ], + ['@babel/runtime', 'npm:7.12.5'], + ['@hapi/accept', 'npm:5.0.1'], + ['@next/env', 'npm:10.0.5'], + ['@next/polyfill-module', 'npm:10.0.5'], + [ + '@next/react-dev-overlay', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + ], + [ + '@next/react-refresh-utils', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + ], + ['@opentelemetry/api', 'npm:0.14.0'], + ['@types/fibers', null], + ['@types/node-sass', null], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/sass', null], + ['ast-types', 'npm:0.13.2'], + ['babel-plugin-transform-define', 'npm:2.0.0'], + [ + 'babel-plugin-transform-react-remove-prop-types', + 'npm:0.4.24', + ], + ['browserslist', 'npm:4.14.6'], + ['buffer', 'npm:5.6.0'], + ['caniuse-lite', 'npm:1.0.30001228'], + ['chalk', 'npm:2.4.2'], + ['chokidar', 'npm:3.4.3'], + ['crypto-browserify', 'npm:3.12.0'], + [ + 'css-loader', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.3.0', + ], + ['cssnano-simple', 'npm:1.2.1'], + ['etag', 'npm:1.8.1'], + ['fibers', null], + ['find-cache-dir', 'npm:3.3.1'], + ['jest-worker', 'npm:24.9.0'], + ['loader-utils', 'npm:2.0.0'], + ['native-url', 'npm:0.3.4'], + ['node-fetch', 'npm:2.6.1'], + ['node-html-parser', 'npm:1.4.9'], + ['node-sass', null], + ['p-limit', 'npm:3.1.0'], + ['path-browserify', 'npm:1.0.1'], + ['pnp-webpack-plugin', 'npm:1.6.4'], + ['postcss', 'npm:8.1.7'], + ['process', 'npm:0.11.10'], + ['prop-types', 'npm:15.7.2'], + ['raw-body', 'npm:2.4.1'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + ['react-refresh', 'npm:0.8.3'], + ['resolve-url-loader', 'npm:3.1.2'], + ['sass', null], + [ + 'sass-loader', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + ], + ['schema-utils', 'npm:2.7.1'], + ['sharp', 'npm:0.26.3'], + ['stream-browserify', 'npm:3.0.0'], + [ + 'style-loader', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.2.1', + ], + [ + 'styled-jsx', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:3.3.2', + ], + [ + 'use-subscription', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.5.1', + ], + ['vm-browserify', 'npm:1.1.2'], + ['watchpack', 'npm:2.0.0-beta.13'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ['webpack-sources', 'npm:1.4.3'], + ], + packagePeers: [ + '@types/fibers', + '@types/node-sass', + '@types/react-dom', + '@types/react', + '@types/sass', + 'fibers', + 'node-sass', + 'react-dom', + 'react', + 'sass', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2', + { + packageLocation: + './.yarn/$$virtual/next-virtual-8aee01236f/0/cache/next-npm-9.4.2-4410e5c57d-17b910dbfe.zip/node_modules/next/', + packageDependencies: [ + [ + 'next', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2', + ], + [ + '@ampproject/toolbox-optimizer', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:2.3.1', + ], + ['@babel/code-frame', 'npm:7.8.3'], + ['@babel/core', 'npm:7.7.7'], + [ + '@babel/plugin-proposal-class-properties', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-proposal-nullish-coalescing-operator', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-proposal-numeric-separator', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-proposal-object-rest-spread', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/plugin-proposal-optional-chaining', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + ], + [ + '@babel/plugin-syntax-bigint', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-syntax-dynamic-import', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.8.3', + ], + [ + '@babel/plugin-transform-modules-commonjs', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/plugin-transform-runtime', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/preset-env', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.6', + ], + [ + '@babel/preset-modules', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:0.1.3', + ], + [ + '@babel/preset-react', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.4', + ], + [ + '@babel/preset-typescript', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:7.9.0', + ], + ['@babel/runtime', 'npm:7.9.6'], + ['@babel/types', 'npm:7.9.6'], + [ + '@next/react-dev-overlay', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2', + ], + [ + '@next/react-refresh-utils', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:9.4.2', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['babel-plugin-transform-define', 'npm:2.0.0'], + [ + 'babel-plugin-transform-react-remove-prop-types', + 'npm:0.4.24', + ], + ['browserslist', 'npm:4.12.0'], + ['cacache', 'npm:13.0.1'], + ['chokidar', 'npm:2.1.8'], + [ + 'css-loader', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.5.3', + ], + ['find-cache-dir', 'npm:3.3.1'], + [ + 'fork-ts-checker-webpack-plugin', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:3.1.1', + ], + ['jest-worker', 'npm:24.9.0'], + ['loader-utils', 'npm:2.0.0'], + [ + 'mini-css-extract-plugin', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:0.8.0', + ], + ['mkdirp', 'npm:0.5.3'], + ['native-url', 'npm:0.3.1'], + ['neo-async', 'npm:2.6.1'], + ['pnp-webpack-plugin', 'npm:1.6.4'], + ['postcss', 'npm:7.0.29'], + ['prop-types', 'npm:15.7.2'], + ['prop-types-exact', 'npm:1.2.0'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + ['react-refresh', 'npm:0.8.2'], + ['resolve-url-loader', 'npm:3.1.1'], + [ + 'sass-loader', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:8.0.2', + ], + ['schema-utils', 'npm:2.6.6'], + [ + 'style-loader', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:1.2.1', + ], + [ + 'styled-jsx', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + ], + [ + 'typescript', + 'patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e', + ], + [ + 'use-subscription', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1', + ], + ['watchpack', 'npm:2.0.0-beta.13'], + ['web-vitals', 'npm:0.2.1'], + ['webpack', 'npm:4.43.0'], + ['webpack-sources', 'npm:1.4.3'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + 'react-dom', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'next-tick', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/next-tick-npm-1.0.0-0c0dd4bec1-18db63c447.zip/node_modules/next-tick/', + packageDependencies: [['next-tick', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nice-try', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/nice-try-npm-1.0.5-963856b16f-330f190bf6.zip/node_modules/nice-try/', + packageDependencies: [['nice-try', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'no-case', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/no-case-npm-3.0.3-4918b64cc1-619e0bd00a.zip/node_modules/no-case/', + packageDependencies: [ + ['no-case', 'npm:3.0.3'], + ['lower-case', 'npm:2.0.1'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-abi', + [ + [ + 'npm:2.26.0', + { + packageLocation: + './.yarn/cache/node-abi-npm-2.26.0-3cef53dbb6-29c7ee7486.zip/node_modules/node-abi/', + packageDependencies: [ + ['node-abi', 'npm:2.26.0'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-addon-api', + [ + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/unplugged/node-addon-api-npm-3.2.0-061ff0dbab/node_modules/node-addon-api/', + packageDependencies: [ + ['node-addon-api', 'npm:3.2.0'], + ['node-gyp', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-cleanup', + [ + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/node-cleanup-npm-2.1.2-adfbc95778-696b6f832d.zip/node_modules/node-cleanup/', + packageDependencies: [['node-cleanup', 'npm:2.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-emoji', + [ + [ + 'npm:1.10.0', + { + packageLocation: + './.yarn/cache/node-emoji-npm-1.10.0-3bbb4a73cd-9c73cd0af0.zip/node_modules/node-emoji/', + packageDependencies: [ + ['node-emoji', 'npm:1.10.0'], + ['lodash.toarray', 'npm:4.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-fetch', + [ + [ + 'npm:1.7.3', + { + packageLocation: + './.yarn/cache/node-fetch-npm-1.7.3-eb8372f991-d04afb2e32.zip/node_modules/node-fetch/', + packageDependencies: [ + ['node-fetch', 'npm:1.7.3'], + ['encoding', 'npm:0.1.13'], + ['is-stream', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.6.0', + { + packageLocation: + './.yarn/cache/node-fetch-npm-2.6.0-29c7a53447-dd9f586a9f.zip/node_modules/node-fetch/', + packageDependencies: [['node-fetch', 'npm:2.6.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.6.1', + { + packageLocation: + './.yarn/cache/node-fetch-npm-2.6.1-46c670dbc1-cbb171635e.zip/node_modules/node-fetch/', + packageDependencies: [['node-fetch', 'npm:2.6.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-gyp', + [ + [ + 'npm:7.0.0', + { + packageLocation: + './.yarn/unplugged/node-gyp-npm-7.0.0-9ae0ecd334/node_modules/node-gyp/', + packageDependencies: [ + ['node-gyp', 'npm:7.0.0'], + ['env-paths', 'npm:2.2.0'], + ['glob', 'npm:7.1.6'], + ['graceful-fs', 'npm:4.2.4'], + ['nopt', 'npm:4.0.3'], + ['npmlog', 'npm:4.1.2'], + ['request', 'npm:2.88.2'], + ['rimraf', 'npm:2.7.1'], + ['semver', 'npm:7.3.2'], + ['tar', 'npm:6.0.2'], + ['which', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-gyp-build', + [ + [ + 'npm:3.7.0', + { + packageLocation: + './.yarn/cache/node-gyp-build-npm-3.7.0-1df68f8d43-61c7f2a9e4.zip/node_modules/node-gyp-build/', + packageDependencies: [['node-gyp-build', 'npm:3.7.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-html-parser', + [ + [ + 'npm:1.2.20', + { + packageLocation: + './.yarn/cache/node-html-parser-npm-1.2.20-aa7dedbb40-18ee6caf73.zip/node_modules/node-html-parser/', + packageDependencies: [ + ['node-html-parser', 'npm:1.2.20'], + ['he', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.4.9', + { + packageLocation: + './.yarn/cache/node-html-parser-npm-1.4.9-267030a0e0-deb013cdd3.zip/node_modules/node-html-parser/', + packageDependencies: [ + ['node-html-parser', 'npm:1.4.9'], + ['he', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-int64', + [ + [ + 'npm:0.4.0', + { + packageLocation: + './.yarn/cache/node-int64-npm-0.4.0-0dc04ec3b2-8fce4b82d4.zip/node_modules/node-int64/', + packageDependencies: [['node-int64', 'npm:0.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-libs-browser', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/node-libs-browser-npm-2.2.1-ffef534730-8da918a5ef.zip/node_modules/node-libs-browser/', + packageDependencies: [ + ['node-libs-browser', 'npm:2.2.1'], + ['assert', 'npm:1.5.0'], + ['browserify-zlib', 'npm:0.2.0'], + ['buffer', 'npm:4.9.2'], + ['console-browserify', 'npm:1.2.0'], + ['constants-browserify', 'npm:1.0.0'], + ['crypto-browserify', 'npm:3.12.0'], + ['domain-browser', 'npm:1.2.0'], + ['events', 'npm:3.2.0'], + ['https-browserify', 'npm:1.0.0'], + ['os-browserify', 'npm:0.3.0'], + ['path-browserify', 'npm:0.0.1'], + ['process', 'npm:0.11.10'], + ['punycode', 'npm:1.4.1'], + ['querystring-es3', 'npm:0.2.1'], + ['readable-stream', 'npm:2.3.7'], + ['stream-browserify', 'npm:2.0.2'], + ['stream-http', 'npm:2.8.3'], + ['string_decoder', 'npm:1.3.0'], + ['timers-browserify', 'npm:2.0.11'], + ['tty-browserify', 'npm:0.0.0'], + ['url', 'npm:0.11.0'], + ['util', 'npm:0.11.1'], + ['vm-browserify', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-modules-regexp', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/node-modules-regexp-npm-1.0.0-2f5f5ba9c6-90f928a1db.zip/node_modules/node-modules-regexp/', + packageDependencies: [['node-modules-regexp', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-notifier', + [ + [ + 'npm:7.0.2', + { + packageLocation: + './.yarn/unplugged/node-notifier-npm-7.0.2-2b8a968093/node_modules/node-notifier/', + packageDependencies: [ + ['node-notifier', 'npm:7.0.2'], + ['growly', 'npm:1.3.0'], + ['is-wsl', 'npm:2.2.0'], + ['semver', 'npm:7.3.2'], + ['shellwords', 'npm:0.1.1'], + ['uuid', 'npm:8.3.0'], + ['which', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.0.2', + { + packageLocation: + './.yarn/unplugged/node-notifier-npm-8.0.2-e8d89b5d6b/node_modules/node-notifier/', + packageDependencies: [ + ['node-notifier', 'npm:8.0.2'], + ['growly', 'npm:1.3.0'], + ['is-wsl', 'npm:2.2.0'], + ['semver', 'npm:7.3.2'], + ['shellwords', 'npm:0.1.1'], + ['uuid', 'npm:8.3.2'], + ['which', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node-releases', + [ + [ + 'npm:1.1.60', + { + packageLocation: + './.yarn/cache/node-releases-npm-1.1.60-2aa6cd442c-bed3480bd1.zip/node_modules/node-releases/', + packageDependencies: [['node-releases', 'npm:1.1.60']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.1.72', + { + packageLocation: + './.yarn/cache/node-releases-npm-1.1.72-662e905d8e-a9ded860ba.zip/node_modules/node-releases/', + packageDependencies: [['node-releases', 'npm:1.1.72']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'node.extend', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/node.extend-npm-2.0.2-91a85f1c30-750516f66b.zip/node_modules/node.extend/', + packageDependencies: [ + ['node.extend', 'npm:2.0.2'], + ['has', 'npm:1.0.3'], + ['is', 'npm:3.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nodemon', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/unplugged/nodemon-npm-2.0.4-6cfc557b1b/node_modules/nodemon/', + packageDependencies: [ + ['nodemon', 'npm:2.0.4'], + ['chokidar', 'npm:3.4.1'], + [ + 'debug', + 'virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6', + ], + ['ignore-by-default', 'npm:1.0.1'], + ['minimatch', 'npm:3.0.4'], + ['pstree.remy', 'npm:1.1.8'], + ['semver', 'npm:5.7.1'], + ['supports-color', 'npm:5.5.0'], + ['touch', 'npm:3.1.0'], + ['undefsafe', 'npm:2.0.3'], + ['update-notifier', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.7', + { + packageLocation: + './.yarn/unplugged/nodemon-npm-2.0.7-7b95e46511/node_modules/nodemon/', + packageDependencies: [ + ['nodemon', 'npm:2.0.7'], + ['chokidar', 'npm:3.4.1'], + [ + 'debug', + 'virtual:7b95e4651161f58fae67ad0e500093fe3efc1260126f9dd9f0cf96334b9e5c43c30afa86faf5d3c609740562b9985718bf9d1cf396b473e9cda8d4a60334e6e1#npm:3.2.6', + ], + ['ignore-by-default', 'npm:1.0.1'], + ['minimatch', 'npm:3.0.4'], + ['pstree.remy', 'npm:1.1.8'], + ['semver', 'npm:5.7.1'], + ['supports-color', 'npm:5.5.0'], + ['touch', 'npm:3.1.0'], + ['undefsafe', 'npm:2.0.3'], + ['update-notifier', 'npm:4.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'noop-logger', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/noop-logger-npm-0.1.1-c88441172d-353d31cd08.zip/node_modules/noop-logger/', + packageDependencies: [['noop-logger', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nopt', + [ + [ + 'npm:1.0.10', + { + packageLocation: + './.yarn/cache/nopt-npm-1.0.10-f3db192976-fb74743e70.zip/node_modules/nopt/', + packageDependencies: [ + ['nopt', 'npm:1.0.10'], + ['abbrev', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/nopt-npm-4.0.3-b35e68a869-bf7b8c15fd.zip/node_modules/nopt/', + packageDependencies: [ + ['nopt', 'npm:4.0.3'], + ['abbrev', 'npm:1.1.1'], + ['osenv', 'npm:0.1.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'normalize-html-whitespace', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/normalize-html-whitespace-npm-1.0.0-6c5b20a97a-900cd749dc.zip/node_modules/normalize-html-whitespace/', + packageDependencies: [ + ['normalize-html-whitespace', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'normalize-package-data', + [ + [ + 'npm:2.5.0', + { + packageLocation: + './.yarn/cache/normalize-package-data-npm-2.5.0-af0345deed-97d4d6b061.zip/node_modules/normalize-package-data/', + packageDependencies: [ + ['normalize-package-data', 'npm:2.5.0'], + ['hosted-git-info', 'npm:2.8.8'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ['semver', 'npm:5.7.1'], + ['validate-npm-package-license', 'npm:3.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'normalize-path', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/normalize-path-npm-2.1.1-65c4766716-9eb82b2f6a.zip/node_modules/normalize-path/', + packageDependencies: [ + ['normalize-path', 'npm:2.1.1'], + ['remove-trailing-separator', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-215a701b47.zip/node_modules/normalize-path/', + packageDependencies: [['normalize-path', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'normalize-range', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/normalize-range-npm-0.1.2-bec5e259e2-bca997d800.zip/node_modules/normalize-range/', + packageDependencies: [['normalize-range', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'normalize-url', + [ + [ + 'npm:1.9.1', + { + packageLocation: + './.yarn/cache/normalize-url-npm-1.9.1-41b1f4c9f2-f4ebdd85d7.zip/node_modules/normalize-url/', + packageDependencies: [ + ['normalize-url', 'npm:1.9.1'], + ['object-assign', 'npm:4.1.1'], + ['prepend-http', 'npm:1.0.4'], + ['query-string', 'npm:4.3.4'], + ['sort-keys', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/normalize-url-npm-2.0.1-4f204748d2-a3491f4401.zip/node_modules/normalize-url/', + packageDependencies: [ + ['normalize-url', 'npm:2.0.1'], + ['prepend-http', 'npm:2.0.0'], + ['query-string', 'npm:5.1.1'], + ['sort-keys', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/normalize-url-npm-3.3.0-f91cbdff7c-5704115f74.zip/node_modules/normalize-url/', + packageDependencies: [['normalize-url', 'npm:3.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.5.0', + { + packageLocation: + './.yarn/cache/normalize-url-npm-4.5.0-14a0c5430f-09794941db.zip/node_modules/normalize-url/', + packageDependencies: [['normalize-url', 'npm:4.5.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'normalize.css', + [ + [ + 'npm:8.0.1', + { + packageLocation: + './.yarn/cache/normalize.css-npm-8.0.1-6124fb39b6-de6c137a14.zip/node_modules/normalize.css/', + packageDependencies: [['normalize.css', 'npm:8.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'npm-api', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/npm-api-npm-1.0.0-a12a532ed5-0e6f738991.zip/node_modules/npm-api/', + packageDependencies: [ + ['npm-api', 'npm:1.0.0'], + ['JSONStream', 'npm:1.3.5'], + ['clone-deep', 'npm:4.0.1'], + ['download-stats', 'npm:0.3.4'], + ['moment', 'npm:2.27.0'], + ['paged-request', 'npm:2.0.1'], + ['request', 'npm:2.88.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'npm-conf', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/npm-conf-npm-1.1.3-e2833445bb-e9e092ed13.zip/node_modules/npm-conf/', + packageDependencies: [ + ['npm-conf', 'npm:1.1.3'], + ['config-chain', 'npm:1.1.12'], + ['pify', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'npm-keyword', + [ + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/npm-keyword-npm-5.0.0-d87cf446aa-0c70dd9abb.zip/node_modules/npm-keyword/', + packageDependencies: [ + ['npm-keyword', 'npm:5.0.0'], + ['got', 'npm:7.1.0'], + ['registry-url', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'npm-run-path', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/npm-run-path-npm-2.0.2-96c8b48857-0a1bc9a1e0.zip/node_modules/npm-run-path/', + packageDependencies: [ + ['npm-run-path', 'npm:2.0.2'], + ['path-key', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/npm-run-path-npm-4.0.1-7aebd8bab3-058fd06880.zip/node_modules/npm-run-path/', + packageDependencies: [ + ['npm-run-path', 'npm:4.0.1'], + ['path-key', 'npm:3.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'npmlog', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/npmlog-npm-2.0.4-17bff308ca-5d7eb51c09.zip/node_modules/npmlog/', + packageDependencies: [ + ['npmlog', 'npm:2.0.4'], + ['ansi', 'npm:0.3.1'], + ['are-we-there-yet', 'npm:1.1.5'], + ['gauge', 'npm:1.2.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.2', + { + packageLocation: + './.yarn/cache/npmlog-npm-4.1.2-cfb32957b5-0cd63f127c.zip/node_modules/npmlog/', + packageDependencies: [ + ['npmlog', 'npm:4.1.2'], + ['are-we-there-yet', 'npm:1.1.5'], + ['console-control-strings', 'npm:1.1.0'], + ['gauge', 'npm:2.7.4'], + ['set-blocking', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nth-check', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/nth-check-npm-1.0.2-3f6d0d22eb-88a58b8b62.zip/node_modules/nth-check/', + packageDependencies: [ + ['nth-check', 'npm:1.0.2'], + ['boolbase', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nullthrows', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/nullthrows-npm-1.1.1-3d1f817134-47afb80d97.zip/node_modules/nullthrows/', + packageDependencies: [['nullthrows', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'num2fraction', + [ + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/num2fraction-npm-1.2.2-dc0a0a80ad-c9bb3e7c6d.zip/node_modules/num2fraction/', + packageDependencies: [['num2fraction', 'npm:1.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'number-is-nan', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/number-is-nan-npm-1.0.1-845325a0fe-42251b2653.zip/node_modules/number-is-nan/', + packageDependencies: [['number-is-nan', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'nwsapi', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/nwsapi-npm-2.2.0-8f05590043-fb0f05113a.zip/node_modules/nwsapi/', + packageDependencies: [['nwsapi', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'oauth-sign', + [ + [ + 'npm:0.9.0', + { + packageLocation: + './.yarn/cache/oauth-sign-npm-0.9.0-7aa9422221-af1ab60297.zip/node_modules/oauth-sign/', + packageDependencies: [['oauth-sign', 'npm:0.9.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object-assign', + [ + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-66cf021898.zip/node_modules/object-assign/', + packageDependencies: [['object-assign', 'npm:4.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object-copy', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/object-copy-npm-0.1.0-e229d02f2b-d91d46e542.zip/node_modules/object-copy/', + packageDependencies: [ + ['object-copy', 'npm:0.1.0'], + ['copy-descriptor', 'npm:0.1.1'], + ['define-property', 'npm:0.2.5'], + ['kind-of', 'npm:3.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object-inspect', + [ + [ + 'npm:1.8.0', + { + packageLocation: + './.yarn/cache/object-inspect-npm-1.8.0-81c2d7cdce-4da23a188b.zip/node_modules/object-inspect/', + packageDependencies: [['object-inspect', 'npm:1.8.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object-keys', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/object-keys-npm-1.1.1-1bf2f1be93-30d72d768b.zip/node_modules/object-keys/', + packageDependencies: [['object-keys', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object-path', + [ + [ + 'npm:0.11.4', + { + packageLocation: + './.yarn/cache/object-path-npm-0.11.4-d29959e0d1-5e3d4690d0.zip/node_modules/object-path/', + packageDependencies: [['object-path', 'npm:0.11.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object-visit', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/object-visit-npm-1.0.1-c5c9057c24-8666727dbf.zip/node_modules/object-visit/', + packageDependencies: [ + ['object-visit', 'npm:1.0.1'], + ['isobject', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object.assign', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/object.assign-npm-4.1.0-2a284b2bf7-92e20891dd.zip/node_modules/object.assign/', + packageDependencies: [ + ['object.assign', 'npm:4.1.0'], + ['define-properties', 'npm:1.1.3'], + ['function-bind', 'npm:1.1.1'], + ['has-symbols', 'npm:1.0.1'], + ['object-keys', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object.getownpropertydescriptors', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/object.getownpropertydescriptors-npm-2.1.0-a6ef3a16c2-c33dcc3061.zip/node_modules/object.getownpropertydescriptors/', + packageDependencies: [ + ['object.getownpropertydescriptors', 'npm:2.1.0'], + ['define-properties', 'npm:1.1.3'], + ['es-abstract', 'npm:1.17.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object.pick', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/object.pick-npm-1.3.0-dad8eae8fb-e22d555d3b.zip/node_modules/object.pick/', + packageDependencies: [ + ['object.pick', 'npm:1.3.0'], + ['isobject', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'object.values', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/object.values-npm-1.1.1-f4f0df6a55-33e99ceb5c.zip/node_modules/object.values/', + packageDependencies: [ + ['object.values', 'npm:1.1.1'], + ['define-properties', 'npm:1.1.3'], + ['es-abstract', 'npm:1.17.6'], + ['function-bind', 'npm:1.1.1'], + ['has', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'octokit-pagination-methods', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/octokit-pagination-methods-npm-1.1.0-ce2bd023d6-c3b42406a1.zip/node_modules/octokit-pagination-methods/', + packageDependencies: [ + ['octokit-pagination-methods', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'on-finished', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/on-finished-npm-2.3.0-4ce92f72c6-362e646082.zip/node_modules/on-finished/', + packageDependencies: [ + ['on-finished', 'npm:2.3.0'], + ['ee-first', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'once', + [ + [ + 'npm:1.3.3', + { + packageLocation: + './.yarn/cache/once-npm-1.3.3-595f0882a4-c68086bafe.zip/node_modules/once/', + packageDependencies: [ + ['once', 'npm:1.3.3'], + ['wrappy', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.4.0', + { + packageLocation: + './.yarn/cache/once-npm-1.4.0-ccf03ef07a-57afc24653.zip/node_modules/once/', + packageDependencies: [ + ['once', 'npm:1.4.0'], + ['wrappy', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'onetime', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/onetime-npm-1.1.0-cd138fd743-ddf13ecba8.zip/node_modules/onetime/', + packageDependencies: [['onetime', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/onetime-npm-2.0.1-6c39ecc911-a4f56fdd3a.zip/node_modules/onetime/', + packageDependencies: [ + ['onetime', 'npm:2.0.1'], + ['mimic-fn', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/onetime-npm-5.1.0-8d9e23c1e0-1781c3cf88.zip/node_modules/onetime/', + packageDependencies: [ + ['onetime', 'npm:5.1.0'], + ['mimic-fn', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'open', + [ + [ + 'npm:6.4.0', + { + packageLocation: + './.yarn/cache/open-npm-6.4.0-d2020c939f-53044871e7.zip/node_modules/open/', + packageDependencies: [ + ['open', 'npm:6.4.0'], + ['is-wsl', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'optimism', + [ + [ + 'npm:0.12.1', + { + packageLocation: + './.yarn/cache/optimism-npm-0.12.1-ff16b66c13-3e2a62ca68.zip/node_modules/optimism/', + packageDependencies: [ + ['optimism', 'npm:0.12.1'], + ['@wry/context', 'npm:0.5.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'optionator', + [ + [ + 'npm:0.8.3', + { + packageLocation: + './.yarn/cache/optionator-npm-0.8.3-bc555bc5b7-a5cdced2c9.zip/node_modules/optionator/', + packageDependencies: [ + ['optionator', 'npm:0.8.3'], + ['deep-is', 'npm:0.1.3'], + ['fast-levenshtein', 'npm:2.0.6'], + ['levn', 'npm:0.3.0'], + ['prelude-ls', 'npm:1.1.2'], + ['type-check', 'npm:0.3.2'], + ['word-wrap', 'npm:1.2.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ora', + [ + [ + 'npm:4.0.5', + { + packageLocation: + './.yarn/cache/ora-npm-4.0.5-b823f9f73c-f9910d5889.zip/node_modules/ora/', + packageDependencies: [ + ['ora', 'npm:4.0.5'], + ['chalk', 'npm:3.0.0'], + ['cli-cursor', 'npm:3.1.0'], + ['cli-spinners', 'npm:2.4.0'], + ['is-interactive', 'npm:1.0.0'], + ['log-symbols', 'npm:3.0.0'], + ['mute-stream', 'npm:0.0.8'], + ['strip-ansi', 'npm:6.0.0'], + ['wcwidth', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'os-browserify', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/os-browserify-npm-0.3.0-cbc91c79a5-f547c03881.zip/node_modules/os-browserify/', + packageDependencies: [['os-browserify', 'npm:0.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'os-homedir', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/os-homedir-npm-1.0.2-01f82faa88-725256246b.zip/node_modules/os-homedir/', + packageDependencies: [['os-homedir', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'os-name', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/os-name-npm-3.1.0-b5e3fb36cd-b4e5d61010.zip/node_modules/os-name/', + packageDependencies: [ + ['os-name', 'npm:3.1.0'], + ['macos-release', 'npm:2.4.1'], + ['windows-release', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'os-shim', + [ + [ + 'npm:0.1.3', + { + packageLocation: + './.yarn/cache/os-shim-npm-0.1.3-03d492dbf1-47bee41866.zip/node_modules/os-shim/', + packageDependencies: [['os-shim', 'npm:0.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'os-tmpdir', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/os-tmpdir-npm-1.0.2-e305b0689b-ca158a3c2e.zip/node_modules/os-tmpdir/', + packageDependencies: [['os-tmpdir', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'osenv', + [ + [ + 'npm:0.1.5', + { + packageLocation: + './.yarn/cache/osenv-npm-0.1.5-435137eb60-1c7462808c.zip/node_modules/osenv/', + packageDependencies: [ + ['osenv', 'npm:0.1.5'], + ['os-homedir', 'npm:1.0.2'], + ['os-tmpdir', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'override-require', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/override-require-npm-1.1.1-60cb623355-7ce873a0ae.zip/node_modules/override-require/', + packageDependencies: [['override-require', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-any', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/p-any-npm-2.1.0-62b70e163a-69c10711e5.zip/node_modules/p-any/', + packageDependencies: [ + ['p-any', 'npm:2.1.0'], + ['p-cancelable', 'npm:2.0.0'], + ['p-some', 'npm:4.1.0'], + ['type-fest', 'npm:0.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-cancelable', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/p-cancelable-npm-0.3.0-abade43096-e2435533c1.zip/node_modules/p-cancelable/', + packageDependencies: [['p-cancelable', 'npm:0.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.4.1', + { + packageLocation: + './.yarn/cache/p-cancelable-npm-0.4.1-c97cbea85e-a478b54ce0.zip/node_modules/p-cancelable/', + packageDependencies: [['p-cancelable', 'npm:0.4.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/p-cancelable-npm-1.1.0-d147d5996f-01fdd9ac31.zip/node_modules/p-cancelable/', + packageDependencies: [['p-cancelable', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/p-cancelable-npm-2.0.0-5f988ffca4-966065f056.zip/node_modules/p-cancelable/', + packageDependencies: [['p-cancelable', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-defer', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/p-defer-npm-1.0.0-4dfd0013f5-ffaabb1613.zip/node_modules/p-defer/', + packageDependencies: [['p-defer', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-each-series', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/p-each-series-npm-2.1.0-345e6f9034-cc7516dbb8.zip/node_modules/p-each-series/', + packageDependencies: [['p-each-series', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-finally', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/p-finally-npm-1.0.0-35fbaa57c6-01f49b2d9c.zip/node_modules/p-finally/', + packageDependencies: [['p-finally', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-is-promise', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/p-is-promise-npm-1.1.0-854b305797-c6e06c4693.zip/node_modules/p-is-promise/', + packageDependencies: [['p-is-promise', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/p-is-promise-npm-2.1.0-47a48ac6a0-4a15137df9.zip/node_modules/p-is-promise/', + packageDependencies: [['p-is-promise', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-limit', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/p-limit-npm-1.3.0-fdb471d864-579cbd3d6c.zip/node_modules/p-limit/', + packageDependencies: [ + ['p-limit', 'npm:1.3.0'], + ['p-try', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/p-limit-npm-2.3.0-94a0310039-5f20492a25.zip/node_modules/p-limit/', + packageDependencies: [ + ['p-limit', 'npm:2.3.0'], + ['p-try', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/p-limit-npm-3.0.2-cf6c70eb96-1eb23d6ea7.zip/node_modules/p-limit/', + packageDependencies: [ + ['p-limit', 'npm:3.0.2'], + ['p-try', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-5301db6a34.zip/node_modules/p-limit/', + packageDependencies: [ + ['p-limit', 'npm:3.1.0'], + ['yocto-queue', 'npm:0.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-locate', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/p-locate-npm-2.0.0-3a2ee263dd-b6dabbd855.zip/node_modules/p-locate/', + packageDependencies: [ + ['p-locate', 'npm:2.0.0'], + ['p-limit', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/p-locate-npm-3.0.0-74de74f952-3ee9e3ed0b.zip/node_modules/p-locate/', + packageDependencies: [ + ['p-locate', 'npm:3.0.0'], + ['p-limit', 'npm:2.3.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/p-locate-npm-4.1.0-eec6872537-57f9abef0b.zip/node_modules/p-locate/', + packageDependencies: [ + ['p-locate', 'npm:4.1.0'], + ['p-limit', 'npm:2.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-map', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/p-map-npm-2.1.0-d9e865dc7c-8557e841ed.zip/node_modules/p-map/', + packageDependencies: [['p-map', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/p-map-npm-3.0.0-e4f17c4167-f7ce4709f4.zip/node_modules/p-map/', + packageDependencies: [ + ['p-map', 'npm:3.0.0'], + ['aggregate-error', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-some', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/p-some-npm-4.1.0-a80a4c3d32-bf8f094e05.zip/node_modules/p-some/', + packageDependencies: [ + ['p-some', 'npm:4.1.0'], + ['aggregate-error', 'npm:3.0.1'], + ['p-cancelable', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-timeout', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/p-timeout-npm-1.2.1-2b480cb517-753ba3cf21.zip/node_modules/p-timeout/', + packageDependencies: [ + ['p-timeout', 'npm:1.2.1'], + ['p-finally', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/p-timeout-npm-2.0.1-cd74d88327-651609ddc7.zip/node_modules/p-timeout/', + packageDependencies: [ + ['p-timeout', 'npm:2.0.1'], + ['p-finally', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'p-try', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/p-try-npm-1.0.0-7373139e40-85739d77b3.zip/node_modules/p-try/', + packageDependencies: [['p-try', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/p-try-npm-2.2.0-e0390dbaf8-20983f3765.zip/node_modules/p-try/', + packageDependencies: [['p-try', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'package-json', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/package-json-npm-4.0.1-c058f67fbc-9d9be52897.zip/node_modules/package-json/', + packageDependencies: [ + ['package-json', 'npm:4.0.1'], + ['got', 'npm:6.7.1'], + ['registry-auth-token', 'npm:3.4.0'], + ['registry-url', 'npm:3.1.0'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/package-json-npm-5.0.0-edcd1f3507-07f36af63f.zip/node_modules/package-json/', + packageDependencies: [ + ['package-json', 'npm:5.0.0'], + ['got', 'npm:8.3.2'], + ['registry-auth-token', 'npm:3.4.0'], + ['registry-url', 'npm:3.1.0'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.5.0', + { + packageLocation: + './.yarn/cache/package-json-npm-6.5.0-30e58237bb-3023e318de.zip/node_modules/package-json/', + packageDependencies: [ + ['package-json', 'npm:6.5.0'], + ['got', 'npm:9.6.0'], + ['registry-auth-token', 'npm:4.2.0'], + ['registry-url', 'npm:5.1.0'], + ['semver', 'npm:6.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pad-component', + [ + [ + 'npm:0.0.1', + { + packageLocation: + './.yarn/cache/pad-component-npm-0.0.1-96c929da6f-6d5450f07f.zip/node_modules/pad-component/', + packageDependencies: [['pad-component', 'npm:0.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'paged-request', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/paged-request-npm-2.0.1-963829efc3-cee0b24630.zip/node_modules/paged-request/', + packageDependencies: [ + ['paged-request', 'npm:2.0.1'], + ['axios', 'npm:0.18.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pako', + [ + [ + 'npm:1.0.11', + { + packageLocation: + './.yarn/cache/pako-npm-1.0.11-b8f1b69d3e-71c60150b6.zip/node_modules/pako/', + packageDependencies: [['pako', 'npm:1.0.11']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parallel-transform', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/parallel-transform-npm-1.2.0-4985a87bcf-65170af2e7.zip/node_modules/parallel-transform/', + packageDependencies: [ + ['parallel-transform', 'npm:1.2.0'], + ['cyclist', 'npm:1.0.1'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'param-case', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/param-case-npm-3.0.3-ab80ea2ba6-ef57facfaf.zip/node_modules/param-case/', + packageDependencies: [ + ['param-case', 'npm:3.0.3'], + ['dot-case', 'npm:3.0.3'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parent-module', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/parent-module-npm-1.0.1-1fae11b095-58714b9699.zip/node_modules/parent-module/', + packageDependencies: [ + ['parent-module', 'npm:1.0.1'], + ['callsites', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-asn1', + [ + [ + 'npm:5.1.5', + { + packageLocation: + './.yarn/cache/parse-asn1-npm-5.1.5-6a9e9ce93e-7c76cbaf48.zip/node_modules/parse-asn1/', + packageDependencies: [ + ['parse-asn1', 'npm:5.1.5'], + ['asn1.js', 'npm:4.10.1'], + ['browserify-aes', 'npm:1.2.0'], + ['create-hash', 'npm:1.2.0'], + ['evp_bytestokey', 'npm:1.0.3'], + ['pbkdf2', 'npm:3.1.1'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-diff', + [ + [ + 'npm:0.7.1', + { + packageLocation: + './.yarn/cache/parse-diff-npm-0.7.1-4863d63834-fe1d259228.zip/node_modules/parse-diff/', + packageDependencies: [['parse-diff', 'npm:0.7.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-entities', + [ + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/parse-entities-npm-1.2.2-6be249f6ff-66fb7cb7c8.zip/node_modules/parse-entities/', + packageDependencies: [ + ['parse-entities', 'npm:1.2.2'], + ['character-entities', 'npm:1.2.4'], + ['character-entities-legacy', 'npm:1.1.4'], + ['character-reference-invalid', 'npm:1.1.4'], + ['is-alphanumerical', 'npm:1.0.4'], + ['is-decimal', 'npm:1.0.4'], + ['is-hexadecimal', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/parse-entities-npm-2.0.0-b7b4f46ff6-6a9213216b.zip/node_modules/parse-entities/', + packageDependencies: [ + ['parse-entities', 'npm:2.0.0'], + ['character-entities', 'npm:1.2.4'], + ['character-entities-legacy', 'npm:1.1.4'], + ['character-reference-invalid', 'npm:1.1.4'], + ['is-alphanumerical', 'npm:1.0.4'], + ['is-decimal', 'npm:1.0.4'], + ['is-hexadecimal', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-filepath', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/parse-filepath-npm-1.0.2-7e399b862a-e9843598f4.zip/node_modules/parse-filepath/', + packageDependencies: [ + ['parse-filepath', 'npm:1.0.2'], + ['is-absolute', 'npm:1.0.0'], + ['map-cache', 'npm:0.2.2'], + ['path-root', 'npm:0.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-git-config', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/parse-git-config-npm-2.0.3-20d0a2cb9f-a385d72bb0.zip/node_modules/parse-git-config/', + packageDependencies: [ + ['parse-git-config', 'npm:2.0.3'], + ['expand-tilde', 'npm:2.0.2'], + ['git-config-path', 'npm:1.0.1'], + ['ini', 'npm:1.3.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-github-url', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/parse-github-url-npm-1.0.2-290c32ecbc-60fa1f025e.zip/node_modules/parse-github-url/', + packageDependencies: [['parse-github-url', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-help', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/parse-help-npm-1.0.0-646f92e56e-498b9c3555.zip/node_modules/parse-help/', + packageDependencies: [ + ['parse-help', 'npm:1.0.0'], + ['execall', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-json', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/parse-json-npm-2.2.0-f7c91e74a7-920582196a.zip/node_modules/parse-json/', + packageDependencies: [ + ['parse-json', 'npm:2.2.0'], + ['error-ex', 'npm:1.3.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/parse-json-npm-4.0.0-a6f7771010-fa9d23708f.zip/node_modules/parse-json/', + packageDependencies: [ + ['parse-json', 'npm:4.0.0'], + ['error-ex', 'npm:1.3.2'], + ['json-parse-better-errors', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/parse-json-npm-5.0.1-84159e1d7f-051a5ebaed.zip/node_modules/parse-json/', + packageDependencies: [ + ['parse-json', 'npm:5.0.1'], + ['@babel/code-frame', 'npm:7.10.4'], + ['error-ex', 'npm:1.3.2'], + ['json-parse-better-errors', 'npm:1.0.2'], + ['lines-and-columns', 'npm:1.1.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-link-header', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/parse-link-header-npm-1.0.1-d97d946e1f-c69a17e05e.zip/node_modules/parse-link-header/', + packageDependencies: [ + ['parse-link-header', 'npm:1.0.1'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse-passwd', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/parse-passwd-npm-1.0.0-ace6effa1d-e196edc373.zip/node_modules/parse-passwd/', + packageDependencies: [['parse-passwd', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parse5', + [ + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/parse5-npm-5.1.1-8e63d82cff-fad72ff501.zip/node_modules/parse5/', + packageDependencies: [['parse5', 'npm:5.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.1', + { + packageLocation: + './.yarn/cache/parse5-npm-6.0.1-70a35a494a-e312014edd.zip/node_modules/parse5/', + packageDependencies: [['parse5', 'npm:6.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'parseurl', + [ + [ + 'npm:1.3.3', + { + packageLocation: + './.yarn/cache/parseurl-npm-1.3.3-1542397e00-52c9e86cb5.zip/node_modules/parseurl/', + packageDependencies: [['parseurl', 'npm:1.3.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pascal-case', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/pascal-case-npm-3.1.1-1341da3441-56f66aea7f.zip/node_modules/pascal-case/', + packageDependencies: [ + ['pascal-case', 'npm:3.1.1'], + ['no-case', 'npm:3.0.3'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pascalcase', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/pascalcase-npm-0.1.1-d04964fcda-268a9dbf9c.zip/node_modules/pascalcase/', + packageDependencies: [['pascalcase', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'passwd-user', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/passwd-user-npm-3.0.0-3957b0554b-05f42ec691.zip/node_modules/passwd-user/', + packageDependencies: [ + ['passwd-user', 'npm:3.0.0'], + ['execa', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path', + [ + [ + 'npm:0.12.7', + { + packageLocation: + './.yarn/cache/path-npm-0.12.7-bddabe2e86-0e2d3342ca.zip/node_modules/path/', + packageDependencies: [ + ['path', 'npm:0.12.7'], + ['process', 'npm:0.11.10'], + ['util', 'npm:0.10.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-browserify', + [ + [ + 'npm:0.0.1', + { + packageLocation: + './.yarn/cache/path-browserify-npm-0.0.1-bb8b2a97b1-b7be4bcc03.zip/node_modules/path-browserify/', + packageDependencies: [['path-browserify', 'npm:0.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/path-browserify-npm-1.0.1-f975d99a99-45bb738917.zip/node_modules/path-browserify/', + packageDependencies: [['path-browserify', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-dirname', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/path-dirname-npm-1.0.2-d158cba006-4af73745fd.zip/node_modules/path-dirname/', + packageDependencies: [['path-dirname', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-exists', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/path-exists-npm-2.1.0-be4aa2cccc-71664885c5.zip/node_modules/path-exists/', + packageDependencies: [ + ['path-exists', 'npm:2.1.0'], + ['pinkie-promise', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/path-exists-npm-3.0.0-e80371aa68-09683e92ba.zip/node_modules/path-exists/', + packageDependencies: [['path-exists', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-6ab15000c5.zip/node_modules/path-exists/', + packageDependencies: [['path-exists', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-is-absolute', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-907e1e3e6a.zip/node_modules/path-is-absolute/', + packageDependencies: [['path-is-absolute', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-is-inside', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/path-is-inside-npm-1.0.2-7dd0711668-9c1841199d.zip/node_modules/path-is-inside/', + packageDependencies: [['path-is-inside', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-key', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/path-key-npm-2.0.1-b1a971833d-7dc807a2ba.zip/node_modules/path-key/', + packageDependencies: [['path-key', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/path-key-npm-3.1.1-0e66ea8321-e44aa3ca9f.zip/node_modules/path-key/', + packageDependencies: [['path-key', 'npm:3.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-parse', + [ + [ + 'npm:1.0.6', + { + packageLocation: + './.yarn/cache/path-parse-npm-1.0.6-4a4c90546c-2eee4b93fb.zip/node_modules/path-parse/', + packageDependencies: [['path-parse', 'npm:1.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-root', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/path-root-npm-0.1.1-624088cb93-ccf11d9c9b.zip/node_modules/path-root/', + packageDependencies: [ + ['path-root', 'npm:0.1.1'], + ['path-root-regex', 'npm:0.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-root-regex', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/path-root-regex-npm-0.1.2-14181162e0-f301f42475.zip/node_modules/path-root-regex/', + packageDependencies: [['path-root-regex', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-to-regexp', + [ + [ + 'npm:0.1.7', + { + packageLocation: + './.yarn/cache/path-to-regexp-npm-0.1.7-2605347373-342fdb0ca4.zip/node_modules/path-to-regexp/', + packageDependencies: [['path-to-regexp', 'npm:0.1.7']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'path-type', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/path-type-npm-1.1.0-3949afd6c1-c6ac7d4c7d.zip/node_modules/path-type/', + packageDependencies: [ + ['path-type', 'npm:1.1.0'], + ['graceful-fs', 'npm:4.2.4'], + ['pify', 'npm:2.3.0'], + ['pinkie-promise', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/path-type-npm-3.0.0-252361a0eb-db700bfc22.zip/node_modules/path-type/', + packageDependencies: [ + ['path-type', 'npm:3.0.0'], + ['pify', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/path-type-npm-4.0.0-10d47fc86a-ef5835f2eb.zip/node_modules/path-type/', + packageDependencies: [['path-type', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pbkdf2', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/pbkdf2-npm-3.1.1-bd4801f9ae-780dd6d50e.zip/node_modules/pbkdf2/', + packageDependencies: [ + ['pbkdf2', 'npm:3.1.1'], + ['create-hash', 'npm:1.2.0'], + ['create-hmac', 'npm:1.1.7'], + ['ripemd160', 'npm:2.0.2'], + ['safe-buffer', 'npm:5.1.2'], + ['sha.js', 'npm:2.4.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'performance-now', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/performance-now-npm-2.1.0-45e3ce7e49-bb4ebed0b0.zip/node_modules/performance-now/', + packageDependencies: [['performance-now', 'npm:2.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'picomatch', + [ + [ + 'npm:2.2.2', + { + packageLocation: + './.yarn/cache/picomatch-npm-2.2.2-1ce736a913-20fa75e0a5.zip/node_modules/picomatch/', + packageDependencies: [['picomatch', 'npm:2.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pify', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/pify-npm-2.3.0-8b63310934-d5758aa570.zip/node_modules/pify/', + packageDependencies: [['pify', 'npm:2.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/pify-npm-3.0.0-679ee405c8-18af2b2914.zip/node_modules/pify/', + packageDependencies: [['pify', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/pify-npm-4.0.1-062756097b-786486a8c9.zip/node_modules/pify/', + packageDependencies: [['pify', 'npm:4.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pinkie', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/pinkie-npm-2.0.4-cffce4fb09-2cb484c9da.zip/node_modules/pinkie/', + packageDependencies: [['pinkie', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pinkie-promise', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/pinkie-promise-npm-2.0.1-095439b8c5-1e32e05ffd.zip/node_modules/pinkie-promise/', + packageDependencies: [ + ['pinkie-promise', 'npm:2.0.1'], + ['pinkie', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pinpoint', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/pinpoint-npm-1.1.0-a6c03f2e6f-8e608a87b4.zip/node_modules/pinpoint/', + packageDependencies: [['pinpoint', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pirates', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/pirates-npm-4.0.1-377058e8fc-21604008c3.zip/node_modules/pirates/', + packageDependencies: [ + ['pirates', 'npm:4.0.1'], + ['node-modules-regexp', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pkg-dir', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/pkg-dir-npm-3.0.0-16d8d93783-f29a7d0134.zip/node_modules/pkg-dir/', + packageDependencies: [ + ['pkg-dir', 'npm:3.0.0'], + ['find-up', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/pkg-dir-npm-4.2.0-2b5d0a8d32-1956ebf3cf.zip/node_modules/pkg-dir/', + packageDependencies: [ + ['pkg-dir', 'npm:4.2.0'], + ['find-up', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pkg-up', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/pkg-up-npm-2.0.0-d011ba70a4-0a8fcbebf0.zip/node_modules/pkg-up/', + packageDependencies: [ + ['pkg-up', 'npm:2.0.0'], + ['find-up', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'platform', + [ + [ + 'npm:1.3.3', + { + packageLocation: + './.yarn/cache/platform-npm-1.3.3-8ff4427764-5687db8747.zip/node_modules/platform/', + packageDependencies: [['platform', 'npm:1.3.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.3.6', + { + packageLocation: + './.yarn/cache/platform-npm-1.3.6-8c3cef9352-d4d10d5a55.zip/node_modules/platform/', + packageDependencies: [['platform', 'npm:1.3.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pluralize', + [ + [ + 'npm:7.0.0', + { + packageLocation: + './.yarn/cache/pluralize-npm-7.0.0-5e0212129c-d35d8aeda1.zip/node_modules/pluralize/', + packageDependencies: [['pluralize', 'npm:7.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pnp-webpack-plugin', + [ + [ + 'npm:1.6.4', + { + packageLocation: + './.yarn/cache/pnp-webpack-plugin-npm-1.6.4-c497046afc-39a484182f.zip/node_modules/pnp-webpack-plugin/', + packageDependencies: [ + ['pnp-webpack-plugin', 'npm:1.6.4'], + [ + 'ts-pnp', + 'virtual:c497046afcbefb679e3fe12575088ec12205b913a36c3d158b27e7cd646d448426540ab27ba98e54ddb75b1ed97de7e3ce5dc0158c9ba4e76ce942c87e5d02d8#npm:1.2.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'posix-character-classes', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/posix-character-classes-npm-0.1.1-3e228a6e15-984f83c2d4.zip/node_modules/posix-character-classes/', + packageDependencies: [['posix-character-classes', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss', + [ + [ + 'npm:6.0.23', + { + packageLocation: + './.yarn/cache/postcss-npm-6.0.23-b0e5acc785-9b61abdfb3.zip/node_modules/postcss/', + packageDependencies: [ + ['postcss', 'npm:6.0.23'], + ['chalk', 'npm:2.4.2'], + ['source-map', 'npm:0.6.1'], + ['supports-color', 'npm:5.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.21', + { + packageLocation: + './.yarn/cache/postcss-npm-7.0.21-08ff0a9f95-1c8617c220.zip/node_modules/postcss/', + packageDependencies: [ + ['postcss', 'npm:7.0.21'], + ['chalk', 'npm:2.4.2'], + ['source-map', 'npm:0.6.1'], + ['supports-color', 'npm:6.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.29', + { + packageLocation: + './.yarn/cache/postcss-npm-7.0.29-00494e26cc-3ed5ba6746.zip/node_modules/postcss/', + packageDependencies: [ + ['postcss', 'npm:7.0.29'], + ['chalk', 'npm:2.4.2'], + ['source-map', 'npm:0.6.1'], + ['supports-color', 'npm:6.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.32', + { + packageLocation: + './.yarn/cache/postcss-npm-7.0.32-437a119902-340f4f6ca6.zip/node_modules/postcss/', + packageDependencies: [ + ['postcss', 'npm:7.0.32'], + ['chalk', 'npm:2.4.2'], + ['source-map', 'npm:0.6.1'], + ['supports-color', 'npm:6.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.1.7', + { + packageLocation: + './.yarn/cache/postcss-npm-8.1.7-55342317d6-45ebaeb281.zip/node_modules/postcss/', + packageDependencies: [ + ['postcss', 'npm:8.1.7'], + ['colorette', 'npm:1.2.2'], + ['line-column', 'npm:1.0.2'], + ['nanoid', 'npm:3.1.23'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-calc', + [ + [ + 'npm:7.0.2', + { + packageLocation: + './.yarn/cache/postcss-calc-npm-7.0.2-64ab9fdb31-173aded9a2.zip/node_modules/postcss-calc/', + packageDependencies: [ + ['postcss-calc', 'npm:7.0.2'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:6.0.2'], + ['postcss-value-parser', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-colormin', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/postcss-colormin-npm-4.0.3-21265de8f1-c2632c38a6.zip/node_modules/postcss-colormin/', + packageDependencies: [ + ['postcss-colormin', 'npm:4.0.3'], + ['browserslist', 'npm:4.13.0'], + ['color', 'npm:3.1.2'], + ['has', 'npm:1.0.3'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-convert-values', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-convert-values-npm-4.0.1-64ae54995a-8fc4a78787.zip/node_modules/postcss-convert-values/', + packageDependencies: [ + ['postcss-convert-values', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-discard-comments', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-discard-comments-npm-4.0.2-09a2a33168-7b357a3a4b.zip/node_modules/postcss-discard-comments/', + packageDependencies: [ + ['postcss-discard-comments', 'npm:4.0.2'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-discard-duplicates', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-discard-duplicates-npm-4.0.2-075a69a9cf-128342e2b9.zip/node_modules/postcss-discard-duplicates/', + packageDependencies: [ + ['postcss-discard-duplicates', 'npm:4.0.2'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-discard-empty', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-discard-empty-npm-4.0.1-59a5c13419-f06a00331c.zip/node_modules/postcss-discard-empty/', + packageDependencies: [ + ['postcss-discard-empty', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-discard-overridden', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-discard-overridden-npm-4.0.1-c88fad5093-be24bca265.zip/node_modules/postcss-discard-overridden/', + packageDependencies: [ + ['postcss-discard-overridden', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-functions', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/postcss-functions-npm-3.0.0-3708965e5e-e73d086194.zip/node_modules/postcss-functions/', + packageDependencies: [ + ['postcss-functions', 'npm:3.0.0'], + ['glob', 'npm:7.1.6'], + ['object-assign', 'npm:4.1.1'], + ['postcss', 'npm:6.0.23'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-import', + [ + [ + 'npm:12.0.1', + { + packageLocation: + './.yarn/cache/postcss-import-npm-12.0.1-1108779ed3-4495dba068.zip/node_modules/postcss-import/', + packageDependencies: [ + ['postcss-import', 'npm:12.0.1'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ['read-cache', 'npm:1.0.0'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-js', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/postcss-js-npm-2.0.3-591dbf049f-1adfa411c9.zip/node_modules/postcss-js/', + packageDependencies: [ + ['postcss-js', 'npm:2.0.3'], + ['camelcase-css', 'npm:2.0.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-load-config', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/postcss-load-config-npm-3.0.1-c83e0dec3f-e71f181552.zip/node_modules/postcss-load-config/', + packageDependencies: [ + ['postcss-load-config', 'npm:3.0.1'], + ['cosmiconfig', 'npm:7.0.0'], + ['import-cwd', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-merge-longhand', + [ + [ + 'npm:4.0.11', + { + packageLocation: + './.yarn/cache/postcss-merge-longhand-npm-4.0.11-a4de769005-f6ae3d8f2b.zip/node_modules/postcss-merge-longhand/', + packageDependencies: [ + ['postcss-merge-longhand', 'npm:4.0.11'], + ['css-color-names', 'npm:0.0.4'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ['stylehacks', 'npm:4.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-merge-rules', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/postcss-merge-rules-npm-4.0.3-73bf0c183e-1890781711.zip/node_modules/postcss-merge-rules/', + packageDependencies: [ + ['postcss-merge-rules', 'npm:4.0.3'], + ['browserslist', 'npm:4.13.0'], + ['caniuse-api', 'npm:3.0.0'], + ['cssnano-util-same-parent', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:3.1.2'], + ['vendors', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-minify-font-values', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-minify-font-values-npm-4.0.2-e8107d3a7f-9fc541821f.zip/node_modules/postcss-minify-font-values/', + packageDependencies: [ + ['postcss-minify-font-values', 'npm:4.0.2'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-minify-gradients', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-minify-gradients-npm-4.0.2-d5647bcf0b-4c54f4fa49.zip/node_modules/postcss-minify-gradients/', + packageDependencies: [ + ['postcss-minify-gradients', 'npm:4.0.2'], + ['cssnano-util-get-arguments', 'npm:4.0.0'], + ['is-color-stop', 'npm:1.1.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-minify-params', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-minify-params-npm-4.0.2-c449dd1044-dbcb82b7b1.zip/node_modules/postcss-minify-params/', + packageDependencies: [ + ['postcss-minify-params', 'npm:4.0.2'], + ['alphanum-sort', 'npm:1.0.2'], + ['browserslist', 'npm:4.13.0'], + ['cssnano-util-get-arguments', 'npm:4.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ['uniqs', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-minify-selectors', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-minify-selectors-npm-4.0.2-16f6851911-8fde92b556.zip/node_modules/postcss-minify-selectors/', + packageDependencies: [ + ['postcss-minify-selectors', 'npm:4.0.2'], + ['alphanum-sort', 'npm:1.0.2'], + ['has', 'npm:1.0.3'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:3.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-modules-extract-imports', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/postcss-modules-extract-imports-npm-2.0.0-da9714d21f-82e5932581.zip/node_modules/postcss-modules-extract-imports/', + packageDependencies: [ + ['postcss-modules-extract-imports', 'npm:2.0.0'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-modules-local-by-default', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/postcss-modules-local-by-default-npm-3.0.3-c3456a1d54-6d34b3b1dc.zip/node_modules/postcss-modules-local-by-default/', + packageDependencies: [ + ['postcss-modules-local-by-default', 'npm:3.0.3'], + ['icss-utils', 'npm:4.1.1'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:6.0.2'], + ['postcss-value-parser', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-modules-scope', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/postcss-modules-scope-npm-2.2.0-e243a2b896-c560d3aa7b.zip/node_modules/postcss-modules-scope/', + packageDependencies: [ + ['postcss-modules-scope', 'npm:2.2.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:6.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-modules-values', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/postcss-modules-values-npm-3.0.0-bbe8110e5b-01dc4ea51e.zip/node_modules/postcss-modules-values/', + packageDependencies: [ + ['postcss-modules-values', 'npm:3.0.0'], + ['icss-utils', 'npm:4.1.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-nested', + [ + [ + 'npm:4.2.3', + { + packageLocation: + './.yarn/cache/postcss-nested-npm-4.2.3-1bb9fea232-73b9e0115c.zip/node_modules/postcss-nested/', + packageDependencies: [ + ['postcss-nested', 'npm:4.2.3'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:6.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-charset', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-normalize-charset-npm-4.0.1-c29816bace-4e40b321c4.zip/node_modules/postcss-normalize-charset/', + packageDependencies: [ + ['postcss-normalize-charset', 'npm:4.0.1'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-display-values', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-normalize-display-values-npm-4.0.2-c0f29897ad-4bd5952f1c.zip/node_modules/postcss-normalize-display-values/', + packageDependencies: [ + ['postcss-normalize-display-values', 'npm:4.0.2'], + ['cssnano-util-get-match', 'npm:4.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-positions', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-normalize-positions-npm-4.0.2-eb62f7b2e3-9d7d79703a.zip/node_modules/postcss-normalize-positions/', + packageDependencies: [ + ['postcss-normalize-positions', 'npm:4.0.2'], + ['cssnano-util-get-arguments', 'npm:4.0.0'], + ['has', 'npm:1.0.3'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-repeat-style', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-normalize-repeat-style-npm-4.0.2-b67bc11e2b-dcb89339fd.zip/node_modules/postcss-normalize-repeat-style/', + packageDependencies: [ + ['postcss-normalize-repeat-style', 'npm:4.0.2'], + ['cssnano-util-get-arguments', 'npm:4.0.0'], + ['cssnano-util-get-match', 'npm:4.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-string', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-normalize-string-npm-4.0.2-2fedcfab29-91116aa9c6.zip/node_modules/postcss-normalize-string/', + packageDependencies: [ + ['postcss-normalize-string', 'npm:4.0.2'], + ['has', 'npm:1.0.3'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-timing-functions', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-normalize-timing-functions-npm-4.0.2-d0675e54df-92bca529aa.zip/node_modules/postcss-normalize-timing-functions/', + packageDependencies: [ + ['postcss-normalize-timing-functions', 'npm:4.0.2'], + ['cssnano-util-get-match', 'npm:4.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-unicode', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-normalize-unicode-npm-4.0.1-9cc5bfcb9d-84714ba7c1.zip/node_modules/postcss-normalize-unicode/', + packageDependencies: [ + ['postcss-normalize-unicode', 'npm:4.0.1'], + ['browserslist', 'npm:4.13.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-url', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-normalize-url-npm-4.0.1-2626c4ca1a-76d75e27e9.zip/node_modules/postcss-normalize-url/', + packageDependencies: [ + ['postcss-normalize-url', 'npm:4.0.1'], + ['is-absolute-url', 'npm:2.1.0'], + ['normalize-url', 'npm:3.3.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-normalize-whitespace', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-normalize-whitespace-npm-4.0.2-6339383b96-7093ca8313.zip/node_modules/postcss-normalize-whitespace/', + packageDependencies: [ + ['postcss-normalize-whitespace', 'npm:4.0.2'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-ordered-values', + [ + [ + 'npm:4.1.2', + { + packageLocation: + './.yarn/cache/postcss-ordered-values-npm-4.1.2-7eac60699d-6f39464145.zip/node_modules/postcss-ordered-values/', + packageDependencies: [ + ['postcss-ordered-values', 'npm:4.1.2'], + ['cssnano-util-get-arguments', 'npm:4.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-reduce-initial', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/postcss-reduce-initial-npm-4.0.3-01cc02f1f4-ed276a8208.zip/node_modules/postcss-reduce-initial/', + packageDependencies: [ + ['postcss-reduce-initial', 'npm:4.0.3'], + ['browserslist', 'npm:4.13.0'], + ['caniuse-api', 'npm:3.0.0'], + ['has', 'npm:1.0.3'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-reduce-transforms', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-reduce-transforms-npm-4.0.2-129de8fec9-2bf993ff44.zip/node_modules/postcss-reduce-transforms/', + packageDependencies: [ + ['postcss-reduce-transforms', 'npm:4.0.2'], + ['cssnano-util-get-match', 'npm:4.0.0'], + ['has', 'npm:1.0.3'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-safe-parser', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-safe-parser-npm-4.0.2-d1aff2c5bb-3f7f1b83f1.zip/node_modules/postcss-safe-parser/', + packageDependencies: [ + ['postcss-safe-parser', 'npm:4.0.2'], + ['postcss', 'npm:7.0.32'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-selector-parser', + [ + [ + 'npm:3.1.2', + { + packageLocation: + './.yarn/cache/postcss-selector-parser-npm-3.1.2-33bf16ea9d-021ffdeef1.zip/node_modules/postcss-selector-parser/', + packageDependencies: [ + ['postcss-selector-parser', 'npm:3.1.2'], + ['dot-prop', 'npm:5.2.0'], + ['indexes-of', 'npm:1.0.1'], + ['uniq', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.2', + { + packageLocation: + './.yarn/cache/postcss-selector-parser-npm-6.0.2-591ff5e868-0c8bec00e9.zip/node_modules/postcss-selector-parser/', + packageDependencies: [ + ['postcss-selector-parser', 'npm:6.0.2'], + ['cssesc', 'npm:3.0.0'], + ['indexes-of', 'npm:1.0.1'], + ['uniq', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-svgo', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/postcss-svgo-npm-4.0.2-5585d65908-a2a6e324fc.zip/node_modules/postcss-svgo/', + packageDependencies: [ + ['postcss-svgo', 'npm:4.0.2'], + ['is-svg', 'npm:3.0.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-value-parser', 'npm:3.3.1'], + ['svgo', 'npm:1.3.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-unique-selectors', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/postcss-unique-selectors-npm-4.0.1-dde8d7eda6-1f1fdc1086.zip/node_modules/postcss-unique-selectors/', + packageDependencies: [ + ['postcss-unique-selectors', 'npm:4.0.1'], + ['alphanum-sort', 'npm:1.0.2'], + ['postcss', 'npm:7.0.32'], + ['uniqs', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'postcss-value-parser', + [ + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/postcss-value-parser-npm-3.3.1-24ecbb1b05-834603f6bd.zip/node_modules/postcss-value-parser/', + packageDependencies: [['postcss-value-parser', 'npm:3.3.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/postcss-value-parser-npm-4.1.0-4620e3e849-7083140388.zip/node_modules/postcss-value-parser/', + packageDependencies: [['postcss-value-parser', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prebuild-install', + [ + [ + 'npm:6.1.2', + { + packageLocation: + './.yarn/cache/prebuild-install-npm-6.1.2-5d6abe684c-680fe93dc9.zip/node_modules/prebuild-install/', + packageDependencies: [ + ['prebuild-install', 'npm:6.1.2'], + ['detect-libc', 'npm:1.0.3'], + ['expand-template', 'npm:2.0.3'], + ['github-from-package', 'npm:0.0.0'], + ['minimist', 'npm:1.2.5'], + ['mkdirp-classic', 'npm:0.5.3'], + ['napi-build-utils', 'npm:1.0.2'], + ['node-abi', 'npm:2.26.0'], + ['noop-logger', 'npm:0.1.1'], + ['npmlog', 'npm:4.1.2'], + ['pump', 'npm:3.0.0'], + ['rc', 'npm:1.2.8'], + ['simple-get', 'npm:3.1.0'], + ['tar-fs', 'npm:2.1.1'], + ['tunnel-agent', 'npm:0.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prelude-ls', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/prelude-ls-npm-1.1.2-a0daac0886-189c969c92.zip/node_modules/prelude-ls/', + packageDependencies: [['prelude-ls', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prepend-http', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/prepend-http-npm-1.0.4-cd78a41247-f723f34a23.zip/node_modules/prepend-http/', + packageDependencies: [['prepend-http', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/prepend-http-npm-2.0.0-e1fc4332f2-d39325775a.zip/node_modules/prepend-http/', + packageDependencies: [['prepend-http', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prettier', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/prettier-npm-2.2.1-e0670992f8-92c6c9f4b8.zip/node_modules/prettier/', + packageDependencies: [['prettier', 'npm:2.2.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-652640cc8b.zip/node_modules/prettier/', + packageDependencies: [['prettier', 'npm:2.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pretty-bytes', + [ + [ + 'npm:5.3.0', + { + packageLocation: + './.yarn/cache/pretty-bytes-npm-5.3.0-d118630c4c-ecc6b1670f.zip/node_modules/pretty-bytes/', + packageDependencies: [['pretty-bytes', 'npm:5.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pretty-format', + [ + [ + 'npm:25.5.0', + { + packageLocation: + './.yarn/cache/pretty-format-npm-25.5.0-9def2180a5-f7cc631d51.zip/node_modules/pretty-format/', + packageDependencies: [ + ['pretty-format', 'npm:25.5.0'], + ['@jest/types', 'npm:25.5.0'], + ['ansi-regex', 'npm:5.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['react-is', 'npm:16.13.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.1.0', + { + packageLocation: + './.yarn/cache/pretty-format-npm-26.1.0-aeda9ecba9-a1cd822bed.zip/node_modules/pretty-format/', + packageDependencies: [ + ['pretty-format', 'npm:26.1.0'], + ['@jest/types', 'npm:26.1.0'], + ['ansi-regex', 'npm:5.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['react-is', 'npm:16.13.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.4.2', + { + packageLocation: + './.yarn/cache/pretty-format-npm-26.4.2-ab459511b0-06cdf6684c.zip/node_modules/pretty-format/', + packageDependencies: [ + ['pretty-format', 'npm:26.4.2'], + ['@jest/types', 'npm:26.3.0'], + ['ansi-regex', 'npm:5.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['react-is', 'npm:16.13.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:26.6.2', + { + packageLocation: + './.yarn/cache/pretty-format-npm-26.6.2-6edfcf7149-5ad34fc128.zip/node_modules/pretty-format/', + packageDependencies: [ + ['pretty-format', 'npm:26.6.2'], + ['@jest/types', 'npm:26.6.2'], + ['ansi-regex', 'npm:5.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['react-is', 'npm:17.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pretty-hrtime', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/pretty-hrtime-npm-1.0.3-32fd75fcbd-efb9d4987e.zip/node_modules/pretty-hrtime/', + packageDependencies: [['pretty-hrtime', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pretty-quick', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/pretty-quick-npm-3.1.0-a3349e077f-956f0808ee.zip/node_modules/pretty-quick/', + packageDependencies: [['pretty-quick', 'npm:3.1.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:3.1.0', + { + packageLocation: + './.yarn/$$virtual/pretty-quick-virtual-117d3e9b54/0/cache/pretty-quick-npm-3.1.0-a3349e077f-956f0808ee.zip/node_modules/pretty-quick/', + packageDependencies: [ + [ + 'pretty-quick', + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:3.1.0', + ], + ['@types/prettier', null], + ['chalk', 'npm:3.0.0'], + ['execa', 'npm:4.0.3'], + ['find-up', 'npm:4.1.0'], + ['ignore', 'npm:5.1.8'], + ['mri', 'npm:1.1.6'], + ['multimatch', 'npm:4.0.0'], + ['prettier', 'npm:2.3.0'], + ], + packagePeers: ['@types/prettier', 'prettier'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prettyjson', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/prettyjson-npm-1.2.1-045c44c3b6-ae6014aaec.zip/node_modules/prettyjson/', + packageDependencies: [ + ['prettyjson', 'npm:1.2.1'], + ['colors', 'npm:1.4.0'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'process', + [ + [ + 'npm:0.11.10', + { + packageLocation: + './.yarn/cache/process-npm-0.11.10-aeb3b641ae-ed93a85e91.zip/node_modules/process/', + packageDependencies: [['process', 'npm:0.11.10']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'process-nextick-args', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/process-nextick-args-npm-2.0.1-b8d7971609-ddeb0f07d0.zip/node_modules/process-nextick-args/', + packageDependencies: [['process-nextick-args', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'progress', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/progress-npm-2.0.3-d1f87e2ac6-c46ef5a1de.zip/node_modules/progress/', + packageDependencies: [['progress', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'promise', + [ + [ + 'npm:7.3.1', + { + packageLocation: + './.yarn/cache/promise-npm-7.3.1-5d81d474c0-23267a4b07.zip/node_modules/promise/', + packageDependencies: [ + ['promise', 'npm:7.3.1'], + ['asap', 'npm:2.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'promise-deferred', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/promise-deferred-npm-2.0.3-0b6eb75898-3135c0fe22.zip/node_modules/promise-deferred/', + packageDependencies: [ + ['promise-deferred', 'npm:2.0.3'], + ['promise', 'npm:7.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'promise-inflight', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/', + packageDependencies: [['promise-inflight', 'npm:1.0.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:0a601d06b9bb877e28dc3c2bf132b715e8c8db39518cb037053d3e960e698b842f18c4ad29c4dbd116bd79f31c565cbbc9741fa4573e2713fab36fd780658f57#npm:1.0.1', + { + packageLocation: + './.yarn/$$virtual/promise-inflight-virtual-679eed6a0f/0/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/', + packageDependencies: [ + [ + 'promise-inflight', + 'virtual:0a601d06b9bb877e28dc3c2bf132b715e8c8db39518cb037053d3e960e698b842f18c4ad29c4dbd116bd79f31c565cbbc9741fa4573e2713fab36fd780658f57#npm:1.0.1', + ], + ['bluebird', 'npm:3.7.2'], + ], + packagePeers: ['bluebird'], + linkType: 'HARD', + }, + ], + [ + 'virtual:6b13da0303336244e14777818f99c8dfaed4f4c27cb3f6393c3d5e11d3bb4a4a56fbe8ab1298b00979cc78a3a238458a7a0fab5133ad4c736a2296e23ba86eaa#npm:1.0.1', + { + packageLocation: + './.yarn/$$virtual/promise-inflight-virtual-95dc24eab8/0/cache/promise-inflight-npm-1.0.1-5bb925afac-c06bce0fc6.zip/node_modules/promise-inflight/', + packageDependencies: [ + [ + 'promise-inflight', + 'virtual:6b13da0303336244e14777818f99c8dfaed4f4c27cb3f6393c3d5e11d3bb4a4a56fbe8ab1298b00979cc78a3a238458a7a0fab5133ad4c736a2296e23ba86eaa#npm:1.0.1', + ], + ['bluebird', null], + ], + packagePeers: ['bluebird'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'promiseback', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/promiseback-npm-2.0.3-1de6df4a1a-3c405394a4.zip/node_modules/promiseback/', + packageDependencies: [ + ['promiseback', 'npm:2.0.3'], + ['is-callable', 'npm:1.2.0'], + ['promise-deferred', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prompts', + [ + [ + 'npm:2.3.2', + { + packageLocation: + './.yarn/cache/prompts-npm-2.3.2-c8c33bdfcf-a910ba767e.zip/node_modules/prompts/', + packageDependencies: [ + ['prompts', 'npm:2.3.2'], + ['kleur', 'npm:3.0.3'], + ['sisteransi', 'npm:1.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prop-types', + [ + [ + 'npm:15.7.2', + { + packageLocation: + './.yarn/cache/prop-types-npm-15.7.2-d7a04f2274-a440dd406c.zip/node_modules/prop-types/', + packageDependencies: [ + ['prop-types', 'npm:15.7.2'], + ['loose-envify', 'npm:1.4.0'], + ['object-assign', 'npm:4.1.1'], + ['react-is', 'npm:16.13.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prop-types-exact', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/prop-types-exact-npm-1.2.0-4664209648-e88625c05e.zip/node_modules/prop-types-exact/', + packageDependencies: [ + ['prop-types-exact', 'npm:1.2.0'], + ['has', 'npm:1.0.3'], + ['object.assign', 'npm:4.1.0'], + ['reflect.ownkeys', 'npm:0.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'property-expr', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/property-expr-npm-2.0.2-88f6aa5597-c31524b5c2.zip/node_modules/property-expr/', + packageDependencies: [['property-expr', 'npm:2.0.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/property-expr-npm-2.0.4-dffd410058-fffa6ba8a2.zip/node_modules/property-expr/', + packageDependencies: [['property-expr', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'property-information', + [ + [ + 'npm:5.6.0', + { + packageLocation: + './.yarn/cache/property-information-npm-5.6.0-1322d29e0f-d069696456.zip/node_modules/property-information/', + packageDependencies: [ + ['property-information', 'npm:5.6.0'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'proto-list', + [ + [ + 'npm:1.2.4', + { + packageLocation: + './.yarn/cache/proto-list-npm-1.2.4-a96a43df28-e722a11c66.zip/node_modules/proto-list/', + packageDependencies: [['proto-list', 'npm:1.2.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'proxy-addr', + [ + [ + 'npm:2.0.6', + { + packageLocation: + './.yarn/cache/proxy-addr-npm-2.0.6-8fafed6ca5-a7dcfd7025.zip/node_modules/proxy-addr/', + packageDependencies: [ + ['proxy-addr', 'npm:2.0.6'], + ['forwarded', 'npm:0.1.2'], + ['ipaddr.js', 'npm:1.9.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'prr', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/prr-npm-1.0.1-608d442761-ac5c0986b4.zip/node_modules/prr/', + packageDependencies: [['prr', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pseudomap', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/pseudomap-npm-1.0.2-0d0e40fee0-1ad1802645.zip/node_modules/pseudomap/', + packageDependencies: [['pseudomap', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'psl', + [ + [ + 'npm:1.8.0', + { + packageLocation: + './.yarn/cache/psl-npm-1.8.0-226099d70e-92d47c6257.zip/node_modules/psl/', + packageDependencies: [['psl', 'npm:1.8.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pstree.remy', + [ + [ + 'npm:1.1.8', + { + packageLocation: + './.yarn/cache/pstree.remy-npm-1.1.8-2dd5d55de2-44bad8f697.zip/node_modules/pstree.remy/', + packageDependencies: [['pstree.remy', 'npm:1.1.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'public-encrypt', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/public-encrypt-npm-4.0.3-b25e19fada-85b1be24b5.zip/node_modules/public-encrypt/', + packageDependencies: [ + ['public-encrypt', 'npm:4.0.3'], + ['bn.js', 'npm:4.11.9'], + ['browserify-rsa', 'npm:4.0.1'], + ['create-hash', 'npm:1.2.0'], + ['parse-asn1', 'npm:5.1.5'], + ['randombytes', 'npm:2.1.0'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pump', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/pump-npm-2.0.1-05afac7fc4-25c657a8f6.zip/node_modules/pump/', + packageDependencies: [ + ['pump', 'npm:2.0.1'], + ['end-of-stream', 'npm:1.4.4'], + ['once', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/pump-npm-3.0.0-0080bf6a7a-5464d5cf6c.zip/node_modules/pump/', + packageDependencies: [ + ['pump', 'npm:3.0.0'], + ['end-of-stream', 'npm:1.4.4'], + ['once', 'npm:1.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pumpify', + [ + [ + 'npm:1.5.1', + { + packageLocation: + './.yarn/cache/pumpify-npm-1.5.1-b928bd877f-c143607284.zip/node_modules/pumpify/', + packageDependencies: [ + ['pumpify', 'npm:1.5.1'], + ['duplexify', 'npm:3.7.1'], + ['inherits', 'npm:2.0.4'], + ['pump', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'punycode', + [ + [ + 'npm:1.3.2', + { + packageLocation: + './.yarn/cache/punycode-npm-1.3.2-3727a84cea-e67fddacd8.zip/node_modules/punycode/', + packageDependencies: [['punycode', 'npm:1.3.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/punycode-npm-1.4.1-be4c23e6d2-5ce1e044ce.zip/node_modules/punycode/', + packageDependencies: [['punycode', 'npm:1.4.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/punycode-npm-2.1.1-26eb3e15cf-0202dc191c.zip/node_modules/punycode/', + packageDependencies: [['punycode', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'pupa', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/pupa-npm-2.0.1-c848ed92ed-d03edb9fd7.zip/node_modules/pupa/', + packageDependencies: [ + ['pupa', 'npm:2.0.1'], + ['escape-goat', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'purgecss', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/purgecss-npm-2.3.0-5ea54d8f99-903351123a.zip/node_modules/purgecss/', + packageDependencies: [ + ['purgecss', 'npm:2.3.0'], + ['commander', 'npm:5.1.0'], + ['glob', 'npm:7.1.6'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:6.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'q', + [ + [ + 'npm:1.5.1', + { + packageLocation: + './.yarn/cache/q-npm-1.5.1-a28b3cfeaf-f610c1295a.zip/node_modules/q/', + packageDependencies: [['q', 'npm:1.5.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'qs', + [ + [ + 'npm:6.5.2', + { + packageLocation: + './.yarn/cache/qs-npm-6.5.2-dbf9d8386b-fa0410eff2.zip/node_modules/qs/', + packageDependencies: [['qs', 'npm:6.5.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.7.0', + { + packageLocation: + './.yarn/cache/qs-npm-6.7.0-15161a344c-8590470436.zip/node_modules/qs/', + packageDependencies: [['qs', 'npm:6.7.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'query-string', + [ + [ + 'npm:4.3.4', + { + packageLocation: + './.yarn/cache/query-string-npm-4.3.4-58a0c63f6b-fcdbc2e760.zip/node_modules/query-string/', + packageDependencies: [ + ['query-string', 'npm:4.3.4'], + ['object-assign', 'npm:4.1.1'], + ['strict-uri-encode', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/query-string-npm-5.1.1-86edac70d6-68d4ad519a.zip/node_modules/query-string/', + packageDependencies: [ + ['query-string', 'npm:5.1.1'], + ['decode-uri-component', 'npm:0.2.0'], + ['object-assign', 'npm:4.1.1'], + ['strict-uri-encode', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.13.8', + { + packageLocation: + './.yarn/cache/query-string-npm-6.13.8-77db681d8d-5d52ccd598.zip/node_modules/query-string/', + packageDependencies: [ + ['query-string', 'npm:6.13.8'], + ['decode-uri-component', 'npm:0.2.0'], + ['split-on-first', 'npm:1.1.0'], + ['strict-uri-encode', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'querystring', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/querystring-npm-0.2.0-421b870c92-1e76c51462.zip/node_modules/querystring/', + packageDependencies: [['querystring', 'npm:0.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'querystring-es3', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/querystring-es3-npm-0.2.1-f4632f2760-3c388906aa.zip/node_modules/querystring-es3/', + packageDependencies: [['querystring-es3', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'quick-lru', + [ + [ + 'npm:5.1.1', + { + packageLocation: + './.yarn/cache/quick-lru-npm-5.1.1-e38e0edce3-fafb2b2fa1.zip/node_modules/quick-lru/', + packageDependencies: [['quick-lru', 'npm:5.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'raf-schd', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/raf-schd-npm-4.0.2-65661014f3-28ad12b288.zip/node_modules/raf-schd/', + packageDependencies: [['raf-schd', 'npm:4.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ramda', + [ + [ + 'npm:0.27.0', + { + packageLocation: + './.yarn/cache/ramda-npm-0.27.0-0ac931b47f-27b2346803.zip/node_modules/ramda/', + packageDependencies: [['ramda', 'npm:0.27.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'randombytes', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/randombytes-npm-2.1.0-e3da76bccf-ede2693af0.zip/node_modules/randombytes/', + packageDependencies: [ + ['randombytes', 'npm:2.1.0'], + ['safe-buffer', 'npm:5.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'randomfill', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/randomfill-npm-1.0.4-a08651a679-24658ce99e.zip/node_modules/randomfill/', + packageDependencies: [ + ['randomfill', 'npm:1.0.4'], + ['randombytes', 'npm:2.1.0'], + ['safe-buffer', 'npm:5.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'range-parser', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/range-parser-npm-1.2.1-1a470fa390-05074f5b23.zip/node_modules/range-parser/', + packageDependencies: [['range-parser', 'npm:1.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'raw-body', + [ + [ + 'npm:2.4.0', + { + packageLocation: + './.yarn/cache/raw-body-npm-2.4.0-14d9d633af-46dc02f8b4.zip/node_modules/raw-body/', + packageDependencies: [ + ['raw-body', 'npm:2.4.0'], + ['bytes', 'npm:3.1.0'], + ['http-errors', 'npm:1.7.2'], + ['iconv-lite', 'npm:0.4.24'], + ['unpipe', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.4.1', + { + packageLocation: + './.yarn/cache/raw-body-npm-2.4.1-e6e30ccf94-dc56e010d2.zip/node_modules/raw-body/', + packageDependencies: [ + ['raw-body', 'npm:2.4.1'], + ['bytes', 'npm:3.1.0'], + ['http-errors', 'npm:1.7.3'], + ['iconv-lite', 'npm:0.4.24'], + ['unpipe', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rc', + [ + [ + 'npm:1.2.8', + { + packageLocation: + './.yarn/cache/rc-npm-1.2.8-d6768ac936-ea2b7f7cee.zip/node_modules/rc/', + packageDependencies: [ + ['rc', 'npm:1.2.8'], + ['deep-extend', 'npm:0.6.0'], + ['ini', 'npm:1.3.5'], + ['minimist', 'npm:1.2.5'], + ['strip-json-comments', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react', + [ + [ + 'npm:16.13.1', + { + packageLocation: + './.yarn/cache/react-npm-16.13.1-56d408860d-13dcc9ba8a.zip/node_modules/react/', + packageDependencies: [ + ['react', 'npm:16.13.1'], + ['loose-envify', 'npm:1.4.0'], + ['object-assign', 'npm:4.1.1'], + ['prop-types', 'npm:15.7.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-beautiful-dnd', + [ + [ + 'npm:11.0.5', + { + packageLocation: + './.yarn/cache/react-beautiful-dnd-npm-11.0.5-55b213a46a-1842c33e9b.zip/node_modules/react-beautiful-dnd/', + packageDependencies: [['react-beautiful-dnd', 'npm:11.0.5']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + { + packageLocation: + './.yarn/$$virtual/react-beautiful-dnd-virtual-81a9d4a08e/0/cache/react-beautiful-dnd-npm-11.0.5-55b213a46a-1842c33e9b.zip/node_modules/react-beautiful-dnd/', + packageDependencies: [ + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + ['@babel/runtime-corejs2', 'npm:7.10.5'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['css-box-model', 'npm:1.2.1'], + ['memoize-one', 'npm:5.1.1'], + ['raf-schd', 'npm:4.0.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-redux', + 'virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:7.2.1', + ], + ['redux', 'npm:4.0.5'], + ['tiny-invariant', 'npm:1.1.0'], + [ + 'use-memo-one', + 'virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:1.1.1', + ], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + 'react-dom', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-color', + [ + [ + 'npm:2.18.1', + { + packageLocation: + './.yarn/cache/react-color-npm-2.18.1-7e5c5c6e72-554cea8690.zip/node_modules/react-color/', + packageDependencies: [['react-color', 'npm:2.18.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1', + { + packageLocation: + './.yarn/$$virtual/react-color-virtual-bec25d28c1/0/cache/react-color-npm-2.18.1-7e5c5c6e72-554cea8690.zip/node_modules/react-color/', + packageDependencies: [ + [ + 'react-color', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:2.18.1', + ], + [ + '@icons/material', + 'virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:0.2.4', + ], + ['@types/react', 'npm:16.9.43'], + ['lodash', 'npm:4.17.19'], + ['material-colors', 'npm:1.2.6'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'reactcss', + 'virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:1.2.3', + ], + ['tinycolor2', 'npm:1.4.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-dismissible', + [ + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/react-dismissible-npm-1.3.0-45018e4e4d-ba43017c57.zip/node_modules/react-dismissible/', + packageDependencies: [['react-dismissible', 'npm:1.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + { + packageLocation: + './.yarn/$$virtual/react-dismissible-virtual-7be465b29c/0/cache/react-dismissible-npm-1.3.0-45018e4e4d-ba43017c57.zip/node_modules/react-dismissible/', + packageDependencies: [ + [ + 'react-dismissible', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:1.3.0', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-dom', + [ + [ + 'npm:16.13.1', + { + packageLocation: + './.yarn/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/node_modules/react-dom/', + packageDependencies: [['react-dom', 'npm:16.13.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + { + packageLocation: + './.yarn/$$virtual/react-dom-virtual-3b84bd6eb1/0/cache/react-dom-npm-16.13.1-b0abd8a83a-fb5c3ad413.zip/node_modules/react-dom/', + packageDependencies: [ + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['@types/react', 'npm:16.9.43'], + ['loose-envify', 'npm:1.4.0'], + ['object-assign', 'npm:4.1.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + ['scheduler', 'npm:0.19.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-dropzone', + [ + [ + 'npm:10.1.8', + { + packageLocation: + './.yarn/cache/react-dropzone-npm-10.1.8-6887f2728d-5409dadbae.zip/node_modules/react-dropzone/', + packageDependencies: [['react-dropzone', 'npm:10.1.8']], + linkType: 'SOFT', + }, + ], + [ + 'npm:11.2.0', + { + packageLocation: + './.yarn/cache/react-dropzone-npm-11.2.0-5ce6a56e47-1465815c25.zip/node_modules/react-dropzone/', + packageDependencies: [['react-dropzone', 'npm:11.2.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8', + { + packageLocation: + './.yarn/$$virtual/react-dropzone-virtual-a105590c01/0/cache/react-dropzone-npm-10.1.8-6887f2728d-5409dadbae.zip/node_modules/react-dropzone/', + packageDependencies: [ + [ + 'react-dropzone', + 'virtual:3b432b9464ee94fdc1c2e2742385b222dddd6dc1dd5912e233a604ccbb9c9d141ed10509f3b9bca97ed7db0018d23669c898175e5b97a80c82d3f0033024e45d#npm:10.1.8', + ], + ['@types/react', 'npm:16.9.43'], + ['attr-accept', 'npm:1.1.3'], + ['file-selector', 'npm:0.1.12'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0', + { + packageLocation: + './.yarn/$$virtual/react-dropzone-virtual-105b248d4a/0/cache/react-dropzone-npm-11.2.0-5ce6a56e47-1465815c25.zip/node_modules/react-dropzone/', + packageDependencies: [ + [ + 'react-dropzone', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0', + ], + ['@types/react', 'npm:16.9.43'], + ['attr-accept', 'npm:2.2.2'], + ['file-selector', 'npm:0.1.13'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-fast-compare', + [ + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/react-fast-compare-npm-2.0.4-ab3f6356e2-4e4bfc3597.zip/node_modules/react-fast-compare/', + packageDependencies: [['react-fast-compare', 'npm:2.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-final-form', + [ + [ + 'npm:6.5.1', + { + packageLocation: + './.yarn/cache/react-final-form-npm-6.5.1-58e075ed94-cc4c0f880a.zip/node_modules/react-final-form/', + packageDependencies: [['react-final-form', 'npm:6.5.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1', + { + packageLocation: + './.yarn/$$virtual/react-final-form-virtual-81fab93042/0/cache/react-final-form-npm-6.5.1-58e075ed94-cc4c0f880a.zip/node_modules/react-final-form/', + packageDependencies: [ + [ + 'react-final-form', + 'virtual:0da5c6aeb3b056df8e95ba8e7560931515b1a821e3ee4f32bed09c41780549e3b8474893f15b7ccf8bda165926a86ced5fb022c9de579d3f748988a2184e4918#npm:6.5.1', + ], + ['@babel/runtime', 'npm:7.10.5'], + ['@types/final-form', null], + ['@types/react', 'npm:16.9.43'], + ['final-form', 'npm:4.20.1'], + ['react', 'npm:16.13.1'], + ], + packagePeers: [ + '@types/final-form', + '@types/react', + 'final-form', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-is', + [ + [ + 'npm:16.13.1', + { + packageLocation: + './.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-11bcf1267a.zip/node_modules/react-is/', + packageDependencies: [['react-is', 'npm:16.13.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:17.0.1', + { + packageLocation: + './.yarn/cache/react-is-npm-17.0.1-876b80f7e5-5a83dfc78e.zip/node_modules/react-is/', + packageDependencies: [['react-is', 'npm:17.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:17.0.2', + { + packageLocation: + './.yarn/cache/react-is-npm-17.0.2-091bbb8db6-3eff23f410.zip/node_modules/react-is/', + packageDependencies: [['react-is', 'npm:17.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-markdown', + [ + [ + 'npm:4.3.1', + { + packageLocation: + './.yarn/cache/react-markdown-npm-4.3.1-9120cab586-89111d726b.zip/node_modules/react-markdown/', + packageDependencies: [['react-markdown', 'npm:4.3.1']], + linkType: 'SOFT', + }, + ], + [ + 'npm:5.0.3', + { + packageLocation: + './.yarn/cache/react-markdown-npm-5.0.3-657b4fa0b0-9e27eb9efd.zip/node_modules/react-markdown/', + packageDependencies: [['react-markdown', 'npm:5.0.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1', + { + packageLocation: + './.yarn/$$virtual/react-markdown-virtual-4877d7180d/0/cache/react-markdown-npm-4.3.1-9120cab586-89111d726b.zip/node_modules/react-markdown/', + packageDependencies: [ + [ + 'react-markdown', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1', + ], + ['@types/react', 'npm:16.9.43'], + [ + 'html-to-react', + 'virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3', + ], + ['mdast-add-list-metadata', 'npm:1.0.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + ['react-is', 'npm:16.13.1'], + ['remark-parse', 'npm:5.0.0'], + ['unified', 'npm:6.2.0'], + ['unist-util-visit', 'npm:1.4.1'], + ['xtend', 'npm:4.0.2'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.0.3', + { + packageLocation: + './.yarn/$$virtual/react-markdown-virtual-b0ca6fd398/0/cache/react-markdown-npm-5.0.3-657b4fa0b0-9e27eb9efd.zip/node_modules/react-markdown/', + packageDependencies: [ + [ + 'react-markdown', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.0.3', + ], + ['@types/mdast', 'npm:3.0.3'], + ['@types/react', 'npm:16.9.43'], + ['@types/types__react', null], + ['@types/unist', 'npm:2.0.3'], + [ + 'html-to-react', + 'virtual:4877d7180d0b49a4295ce6ce3bbaedb87b39935bc4c3ba4873fe4a174884d742e4068e68ea68a8208256fe66a7642c7a4468a25de7ae8b649d7264086788469f#npm:1.4.3', + ], + ['mdast-add-list-metadata', 'npm:1.0.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + ['react-is', 'npm:16.13.1'], + ['remark-parse', 'npm:9.0.0'], + ['unified', 'npm:9.2.1'], + ['unist-util-visit', 'npm:2.0.3'], + ['xtend', 'npm:4.0.2'], + ], + packagePeers: ['@types/react', '@types/types__react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-redux', + [ + [ + 'npm:7.2.1', + { + packageLocation: + './.yarn/cache/react-redux-npm-7.2.1-7c5f4a50c5-94ef2d0f38.zip/node_modules/react-redux/', + packageDependencies: [['react-redux', 'npm:7.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:7.2.1', + { + packageLocation: + './.yarn/$$virtual/react-redux-virtual-d9c2a1027a/0/cache/react-redux-npm-7.2.1-7c5f4a50c5-94ef2d0f38.zip/node_modules/react-redux/', + packageDependencies: [ + [ + 'react-redux', + 'virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:7.2.1', + ], + ['@babel/runtime', 'npm:7.10.5'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/react-native', null], + ['@types/redux', null], + ['hoist-non-react-statics', 'npm:3.3.2'], + ['loose-envify', 'npm:1.4.0'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + ['react-native', null], + ['redux', 'npm:4.0.5'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react-native', + '@types/react', + '@types/redux', + 'react-dom', + 'react-native', + 'react', + 'redux', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'react-refresh', + [ + [ + 'npm:0.8.2', + { + packageLocation: + './.yarn/cache/react-refresh-npm-0.8.2-024837112c-8d9385ceaa.zip/node_modules/react-refresh/', + packageDependencies: [['react-refresh', 'npm:0.8.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.8.3', + { + packageLocation: + './.yarn/cache/react-refresh-npm-0.8.3-9b3fb3900b-38f06df8e0.zip/node_modules/react-refresh/', + packageDependencies: [['react-refresh', 'npm:0.8.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'reactcss', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/reactcss-npm-1.2.3-16f7947bcd-90fcf85d80.zip/node_modules/reactcss/', + packageDependencies: [['reactcss', 'npm:1.2.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:1.2.3', + { + packageLocation: + './.yarn/$$virtual/reactcss-virtual-63aa30eb40/0/cache/reactcss-npm-1.2.3-16f7947bcd-90fcf85d80.zip/node_modules/reactcss/', + packageDependencies: [ + [ + 'reactcss', + 'virtual:bec25d28c19ec553a277a516350f9b935fff6ddcb51e83c3bc93b9d71f4b04a2cf560c001e2f0487de16c85112f77bb2eb452d339717d9b0c49af53761563fc7#npm:1.2.3', + ], + ['@types/react', 'npm:16.9.43'], + ['lodash', 'npm:4.17.19'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'read-cache', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/read-cache-npm-1.0.0-00fa89ed05-17a1996977.zip/node_modules/read-cache/', + packageDependencies: [ + ['read-cache', 'npm:1.0.0'], + ['pify', 'npm:2.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'read-chunk', + [ + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/read-chunk-npm-3.2.0-b6e9363152-789449861b.zip/node_modules/read-chunk/', + packageDependencies: [ + ['read-chunk', 'npm:3.2.0'], + ['pify', 'npm:4.0.1'], + ['with-open-file', 'npm:0.1.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'read-pkg', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/read-pkg-npm-1.1.0-11237fa82f-01fdadf10e.zip/node_modules/read-pkg/', + packageDependencies: [ + ['read-pkg', 'npm:1.1.0'], + ['load-json-file', 'npm:1.1.0'], + ['normalize-package-data', 'npm:2.5.0'], + ['path-type', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/read-pkg-npm-3.0.0-41471436cb-8cc577b41d.zip/node_modules/read-pkg/', + packageDependencies: [ + ['read-pkg', 'npm:3.0.0'], + ['load-json-file', 'npm:4.0.0'], + ['normalize-package-data', 'npm:2.5.0'], + ['path-type', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/read-pkg-npm-5.2.0-50426bd8dc-641102f095.zip/node_modules/read-pkg/', + packageDependencies: [ + ['read-pkg', 'npm:5.2.0'], + ['@types/normalize-package-data', 'npm:2.4.0'], + ['normalize-package-data', 'npm:2.5.0'], + ['parse-json', 'npm:5.0.1'], + ['type-fest', 'npm:0.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'read-pkg-up', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/read-pkg-up-npm-1.0.1-5b23d2a7ab-05a0d7fd65.zip/node_modules/read-pkg-up/', + packageDependencies: [ + ['read-pkg-up', 'npm:1.0.1'], + ['find-up', 'npm:1.1.2'], + ['read-pkg', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/read-pkg-up-npm-4.0.0-e6ce0004bd-e611538e09.zip/node_modules/read-pkg-up/', + packageDependencies: [ + ['read-pkg-up', 'npm:4.0.0'], + ['find-up', 'npm:3.0.0'], + ['read-pkg', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/read-pkg-up-npm-5.0.0-857897cfb1-119e977712.zip/node_modules/read-pkg-up/', + packageDependencies: [ + ['read-pkg-up', 'npm:5.0.0'], + ['find-up', 'npm:3.0.0'], + ['read-pkg', 'npm:5.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.1', + { + packageLocation: + './.yarn/cache/read-pkg-up-npm-7.0.1-11895bed9a-b8f97cc1f8.zip/node_modules/read-pkg-up/', + packageDependencies: [ + ['read-pkg-up', 'npm:7.0.1'], + ['find-up', 'npm:4.1.0'], + ['read-pkg', 'npm:5.2.0'], + ['type-fest', 'npm:0.8.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'readable-stream', + [ + [ + 'npm:2.3.7', + { + packageLocation: + './.yarn/cache/readable-stream-npm-2.3.7-77b22a9818-6e38265606.zip/node_modules/readable-stream/', + packageDependencies: [ + ['readable-stream', 'npm:2.3.7'], + ['core-util-is', 'npm:1.0.2'], + ['inherits', 'npm:2.0.4'], + ['isarray', 'npm:1.0.0'], + ['process-nextick-args', 'npm:2.0.1'], + ['safe-buffer', 'npm:5.1.2'], + ['string_decoder', 'npm:1.1.1'], + ['util-deprecate', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.6.0', + { + packageLocation: + './.yarn/cache/readable-stream-npm-3.6.0-23a4a5eb56-f178b1daa8.zip/node_modules/readable-stream/', + packageDependencies: [ + ['readable-stream', 'npm:3.6.0'], + ['inherits', 'npm:2.0.4'], + ['string_decoder', 'npm:1.3.0'], + ['util-deprecate', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'readdirp', + [ + [ + 'npm:2.2.1', + { + packageLocation: + './.yarn/cache/readdirp-npm-2.2.1-33cb5df2b8-00b5209ee5.zip/node_modules/readdirp/', + packageDependencies: [ + ['readdirp', 'npm:2.2.1'], + ['graceful-fs', 'npm:4.2.4'], + ['micromatch', 'npm:3.1.10'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.4.0', + { + packageLocation: + './.yarn/cache/readdirp-npm-3.4.0-503e0a2772-0159f43eb0.zip/node_modules/readdirp/', + packageDependencies: [ + ['readdirp', 'npm:3.4.0'], + ['picomatch', 'npm:2.2.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.5.0', + { + packageLocation: + './.yarn/cache/readdirp-npm-3.5.0-a1b1568d32-a64fe56069.zip/node_modules/readdirp/', + packageDependencies: [ + ['readdirp', 'npm:3.5.0'], + ['picomatch', 'npm:2.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'readline-sync', + [ + [ + 'npm:1.4.10', + { + packageLocation: + './.yarn/cache/readline-sync-npm-1.4.10-6809f52ca7-4746ee66b7.zip/node_modules/readline-sync/', + packageDependencies: [['readline-sync', 'npm:1.4.10']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rechoir', + [ + [ + 'npm:0.6.2', + { + packageLocation: + './.yarn/cache/rechoir-npm-0.6.2-0df5f171ec-6646a6bce7.zip/node_modules/rechoir/', + packageDependencies: [ + ['rechoir', 'npm:0.6.2'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'redent', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/redent-npm-1.0.0-b4da60611f-961d06c069.zip/node_modules/redent/', + packageDependencies: [ + ['redent', 'npm:1.0.0'], + ['indent-string', 'npm:2.1.0'], + ['strip-indent', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'reduce-css-calc', + [ + [ + 'npm:2.1.7', + { + packageLocation: + './.yarn/cache/reduce-css-calc-npm-2.1.7-58412738a1-c1cbf51e64.zip/node_modules/reduce-css-calc/', + packageDependencies: [ + ['reduce-css-calc', 'npm:2.1.7'], + ['css-unit-converter', 'npm:1.1.2'], + ['postcss-value-parser', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'redux', + [ + [ + 'npm:4.0.5', + { + packageLocation: + './.yarn/cache/redux-npm-4.0.5-aca53e621f-112739c2fb.zip/node_modules/redux/', + packageDependencies: [ + ['redux', 'npm:4.0.5'], + ['loose-envify', 'npm:1.4.0'], + ['symbol-observable', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'reflect.ownkeys', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/reflect.ownkeys-npm-0.2.0-e3d8f6e4f0-580e5d1e7f.zip/node_modules/reflect.ownkeys/', + packageDependencies: [['reflect.ownkeys', 'npm:0.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regenerate', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/regenerate-npm-1.4.1-a91e5d9564-67fe7ea332.zip/node_modules/regenerate/', + packageDependencies: [['regenerate', 'npm:1.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regenerate-unicode-properties', + [ + [ + 'npm:8.2.0', + { + packageLocation: + './.yarn/cache/regenerate-unicode-properties-npm-8.2.0-0e54c6463c-afe83304fb.zip/node_modules/regenerate-unicode-properties/', + packageDependencies: [ + ['regenerate-unicode-properties', 'npm:8.2.0'], + ['regenerate', 'npm:1.4.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regenerator-runtime', + [ + [ + 'npm:0.13.7', + { + packageLocation: + './.yarn/cache/regenerator-runtime-npm-0.13.7-41bcbe64ea-6ef567c662.zip/node_modules/regenerator-runtime/', + packageDependencies: [['regenerator-runtime', 'npm:0.13.7']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regenerator-transform', + [ + [ + 'npm:0.14.5', + { + packageLocation: + './.yarn/cache/regenerator-transform-npm-0.14.5-40045884e9-ed07c2c1d0.zip/node_modules/regenerator-transform/', + packageDependencies: [ + ['regenerator-transform', 'npm:0.14.5'], + ['@babel/runtime', 'npm:7.10.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regex-not', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/regex-not-npm-1.0.2-06a03c9206-3d6d95b4fd.zip/node_modules/regex-not/', + packageDependencies: [ + ['regex-not', 'npm:1.0.2'], + ['extend-shallow', 'npm:3.0.2'], + ['safe-regex', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regex-parser', + [ + [ + 'npm:2.2.10', + { + packageLocation: + './.yarn/cache/regex-parser-npm-2.2.10-083ae4dcd6-b8c026e9a7.zip/node_modules/regex-parser/', + packageDependencies: [['regex-parser', 'npm:2.2.10']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.11', + { + packageLocation: + './.yarn/cache/regex-parser-npm-2.2.11-946d73634f-434f82a8ce.zip/node_modules/regex-parser/', + packageDependencies: [['regex-parser', 'npm:2.2.11']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regexpp', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/regexpp-npm-2.0.1-ac47f2bc1e-e537f6c1b5.zip/node_modules/regexpp/', + packageDependencies: [['regexpp', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regexpu-core', + [ + [ + 'npm:4.7.0', + { + packageLocation: + './.yarn/cache/regexpu-core-npm-4.7.0-13146d273f-8947f4c4ac.zip/node_modules/regexpu-core/', + packageDependencies: [ + ['regexpu-core', 'npm:4.7.0'], + ['regenerate', 'npm:1.4.1'], + ['regenerate-unicode-properties', 'npm:8.2.0'], + ['regjsgen', 'npm:0.5.2'], + ['regjsparser', 'npm:0.6.4'], + ['unicode-match-property-ecmascript', 'npm:1.0.4'], + ['unicode-match-property-value-ecmascript', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'registry-auth-token', + [ + [ + 'npm:3.4.0', + { + packageLocation: + './.yarn/cache/registry-auth-token-npm-3.4.0-8d37d49151-a5f3e8288f.zip/node_modules/registry-auth-token/', + packageDependencies: [ + ['registry-auth-token', 'npm:3.4.0'], + ['rc', 'npm:1.2.8'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/registry-auth-token-npm-4.2.0-0aada8f019-bbdcbe2210.zip/node_modules/registry-auth-token/', + packageDependencies: [ + ['registry-auth-token', 'npm:4.2.0'], + ['rc', 'npm:1.2.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'registry-url', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/registry-url-npm-3.1.0-68f1c80875-f0bdf9be94.zip/node_modules/registry-url/', + packageDependencies: [ + ['registry-url', 'npm:3.1.0'], + ['rc', 'npm:1.2.8'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.1.0', + { + packageLocation: + './.yarn/cache/registry-url-npm-5.1.0-f58d0ca7ff-50802a1d43.zip/node_modules/registry-url/', + packageDependencies: [ + ['registry-url', 'npm:5.1.0'], + ['rc', 'npm:1.2.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regjsgen', + [ + [ + 'npm:0.5.2', + { + packageLocation: + './.yarn/cache/regjsgen-npm-0.5.2-4c9c408ab2-629afab3d9.zip/node_modules/regjsgen/', + packageDependencies: [['regjsgen', 'npm:0.5.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'regjsparser', + [ + [ + 'npm:0.6.4', + { + packageLocation: + './.yarn/cache/regjsparser-npm-0.6.4-d22abbbbd8-cf7838462e.zip/node_modules/regjsparser/', + packageDependencies: [ + ['regjsparser', 'npm:0.6.4'], + ['jsesc', 'npm:0.5.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rehype-format', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/rehype-format-npm-3.1.0-dcfefbae36-f1fb095521.zip/node_modules/rehype-format/', + packageDependencies: [ + ['rehype-format', 'npm:3.1.0'], + ['hast-util-embedded', 'npm:1.0.5'], + ['hast-util-is-element', 'npm:1.1.0'], + ['hast-util-phrasing', 'npm:1.0.5'], + ['hast-util-whitespace', 'npm:1.0.4'], + ['html-whitespace-sensitive-tag-names', 'npm:1.0.3'], + ['rehype-minify-whitespace', 'npm:4.0.4'], + ['repeat-string', 'npm:1.6.1'], + ['unist-util-visit-parents', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rehype-minify-whitespace', + [ + [ + 'npm:4.0.4', + { + packageLocation: + './.yarn/cache/rehype-minify-whitespace-npm-4.0.4-cd05066695-696189f66a.zip/node_modules/rehype-minify-whitespace/', + packageDependencies: [ + ['rehype-minify-whitespace', 'npm:4.0.4'], + ['collapse-white-space', 'npm:1.0.6'], + ['hast-util-embedded', 'npm:1.0.5'], + ['hast-util-is-element', 'npm:1.1.0'], + ['hast-util-whitespace', 'npm:1.0.4'], + ['unist-util-is', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rehype-stringify', + [ + [ + 'npm:8.0.0', + { + packageLocation: + './.yarn/cache/rehype-stringify-npm-8.0.0-1df3d59817-c1d8472fc0.zip/node_modules/rehype-stringify/', + packageDependencies: [ + ['rehype-stringify', 'npm:8.0.0'], + ['hast-util-to-html', 'npm:7.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'relay-compiler', + [ + [ + 'npm:10.0.0', + { + packageLocation: + './.yarn/cache/relay-compiler-npm-10.0.0-564a878bc1-8f420f3d96.zip/node_modules/relay-compiler/', + packageDependencies: [['relay-compiler', 'npm:10.0.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:10.0.1', + { + packageLocation: + './.yarn/cache/relay-compiler-npm-10.0.1-65fac1eea1-f9caf9bd1d.zip/node_modules/relay-compiler/', + packageDependencies: [['relay-compiler', 'npm:10.0.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:0d29aff9ae5afdd8990e2be771603920ab2d59b5164cd84e0f85b11a3f75d71ccd9baea28e8b2d3b8333f6ddd85a9edc4c9ba67f3127625e4af946bf37dd49d9#npm:10.0.1', + { + packageLocation: + './.yarn/$$virtual/relay-compiler-virtual-96d868f3f2/0/cache/relay-compiler-npm-10.0.1-65fac1eea1-f9caf9bd1d.zip/node_modules/relay-compiler/', + packageDependencies: [ + [ + 'relay-compiler', + 'virtual:0d29aff9ae5afdd8990e2be771603920ab2d59b5164cd84e0f85b11a3f75d71ccd9baea28e8b2d3b8333f6ddd85a9edc4c9ba67f3127625e4af946bf37dd49d9#npm:10.0.1', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/generator', 'npm:7.10.5'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/runtime', 'npm:7.10.5'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ['@types/graphql', null], + [ + 'babel-preset-fbjs', + 'virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0', + ], + ['chalk', 'npm:4.1.0'], + ['fb-watchman', 'npm:2.0.1'], + ['fbjs', 'npm:1.0.0'], + ['glob', 'npm:7.1.6'], + ['graphql', 'npm:15.3.0'], + ['immutable', 'npm:3.7.6'], + ['nullthrows', 'npm:1.1.1'], + ['relay-runtime', 'npm:10.0.1'], + ['signedsource', 'npm:1.0.0'], + ['yargs', 'npm:15.4.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8fbc380fbfb83c446fbdff9c5e4a5a07a118a4ec957bed39a2469c831dc686ce78446613f276fcd08ce9f58738f2ee08b7fd1d21a072eac3274c73f305301c47#npm:10.0.0', + { + packageLocation: + './.yarn/$$virtual/relay-compiler-virtual-b45f36a3fb/0/cache/relay-compiler-npm-10.0.0-564a878bc1-8f420f3d96.zip/node_modules/relay-compiler/', + packageDependencies: [ + [ + 'relay-compiler', + 'virtual:8fbc380fbfb83c446fbdff9c5e4a5a07a118a4ec957bed39a2469c831dc686ce78446613f276fcd08ce9f58738f2ee08b7fd1d21a072eac3274c73f305301c47#npm:10.0.0', + ], + ['@babel/core', 'npm:7.10.5'], + ['@babel/generator', 'npm:7.10.5'], + ['@babel/parser', 'npm:7.10.5'], + ['@babel/runtime', 'npm:7.10.5'], + ['@babel/traverse', 'npm:7.10.5'], + ['@babel/types', 'npm:7.10.5'], + ['@types/graphql', null], + [ + 'babel-preset-fbjs', + 'virtual:96d868f3f25ab8a27e93da34f7f430efa735e7e1ff44077518b96c89c5f6ad00afcfcbd3c5dbbd6d0b6e6830b8372b43c59994147c5579706d8fe912251a92ee#npm:3.3.0', + ], + ['chalk', 'npm:4.1.0'], + ['fb-watchman', 'npm:2.0.1'], + ['fbjs', 'npm:1.0.0'], + ['glob', 'npm:7.1.6'], + ['graphql', 'npm:15.3.0'], + ['immutable', 'npm:3.7.6'], + ['nullthrows', 'npm:1.1.1'], + ['relay-runtime', 'npm:10.0.0'], + ['signedsource', 'npm:1.0.0'], + ['yargs', 'npm:15.4.1'], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'relay-runtime', + [ + [ + 'npm:10.0.0', + { + packageLocation: + './.yarn/cache/relay-runtime-npm-10.0.0-338e7451f2-b4c3a053ee.zip/node_modules/relay-runtime/', + packageDependencies: [ + ['relay-runtime', 'npm:10.0.0'], + ['@babel/runtime', 'npm:7.10.5'], + ['fbjs', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:10.0.1', + { + packageLocation: + './.yarn/cache/relay-runtime-npm-10.0.1-765bc0cd53-03249ccbd0.zip/node_modules/relay-runtime/', + packageDependencies: [ + ['relay-runtime', 'npm:10.0.1'], + ['@babel/runtime', 'npm:7.10.5'], + ['fbjs', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remark', + [ + [ + 'npm:13.0.0', + { + packageLocation: + './.yarn/cache/remark-npm-13.0.0-7879967618-eac686868c.zip/node_modules/remark/', + packageDependencies: [ + ['remark', 'npm:13.0.0'], + ['remark-parse', 'npm:9.0.0'], + ['remark-stringify', 'npm:9.0.0'], + ['unified', 'npm:9.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remark-frontmatter', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/remark-frontmatter-npm-3.0.0-2f35238031-9c70abea78.zip/node_modules/remark-frontmatter/', + packageDependencies: [ + ['remark-frontmatter', 'npm:3.0.0'], + ['mdast-util-frontmatter', 'npm:0.2.0'], + ['micromark-extension-frontmatter', 'npm:0.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remark-mdx', + [ + [ + 'npm:2.0.0-next.8', + { + packageLocation: + './.yarn/unplugged/remark-mdx-npm-2.0.0-next.8-647f1ad542/node_modules/remark-mdx/', + packageDependencies: [ + ['remark-mdx', 'npm:2.0.0-next.8'], + ['parse-entities', 'npm:2.0.0'], + ['remark-stringify', 'npm:8.1.1'], + ['stringify-entities', 'npm:3.0.1'], + ['strip-indent', 'npm:3.0.0'], + ['unist-util-stringify-position', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remark-parse', + [ + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/remark-parse-npm-5.0.0-12afcecf81-e5295c40ef.zip/node_modules/remark-parse/', + packageDependencies: [ + ['remark-parse', 'npm:5.0.0'], + ['collapse-white-space', 'npm:1.0.6'], + ['is-alphabetical', 'npm:1.0.4'], + ['is-decimal', 'npm:1.0.4'], + ['is-whitespace-character', 'npm:1.0.4'], + ['is-word-character', 'npm:1.0.4'], + ['markdown-escapes', 'npm:1.0.4'], + ['parse-entities', 'npm:1.2.2'], + ['repeat-string', 'npm:1.6.1'], + ['state-toggle', 'npm:1.0.3'], + ['trim', 'npm:0.0.1'], + ['trim-trailing-lines', 'npm:1.1.3'], + ['unherit', 'npm:1.1.3'], + ['unist-util-remove-position', 'npm:1.1.4'], + ['vfile-location', 'npm:2.0.6'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.0.3', + { + packageLocation: + './.yarn/cache/remark-parse-npm-8.0.3-e459558b20-c1c1bde733.zip/node_modules/remark-parse/', + packageDependencies: [ + ['remark-parse', 'npm:8.0.3'], + ['ccount', 'npm:1.0.5'], + ['collapse-white-space', 'npm:1.0.6'], + ['is-alphabetical', 'npm:1.0.4'], + ['is-decimal', 'npm:1.0.4'], + ['is-whitespace-character', 'npm:1.0.4'], + ['is-word-character', 'npm:1.0.4'], + ['markdown-escapes', 'npm:1.0.4'], + ['parse-entities', 'npm:2.0.0'], + ['repeat-string', 'npm:1.6.1'], + ['state-toggle', 'npm:1.0.3'], + ['trim', 'npm:0.0.1'], + ['trim-trailing-lines', 'npm:1.1.3'], + ['unherit', 'npm:1.1.3'], + ['unist-util-remove-position', 'npm:2.0.1'], + ['vfile-location', 'npm:3.2.0'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.0.0', + { + packageLocation: + './.yarn/cache/remark-parse-npm-9.0.0-da1fe74019-ca34e41b0c.zip/node_modules/remark-parse/', + packageDependencies: [ + ['remark-parse', 'npm:9.0.0'], + ['mdast-util-from-markdown', 'npm:0.8.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remark-rehype', + [ + [ + 'npm:8.0.0', + { + packageLocation: + './.yarn/cache/remark-rehype-npm-8.0.0-53f84d78d1-a74e51b2a9.zip/node_modules/remark-rehype/', + packageDependencies: [ + ['remark-rehype', 'npm:8.0.0'], + ['mdast-util-to-hast', 'npm:10.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remark-stringify', + [ + [ + 'npm:8.1.1', + { + packageLocation: + './.yarn/cache/remark-stringify-npm-8.1.1-19c0515ee9-39de4617fe.zip/node_modules/remark-stringify/', + packageDependencies: [ + ['remark-stringify', 'npm:8.1.1'], + ['ccount', 'npm:1.0.5'], + ['is-alphanumeric', 'npm:1.0.0'], + ['is-decimal', 'npm:1.0.4'], + ['is-whitespace-character', 'npm:1.0.4'], + ['longest-streak', 'npm:2.0.4'], + ['markdown-escapes', 'npm:1.0.4'], + ['markdown-table', 'npm:2.0.0'], + ['mdast-util-compact', 'npm:2.0.1'], + ['parse-entities', 'npm:2.0.0'], + ['repeat-string', 'npm:1.6.1'], + ['state-toggle', 'npm:1.0.3'], + ['stringify-entities', 'npm:3.0.1'], + ['unherit', 'npm:1.1.3'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.0.0', + { + packageLocation: + './.yarn/cache/remark-stringify-npm-9.0.0-7471a72450-67390a3eaa.zip/node_modules/remark-stringify/', + packageDependencies: [ + ['remark-stringify', 'npm:9.0.0'], + ['mdast-util-to-markdown', 'npm:0.5.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'remove-trailing-separator', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/remove-trailing-separator-npm-1.1.0-16d7231316-17dadf3d1f.zip/node_modules/remove-trailing-separator/', + packageDependencies: [ + ['remove-trailing-separator', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'repeat-element', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/repeat-element-npm-1.1.3-a9dee226b4-6a59b879ef.zip/node_modules/repeat-element/', + packageDependencies: [['repeat-element', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'repeat-string', + [ + [ + 'npm:1.6.1', + { + packageLocation: + './.yarn/cache/repeat-string-npm-1.6.1-bc8e388655-99c431ba7b.zip/node_modules/repeat-string/', + packageDependencies: [['repeat-string', 'npm:1.6.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'repeating', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/repeating-npm-2.0.1-b05693cc77-a788561778.zip/node_modules/repeating/', + packageDependencies: [ + ['repeating', 'npm:2.0.1'], + ['is-finite', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'replace-ext', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/replace-ext-npm-1.0.0-5d4ecb34ac-edc3de6cad.zip/node_modules/replace-ext/', + packageDependencies: [['replace-ext', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'request', + [ + [ + 'npm:2.88.2', + { + packageLocation: + './.yarn/cache/request-npm-2.88.2-f4a57c72c4-7a74841f30.zip/node_modules/request/', + packageDependencies: [ + ['request', 'npm:2.88.2'], + ['aws-sign2', 'npm:0.7.0'], + ['aws4', 'npm:1.10.0'], + ['caseless', 'npm:0.12.0'], + ['combined-stream', 'npm:1.0.8'], + ['extend', 'npm:3.0.2'], + ['forever-agent', 'npm:0.6.1'], + ['form-data', 'npm:2.3.3'], + ['har-validator', 'npm:5.1.3'], + ['http-signature', 'npm:1.2.0'], + ['is-typedarray', 'npm:1.0.0'], + ['isstream', 'npm:0.1.2'], + ['json-stringify-safe', 'npm:5.0.1'], + ['mime-types', 'npm:2.1.27'], + ['oauth-sign', 'npm:0.9.0'], + ['performance-now', 'npm:2.1.0'], + ['qs', 'npm:6.5.2'], + ['safe-buffer', 'npm:5.1.2'], + ['tough-cookie', 'npm:2.5.0'], + ['tunnel-agent', 'npm:0.6.0'], + ['uuid', 'npm:3.4.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'request-light', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/request-light-npm-0.3.0-b5c021a33d-7f7e8088d3.zip/node_modules/request-light/', + packageDependencies: [ + ['request-light', 'npm:0.3.0'], + ['http-proxy-agent', 'npm:2.1.0'], + ['https-proxy-agent', 'npm:2.2.4'], + ['vscode-nls', 'npm:4.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'request-promise-core', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/request-promise-core-npm-1.1.4-cb9fff6c90-7c9c90bf00.zip/node_modules/request-promise-core/', + packageDependencies: [['request-promise-core', 'npm:1.1.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a31f1c3bb1e1ee83c9874a28729a4bf271f57823ba54d985182df9506edb95661d770babcda6933da64b9f9faae385379180b26b8451bc2c70da6471404f82a1#npm:1.1.4', + { + packageLocation: + './.yarn/$$virtual/request-promise-core-virtual-1e0049c8e7/0/cache/request-promise-core-npm-1.1.4-cb9fff6c90-7c9c90bf00.zip/node_modules/request-promise-core/', + packageDependencies: [ + [ + 'request-promise-core', + 'virtual:a31f1c3bb1e1ee83c9874a28729a4bf271f57823ba54d985182df9506edb95661d770babcda6933da64b9f9faae385379180b26b8451bc2c70da6471404f82a1#npm:1.1.4', + ], + ['@types/request', null], + ['lodash', 'npm:4.17.19'], + ['request', 'npm:2.88.2'], + ], + packagePeers: ['@types/request', 'request'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'request-promise-native', + [ + [ + 'npm:1.0.9', + { + packageLocation: + './.yarn/cache/request-promise-native-npm-1.0.9-6ae8e592e8-532570f005.zip/node_modules/request-promise-native/', + packageDependencies: [['request-promise-native', 'npm:1.0.9']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9', + { + packageLocation: + './.yarn/$$virtual/request-promise-native-virtual-a31f1c3bb1/0/cache/request-promise-native-npm-1.0.9-6ae8e592e8-532570f005.zip/node_modules/request-promise-native/', + packageDependencies: [ + [ + 'request-promise-native', + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:1.0.9', + ], + ['@types/request', null], + ['request', 'npm:2.88.2'], + [ + 'request-promise-core', + 'virtual:a31f1c3bb1e1ee83c9874a28729a4bf271f57823ba54d985182df9506edb95661d770babcda6933da64b9f9faae385379180b26b8451bc2c70da6471404f82a1#npm:1.1.4', + ], + ['stealthy-require', 'npm:1.1.1'], + ['tough-cookie', 'npm:2.5.0'], + ], + packagePeers: ['@types/request', 'request'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'require-directory', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/require-directory-npm-2.1.1-8608aee50b-f495d02d89.zip/node_modules/require-directory/', + packageDependencies: [['require-directory', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'require-from-string', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/require-from-string-npm-2.0.2-8557e0db12-74fc30353e.zip/node_modules/require-from-string/', + packageDependencies: [['require-from-string', 'npm:2.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'require-main-filename', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/require-main-filename-npm-2.0.0-03eef65c84-8d3633149a.zip/node_modules/require-main-filename/', + packageDependencies: [['require-main-filename', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'requires-port', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/requires-port-npm-1.0.0-fd036b488a-0db25fb2ac.zip/node_modules/requires-port/', + packageDependencies: [['requires-port', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'resolve', + [ + [ + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + { + packageLocation: + './.yarn/cache/resolve-patch-38ce149af0-4bcfb56886.zip/node_modules/resolve/', + packageDependencies: [ + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ['path-parse', 'npm:1.0.6'], + ], + linkType: 'HARD', + }, + ], + [ + 'patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa', + { + packageLocation: + './.yarn/cache/resolve-patch-55fcdb097c-c4a515b760.zip/node_modules/resolve/', + packageDependencies: [ + [ + 'resolve', + 'patch:resolve@npm%3A1.20.0#builtin::version=1.20.0&hash=3388aa', + ], + ['is-core-module', 'npm:2.2.0'], + ['path-parse', 'npm:1.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'resolve-alpn', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/resolve-alpn-npm-1.0.0-f655c150b7-17baee01c0.zip/node_modules/resolve-alpn/', + packageDependencies: [['resolve-alpn', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'resolve-cwd', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/resolve-cwd-npm-3.0.0-e6f4e296bf-97edfbbf83.zip/node_modules/resolve-cwd/', + packageDependencies: [ + ['resolve-cwd', 'npm:3.0.0'], + ['resolve-from', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'resolve-from', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/resolve-from-npm-3.0.0-0bff35697e-dc0c83b3b8.zip/node_modules/resolve-from/', + packageDependencies: [['resolve-from', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-87a4357c0c.zip/node_modules/resolve-from/', + packageDependencies: [['resolve-from', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/resolve-from-npm-5.0.0-15c9db4d33-0d29fc7012.zip/node_modules/resolve-from/', + packageDependencies: [['resolve-from', 'npm:5.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'resolve-url', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/resolve-url-npm-0.2.1-39edb8f908-9e1cd0028d.zip/node_modules/resolve-url/', + packageDependencies: [['resolve-url', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'resolve-url-loader', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/resolve-url-loader-npm-3.1.1-cf1a268137-7b113ac9e6.zip/node_modules/resolve-url-loader/', + packageDependencies: [ + ['resolve-url-loader', 'npm:3.1.1'], + ['adjust-sourcemap-loader', 'npm:2.0.0'], + ['camelcase', 'npm:5.3.1'], + ['compose-function', 'npm:3.0.3'], + ['convert-source-map', 'npm:1.7.0'], + ['es6-iterator', 'npm:2.0.3'], + ['loader-utils', 'npm:1.2.3'], + ['postcss', 'npm:7.0.21'], + ['rework', 'npm:1.0.1'], + ['rework-visit', 'npm:1.0.0'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.2', + { + packageLocation: + './.yarn/cache/resolve-url-loader-npm-3.1.2-38e8927e94-f7130c22b6.zip/node_modules/resolve-url-loader/', + packageDependencies: [ + ['resolve-url-loader', 'npm:3.1.2'], + ['adjust-sourcemap-loader', 'npm:3.0.0'], + ['camelcase', 'npm:5.3.1'], + ['compose-function', 'npm:3.0.3'], + ['convert-source-map', 'npm:1.7.0'], + ['es6-iterator', 'npm:2.0.3'], + ['loader-utils', 'npm:1.2.3'], + ['postcss', 'npm:7.0.21'], + ['rework', 'npm:1.0.1'], + ['rework-visit', 'npm:1.0.0'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'responselike', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/responselike-npm-1.0.2-d0bf50cde4-c904f14994.zip/node_modules/responselike/', + packageDependencies: [ + ['responselike', 'npm:1.0.2'], + ['lowercase-keys', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/responselike-npm-2.0.0-7813864e97-11d8225dd8.zip/node_modules/responselike/', + packageDependencies: [ + ['responselike', 'npm:2.0.0'], + ['lowercase-keys', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'restore-cursor', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/restore-cursor-npm-1.0.1-a4b4ee9fa3-07ab5114eb.zip/node_modules/restore-cursor/', + packageDependencies: [ + ['restore-cursor', 'npm:1.0.1'], + ['exit-hook', 'npm:1.1.1'], + ['onetime', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/restore-cursor-npm-2.0.0-80278eb6b7-950c88d84a.zip/node_modules/restore-cursor/', + packageDependencies: [ + ['restore-cursor', 'npm:2.0.0'], + ['onetime', 'npm:2.0.1'], + ['signal-exit', 'npm:3.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/restore-cursor-npm-3.1.0-52c5a4c98f-38e0af0830.zip/node_modules/restore-cursor/', + packageDependencies: [ + ['restore-cursor', 'npm:3.1.0'], + ['onetime', 'npm:5.1.0'], + ['signal-exit', 'npm:3.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ret', + [ + [ + 'npm:0.1.15', + { + packageLocation: + './.yarn/cache/ret-npm-0.1.15-0d3c19de76-749c2fcae7.zip/node_modules/ret/', + packageDependencies: [['ret', 'npm:0.1.15']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'retry', + [ + [ + 'npm:0.12.0', + { + packageLocation: + './.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-51f2fddddb.zip/node_modules/retry/', + packageDependencies: [['retry', 'npm:0.12.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'reusify', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/reusify-npm-1.0.4-95ac4aec11-08ef02ed05.zip/node_modules/reusify/', + packageDependencies: [['reusify', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rework', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/rework-npm-1.0.1-c7d98665a9-fffaf7b8df.zip/node_modules/rework/', + packageDependencies: [ + ['rework', 'npm:1.0.1'], + ['convert-source-map', 'npm:0.3.5'], + ['css', 'npm:2.2.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rework-visit', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/rework-visit-npm-1.0.0-0be9a8d45e-ff782e79aa.zip/node_modules/rework-visit/', + packageDependencies: [['rework-visit', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rgb-regex', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/rgb-regex-npm-1.0.1-c867413fad-7701e22ec4.zip/node_modules/rgb-regex/', + packageDependencies: [['rgb-regex', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rgba-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/rgba-regex-npm-1.0.0-7fe6ce6060-4ffb946276.zip/node_modules/rgba-regex/', + packageDependencies: [['rgba-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rimraf', + [ + [ + 'npm:2.6.3', + { + packageLocation: + './.yarn/cache/rimraf-npm-2.6.3-f34c6c72ec-c9ce1854f1.zip/node_modules/rimraf/', + packageDependencies: [ + ['rimraf', 'npm:2.6.3'], + ['glob', 'npm:7.1.6'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.1', + { + packageLocation: + './.yarn/cache/rimraf-npm-2.7.1-9a71f3cc37-059efac283.zip/node_modules/rimraf/', + packageDependencies: [ + ['rimraf', 'npm:2.7.1'], + ['glob', 'npm:7.1.6'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-f0de3e4455.zip/node_modules/rimraf/', + packageDependencies: [ + ['rimraf', 'npm:3.0.2'], + ['glob', 'npm:7.1.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ripemd160', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/ripemd160-npm-2.0.2-7b1fb8dc76-e0370fbe77.zip/node_modules/ripemd160/', + packageDependencies: [ + ['ripemd160', 'npm:2.0.2'], + ['hash-base', 'npm:3.1.0'], + ['inherits', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'roarr', + [ + [ + 'npm:2.15.3', + { + packageLocation: + './.yarn/cache/roarr-npm-2.15.3-6a59ae3c68-e311976be7.zip/node_modules/roarr/', + packageDependencies: [ + ['roarr', 'npm:2.15.3'], + ['boolean', 'npm:3.0.1'], + ['detect-node', 'npm:2.0.4'], + ['globalthis', 'npm:1.0.1'], + ['json-stringify-safe', 'npm:5.0.1'], + ['semver-compare', 'npm:1.0.0'], + ['sprintf-js', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rollup', + [ + [ + 'npm:2.32.1', + { + packageLocation: + './.yarn/cache/rollup-npm-2.32.1-d2d2a2aab7-b231dfa7b0.zip/node_modules/rollup/', + packageDependencies: [ + ['rollup', 'npm:2.32.1'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.1.3#builtin::version=2.1.3&hash=11e9ea', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.40.0', + { + packageLocation: + './.yarn/cache/rollup-npm-2.40.0-f6c7b660f3-c512236087.zip/node_modules/rollup/', + packageDependencies: [ + ['rollup', 'npm:2.40.0'], + [ + 'fsevents', + 'patch:fsevents@npm%3A2.3.2#builtin::version=2.3.2&hash=11e9ea', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rollup-plugin-dts', + [ + [ + 'npm:1.4.13', + { + packageLocation: + './.yarn/cache/rollup-plugin-dts-npm-1.4.13-0f22439823-6ce7619d55.zip/node_modules/rollup-plugin-dts/', + packageDependencies: [['rollup-plugin-dts', 'npm:1.4.13']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:5b90510b026d7a2311083a18cacc86fbd3969a3562e3b7dbd8c864efa3c60cdffbbc3017a5442b96c07bcfcf4010a593556e7ee9f5761d6ce56b732dc2585953#npm:1.4.13', + { + packageLocation: + './.yarn/$$virtual/rollup-plugin-dts-virtual-8408df3267/0/cache/rollup-plugin-dts-npm-1.4.13-0f22439823-6ce7619d55.zip/node_modules/rollup-plugin-dts/', + packageDependencies: [ + [ + 'rollup-plugin-dts', + 'virtual:5b90510b026d7a2311083a18cacc86fbd3969a3562e3b7dbd8c864efa3c60cdffbbc3017a5442b96c07bcfcf4010a593556e7ee9f5761d6ce56b732dc2585953#npm:1.4.13', + ], + ['@babel/code-frame', 'npm:7.10.4'], + ['@types/rollup', null], + ['@types/typescript', null], + ['rollup', 'npm:2.32.1'], + [ + 'typescript', + 'patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e', + ], + ], + packagePeers: [ + '@types/rollup', + '@types/typescript', + 'rollup', + 'typescript', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'root-check', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/root-check-npm-1.0.0-48cfd8e048-aece780b00.zip/node_modules/root-check/', + packageDependencies: [ + ['root-check', 'npm:1.0.0'], + ['downgrade-root', 'npm:1.2.2'], + ['sudo-block', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rsvp', + [ + [ + 'npm:4.8.5', + { + packageLocation: + './.yarn/cache/rsvp-npm-4.8.5-09f3c6ed40-eb70274fb3.zip/node_modules/rsvp/', + packageDependencies: [['rsvp', 'npm:4.8.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'run-async', + [ + [ + 'npm:2.4.1', + { + packageLocation: + './.yarn/cache/run-async-npm-2.4.1-a94bb90861-b1f06da336.zip/node_modules/run-async/', + packageDependencies: [['run-async', 'npm:2.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'run-parallel', + [ + [ + 'npm:1.1.9', + { + packageLocation: + './.yarn/cache/run-parallel-npm-1.1.9-83c6b2d620-a05ca86e99.zip/node_modules/run-parallel/', + packageDependencies: [['run-parallel', 'npm:1.1.9']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'run-queue', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/run-queue-npm-1.0.3-a704fcadc0-ffc37a7b55.zip/node_modules/run-queue/', + packageDependencies: [ + ['run-queue', 'npm:1.0.3'], + ['aproba', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rx', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/rx-npm-4.1.0-46beeec71d-2f88186088.zip/node_modules/rx/', + packageDependencies: [['rx', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'rxjs', + [ + [ + 'npm:6.6.0', + { + packageLocation: + './.yarn/cache/rxjs-npm-6.6.0-bc6bb23708-32d733487c.zip/node_modules/rxjs/', + packageDependencies: [ + ['rxjs', 'npm:6.6.0'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.6.6', + { + packageLocation: + './.yarn/cache/rxjs-npm-6.6.6-6db0e615a2-c97b410e79.zip/node_modules/rxjs/', + packageDependencies: [ + ['rxjs', 'npm:6.6.6'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'safe-buffer', + [ + [ + 'npm:5.1.2', + { + packageLocation: + './.yarn/cache/safe-buffer-npm-5.1.2-c27fedf6c4-2708587c1b.zip/node_modules/safe-buffer/', + packageDependencies: [['safe-buffer', 'npm:5.1.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.2.1', + { + packageLocation: + './.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-0bb57f0d8f.zip/node_modules/safe-buffer/', + packageDependencies: [['safe-buffer', 'npm:5.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'safe-regex', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/safe-regex-npm-1.1.0-a908e8515c-c355e3163f.zip/node_modules/safe-regex/', + packageDependencies: [ + ['safe-regex', 'npm:1.1.0'], + ['ret', 'npm:0.1.15'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'safer-buffer', + [ + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-549ba83f5b.zip/node_modules/safer-buffer/', + packageDependencies: [['safer-buffer', 'npm:2.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sane', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/sane-npm-4.1.0-8ab7d6a963-e384e25202.zip/node_modules/sane/', + packageDependencies: [ + ['sane', 'npm:4.1.0'], + ['@cnakazawa/watch', 'npm:1.0.4'], + ['anymatch', 'npm:2.0.0'], + ['capture-exit', 'npm:2.0.0'], + ['exec-sh', 'npm:0.3.4'], + ['execa', 'npm:1.0.0'], + ['fb-watchman', 'npm:2.0.1'], + ['micromatch', 'npm:3.1.10'], + ['minimist', 'npm:1.2.5'], + ['walker', 'npm:1.0.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sanitize-filename', + [ + [ + 'npm:1.6.3', + { + packageLocation: + './.yarn/cache/sanitize-filename-npm-1.6.3-cb83b2c2aa-3e15159360.zip/node_modules/sanitize-filename/', + packageDependencies: [ + ['sanitize-filename', 'npm:1.6.3'], + ['truncate-utf8-bytes', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sass-loader', + [ + [ + 'npm:10.0.5', + { + packageLocation: + './.yarn/cache/sass-loader-npm-10.0.5-bad7d19801-6ff9bafd12.zip/node_modules/sass-loader/', + packageDependencies: [['sass-loader', 'npm:10.0.5']], + linkType: 'SOFT', + }, + ], + [ + 'npm:8.0.2', + { + packageLocation: + './.yarn/cache/sass-loader-npm-8.0.2-f0d209ad64-e23d9b308f.zip/node_modules/sass-loader/', + packageDependencies: [['sass-loader', 'npm:8.0.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + { + packageLocation: + './.yarn/$$virtual/sass-loader-virtual-faf1965b7c/0/cache/sass-loader-npm-10.0.5-bad7d19801-6ff9bafd12.zip/node_modules/sass-loader/', + packageDependencies: [ + [ + 'sass-loader', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:10.0.5', + ], + ['@types/fibers', null], + ['@types/node-sass', null], + ['@types/sass', null], + ['@types/webpack', null], + ['fibers', null], + ['klona', 'npm:2.0.4'], + ['loader-utils', 'npm:2.0.0'], + ['neo-async', 'npm:2.6.2'], + ['node-sass', null], + ['sass', null], + ['schema-utils', 'npm:3.0.0'], + ['semver', 'npm:7.3.2'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ], + packagePeers: [ + '@types/fibers', + '@types/node-sass', + '@types/sass', + '@types/webpack', + 'fibers', + 'node-sass', + 'sass', + 'webpack', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:8.0.2', + { + packageLocation: + './.yarn/$$virtual/sass-loader-virtual-18fee8e34d/0/cache/sass-loader-npm-8.0.2-f0d209ad64-e23d9b308f.zip/node_modules/sass-loader/', + packageDependencies: [ + [ + 'sass-loader', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:8.0.2', + ], + ['@types/fibers', null], + ['@types/node-sass', null], + ['@types/sass', null], + ['@types/webpack', null], + ['clone-deep', 'npm:4.0.1'], + ['fibers', null], + ['loader-utils', 'npm:1.2.3'], + ['neo-async', 'npm:2.6.1'], + ['node-sass', null], + ['sass', null], + ['schema-utils', 'npm:2.7.0'], + ['semver', 'npm:6.3.0'], + ['webpack', 'npm:4.44.0'], + ], + packagePeers: [ + '@types/fibers', + '@types/node-sass', + '@types/sass', + '@types/webpack', + 'fibers', + 'node-sass', + 'sass', + 'webpack', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:8.0.2', + { + packageLocation: + './.yarn/$$virtual/sass-loader-virtual-6c012b8379/0/cache/sass-loader-npm-8.0.2-f0d209ad64-e23d9b308f.zip/node_modules/sass-loader/', + packageDependencies: [ + [ + 'sass-loader', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:8.0.2', + ], + ['@types/fibers', null], + ['@types/node-sass', null], + ['@types/sass', null], + ['@types/webpack', null], + ['clone-deep', 'npm:4.0.1'], + ['fibers', null], + ['loader-utils', 'npm:1.2.3'], + ['neo-async', 'npm:2.6.1'], + ['node-sass', null], + ['sass', null], + ['schema-utils', 'npm:2.7.0'], + ['semver', 'npm:6.3.0'], + ['webpack', 'npm:4.43.0'], + ], + packagePeers: [ + '@types/fibers', + '@types/node-sass', + '@types/sass', + '@types/webpack', + 'fibers', + 'node-sass', + 'sass', + 'webpack', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sax', + [ + [ + 'npm:1.2.4', + { + packageLocation: + './.yarn/cache/sax-npm-1.2.4-178f05f12f-9d7668d691.zip/node_modules/sax/', + packageDependencies: [['sax', 'npm:1.2.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'saxes', + [ + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/saxes-npm-5.0.1-57abf031ae-6ad14be68d.zip/node_modules/saxes/', + packageDependencies: [ + ['saxes', 'npm:5.0.1'], + ['xmlchars', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sc', + [ + [ + 'workspace:.', + { + packageLocation: './', + packageDependencies: [ + ['sc', 'workspace:.'], + [ + '@yarnpkg/pnpify', + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:2.1.0', + ], + ['danger', 'npm:10.6.0'], + ['eslint', 'npm:6.8.0'], + ['husky', 'npm:6.0.0'], + ['prettier', 'npm:2.3.0'], + [ + 'pretty-quick', + 'virtual:69eb49da430770a2bf2d5a177253e89994fe488aa39323ec7b1057cc082ee16013edb8490d3a64453d0d756970c2125c40b1984fdcd41e89a1f66d78f3eae2a8#npm:3.1.0', + ], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['workspace', 'npm:0.0.1-preview.1'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'scheduler', + [ + [ + 'npm:0.18.0', + { + packageLocation: + './.yarn/cache/scheduler-npm-0.18.0-ee0cc1e577-007678c559.zip/node_modules/scheduler/', + packageDependencies: [ + ['scheduler', 'npm:0.18.0'], + ['loose-envify', 'npm:1.4.0'], + ['object-assign', 'npm:4.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.19.1', + { + packageLocation: + './.yarn/cache/scheduler-npm-0.19.1-a4dd0ffd3a-804f990b9f.zip/node_modules/scheduler/', + packageDependencies: [ + ['scheduler', 'npm:0.19.1'], + ['loose-envify', 'npm:1.4.0'], + ['object-assign', 'npm:4.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'schema-utils', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/schema-utils-npm-1.0.0-2b49db17d1-d2f753e7a1.zip/node_modules/schema-utils/', + packageDependencies: [ + ['schema-utils', 'npm:1.0.0'], + ['ajv', 'npm:6.12.3'], + [ + 'ajv-errors', + 'virtual:2b49db17d1e4e8854e6e7543c07eb7bc19ec9da65a1b99b9cb28e764846d419e5ecd6e057ad65249f2b928862ffd70dbf8a7c79643ccdd7c1c40cab5b59aa03f#npm:1.0.1', + ], + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.6.6', + { + packageLocation: + './.yarn/cache/schema-utils-npm-2.6.6-31a26805d3-78ae62749e.zip/node_modules/schema-utils/', + packageDependencies: [ + ['schema-utils', 'npm:2.6.6'], + ['ajv', 'npm:6.12.3'], + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.0', + { + packageLocation: + './.yarn/cache/schema-utils-npm-2.7.0-b668f12427-5d3e7c9e53.zip/node_modules/schema-utils/', + packageDependencies: [ + ['schema-utils', 'npm:2.7.0'], + ['@types/json-schema', 'npm:7.0.5'], + ['ajv', 'npm:6.12.3'], + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.7.1', + { + packageLocation: + './.yarn/cache/schema-utils-npm-2.7.1-f84d18c473-3851bcc7e4.zip/node_modules/schema-utils/', + packageDependencies: [ + ['schema-utils', 'npm:2.7.1'], + ['@types/json-schema', 'npm:7.0.7'], + ['ajv', 'npm:6.12.6'], + [ + 'ajv-keywords', + 'virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/schema-utils-npm-3.0.0-e97702da81-a084f593f2.zip/node_modules/schema-utils/', + packageDependencies: [ + ['schema-utils', 'npm:3.0.0'], + ['@types/json-schema', 'npm:7.0.7'], + ['ajv', 'npm:6.12.6'], + [ + 'ajv-keywords', + 'virtual:f84d18c473fad3c01e1cf352f81ad13de804ca40da5bf6e752464a2e78dcb097ad579b06da5ff33a55ba9957fb9c74909b99fc5e215420a3f9b5dc87ad71363b#npm:3.5.2', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'scoped-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/scoped-regex-npm-1.0.0-3bff715653-6f42bc147b.zip/node_modules/scoped-regex/', + packageDependencies: [['scoped-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'section-matter', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/section-matter-npm-1.0.0-2f79fd59d6-4c64ed0cf3.zip/node_modules/section-matter/', + packageDependencies: [ + ['section-matter', 'npm:1.0.0'], + ['extend-shallow', 'npm:2.0.1'], + ['kind-of', 'npm:6.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'semver', + [ + [ + 'npm:5.7.1', + { + packageLocation: + './.yarn/cache/semver-npm-5.7.1-40bcea106b-06ff0ed753.zip/node_modules/semver/', + packageDependencies: [['semver', 'npm:5.7.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.3.0', + { + packageLocation: + './.yarn/cache/semver-npm-6.3.0-b3eace8bfd-f0d155c06a.zip/node_modules/semver/', + packageDependencies: [['semver', 'npm:6.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.0', + { + packageLocation: + './.yarn/cache/semver-npm-7.0.0-218e8c00ca-5162b31e99.zip/node_modules/semver/', + packageDependencies: [['semver', 'npm:7.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:7.3.2', + { + packageLocation: + './.yarn/cache/semver-npm-7.3.2-161b023bbb-bceb46d396.zip/node_modules/semver/', + packageDependencies: [['semver', 'npm:7.3.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'semver-compare', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/semver-compare-npm-1.0.0-33f7033df0-9f3a74ca5f.zip/node_modules/semver-compare/', + packageDependencies: [['semver-compare', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'semver-diff', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/semver-diff-npm-2.1.0-eb54e62139-b24b825e81.zip/node_modules/semver-diff/', + packageDependencies: [ + ['semver-diff', 'npm:2.1.0'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/semver-diff-npm-3.1.1-1207a795e9-d5c9b693e6.zip/node_modules/semver-diff/', + packageDependencies: [ + ['semver-diff', 'npm:3.1.1'], + ['semver', 'npm:6.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'semver-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/semver-regex-npm-1.0.0-95aa99f4f8-bc76b860c2.zip/node_modules/semver-regex/', + packageDependencies: [['semver-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'semver-truncate', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/semver-truncate-npm-1.1.2-64f385c106-5aefbceeed.zip/node_modules/semver-truncate/', + packageDependencies: [ + ['semver-truncate', 'npm:1.1.2'], + ['semver', 'npm:5.7.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'send', + [ + [ + 'npm:0.17.1', + { + packageLocation: + './.yarn/cache/send-npm-0.17.1-aad5512679-58e4ab2e07.zip/node_modules/send/', + packageDependencies: [ + ['send', 'npm:0.17.1'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['depd', 'npm:1.1.2'], + ['destroy', 'npm:1.0.4'], + ['encodeurl', 'npm:1.0.2'], + ['escape-html', 'npm:1.0.3'], + ['etag', 'npm:1.8.1'], + ['fresh', 'npm:0.5.2'], + ['http-errors', 'npm:1.7.3'], + ['mime', 'npm:1.6.0'], + ['ms', 'npm:2.1.1'], + ['on-finished', 'npm:2.3.0'], + ['range-parser', 'npm:1.2.1'], + ['statuses', 'npm:1.5.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'serialize-error', + [ + [ + 'npm:7.0.1', + { + packageLocation: + './.yarn/cache/serialize-error-npm-7.0.1-c0b3f881a0-2ed4699735.zip/node_modules/serialize-error/', + packageDependencies: [ + ['serialize-error', 'npm:7.0.1'], + ['type-fest', 'npm:0.13.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'serialize-javascript', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/serialize-javascript-npm-3.1.0-2e1a02b19b-e3036658c2.zip/node_modules/serialize-javascript/', + packageDependencies: [ + ['serialize-javascript', 'npm:3.1.0'], + ['randombytes', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'serve-static', + [ + [ + 'npm:1.14.1', + { + packageLocation: + './.yarn/cache/serve-static-npm-1.14.1-a7afb1d3b3-97e8c94ec0.zip/node_modules/serve-static/', + packageDependencies: [ + ['serve-static', 'npm:1.14.1'], + ['encodeurl', 'npm:1.0.2'], + ['escape-html', 'npm:1.0.3'], + ['parseurl', 'npm:1.3.3'], + ['send', 'npm:0.17.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'set-blocking', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-0ac2403b0c.zip/node_modules/set-blocking/', + packageDependencies: [['set-blocking', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'set-getter', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/set-getter-npm-0.1.0-9664f89372-931cedb99d.zip/node_modules/set-getter/', + packageDependencies: [ + ['set-getter', 'npm:0.1.0'], + ['to-object-path', 'npm:0.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'set-value', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/set-value-npm-2.0.1-35da5f8180-a97a99a00c.zip/node_modules/set-value/', + packageDependencies: [ + ['set-value', 'npm:2.0.1'], + ['extend-shallow', 'npm:2.0.1'], + ['is-extendable', 'npm:0.1.1'], + ['is-plain-object', 'npm:2.0.4'], + ['split-string', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'setimmediate', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/setimmediate-npm-1.0.5-54587459b6-87884d8add.zip/node_modules/setimmediate/', + packageDependencies: [['setimmediate', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'setprototypeof', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/setprototypeof-npm-1.1.1-706b6318ec-0efed4da5a.zip/node_modules/setprototypeof/', + packageDependencies: [['setprototypeof', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/setprototypeof-npm-1.2.0-0fedbdcd3a-7269143985.zip/node_modules/setprototypeof/', + packageDependencies: [['setprototypeof', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sha.js', + [ + [ + 'npm:2.4.11', + { + packageLocation: + './.yarn/cache/sha.js-npm-2.4.11-14868df4ca-7554240ab7.zip/node_modules/sha.js/', + packageDependencies: [ + ['sha.js', 'npm:2.4.11'], + ['inherits', 'npm:2.0.4'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shallow-clone', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/shallow-clone-npm-3.0.1-dab5873d0d-e329e054c2.zip/node_modules/shallow-clone/', + packageDependencies: [ + ['shallow-clone', 'npm:3.0.1'], + ['kind-of', 'npm:6.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shallowequal', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/shallowequal-npm-1.1.0-6688d419cb-15820dd544.zip/node_modules/shallowequal/', + packageDependencies: [['shallowequal', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sharp', + [ + [ + 'npm:0.26.3', + { + packageLocation: + './.yarn/unplugged/sharp-npm-0.26.3-cfe1abe726/node_modules/sharp/', + packageDependencies: [ + ['sharp', 'npm:0.26.3'], + ['array-flatten', 'npm:3.0.0'], + ['color', 'npm:3.1.3'], + ['detect-libc', 'npm:1.0.3'], + ['node-addon-api', 'npm:3.2.0'], + ['node-gyp', 'npm:7.0.0'], + ['npmlog', 'npm:4.1.2'], + ['prebuild-install', 'npm:6.1.2'], + ['semver', 'npm:7.3.2'], + ['simple-get', 'npm:4.0.0'], + ['tar-fs', 'npm:2.1.1'], + ['tunnel-agent', 'npm:0.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shebang-command', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/shebang-command-npm-1.2.0-8990ba5d1d-2a1e0092a6.zip/node_modules/shebang-command/', + packageDependencies: [ + ['shebang-command', 'npm:1.2.0'], + ['shebang-regex', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-85aa394d8c.zip/node_modules/shebang-command/', + packageDependencies: [ + ['shebang-command', 'npm:2.0.0'], + ['shebang-regex', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shebang-regex', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/shebang-regex-npm-1.0.0-c3612b74e9-cf1a41cb09.zip/node_modules/shebang-regex/', + packageDependencies: [['shebang-regex', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-ea18044ffa.zip/node_modules/shebang-regex/', + packageDependencies: [['shebang-regex', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shell-quote', + [ + [ + 'npm:1.7.2', + { + packageLocation: + './.yarn/cache/shell-quote-npm-1.7.2-8e2768dbb0-3b3d06814c.zip/node_modules/shell-quote/', + packageDependencies: [['shell-quote', 'npm:1.7.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shelljs', + [ + [ + 'npm:0.8.4', + { + packageLocation: + './.yarn/cache/shelljs-npm-0.8.4-e2890f4ce2-bdf68e3c2a.zip/node_modules/shelljs/', + packageDependencies: [ + ['shelljs', 'npm:0.8.4'], + ['glob', 'npm:7.1.6'], + ['interpret', 'npm:1.4.0'], + ['rechoir', 'npm:0.6.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'shellwords', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/shellwords-npm-0.1.1-a091a78197-3559ff5509.zip/node_modules/shellwords/', + packageDependencies: [['shellwords', 'npm:0.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'signal-exit', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/signal-exit-npm-3.0.3-5a2d797648-f8f3fec95c.zip/node_modules/signal-exit/', + packageDependencies: [['signal-exit', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'signedsource', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/signedsource-npm-1.0.0-1e8a9aacd0-e6fdfce197.zip/node_modules/signedsource/', + packageDependencies: [['signedsource', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'simple-concat', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4623960448.zip/node_modules/simple-concat/', + packageDependencies: [['simple-concat', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'simple-get', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/simple-get-npm-3.1.0-8c6f03c4cd-f56f08765e.zip/node_modules/simple-get/', + packageDependencies: [ + ['simple-get', 'npm:3.1.0'], + ['decompress-response', 'npm:4.2.1'], + ['once', 'npm:1.4.0'], + ['simple-concat', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/simple-get-npm-4.0.0-14ed0bd6c2-91c007260d.zip/node_modules/simple-get/', + packageDependencies: [ + ['simple-get', 'npm:4.0.0'], + ['decompress-response', 'npm:6.0.0'], + ['once', 'npm:1.4.0'], + ['simple-concat', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'simple-git', + [ + [ + 'npm:1.124.0', + { + packageLocation: + './.yarn/cache/simple-git-npm-1.124.0-7df7767b88-9e5f0da050.zip/node_modules/simple-git/', + packageDependencies: [ + ['simple-git', 'npm:1.124.0'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'simple-swizzle', + [ + [ + 'npm:0.2.2', + { + packageLocation: + './.yarn/cache/simple-swizzle-npm-0.2.2-8dee37fad1-a5a2c1c86c.zip/node_modules/simple-swizzle/', + packageDependencies: [ + ['simple-swizzle', 'npm:0.2.2'], + ['is-arrayish', 'npm:0.3.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sisteransi', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/sisteransi-npm-1.0.5-af60cc0cfa-6554debe10.zip/node_modules/sisteransi/', + packageDependencies: [['sisteransi', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'slash', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/slash-npm-1.0.0-a244873c30-fb026d08e4.zip/node_modules/slash/', + packageDependencies: [['slash', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/slash-npm-2.0.0-69009eac54-19b39a8b71.zip/node_modules/slash/', + packageDependencies: [['slash', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/slash-npm-3.0.0-b87de2279a-fc3e8597d8.zip/node_modules/slash/', + packageDependencies: [['slash', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'slice-ansi', + [ + [ + 'npm:0.0.4', + { + packageLocation: + './.yarn/cache/slice-ansi-npm-0.0.4-c4208829d1-8fa79b3017.zip/node_modules/slice-ansi/', + packageDependencies: [['slice-ansi', 'npm:0.0.4']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/slice-ansi-npm-2.1.0-02505ccc06-7578393cac.zip/node_modules/slice-ansi/', + packageDependencies: [ + ['slice-ansi', 'npm:2.1.0'], + ['ansi-styles', 'npm:3.2.1'], + ['astral-regex', 'npm:1.0.0'], + ['is-fullwidth-code-point', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'snapdragon', + [ + [ + 'npm:0.8.2', + { + packageLocation: + './.yarn/cache/snapdragon-npm-0.8.2-2bcc47d217-c30b63a732.zip/node_modules/snapdragon/', + packageDependencies: [ + ['snapdragon', 'npm:0.8.2'], + ['base', 'npm:0.11.2'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['define-property', 'npm:0.2.5'], + ['extend-shallow', 'npm:2.0.1'], + ['map-cache', 'npm:0.2.2'], + ['source-map', 'npm:0.5.7'], + ['source-map-resolve', 'npm:0.5.3'], + ['use', 'npm:3.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'snapdragon-node', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/snapdragon-node-npm-2.1.1-78bc70e8e2-75918b0d60.zip/node_modules/snapdragon-node/', + packageDependencies: [ + ['snapdragon-node', 'npm:2.1.1'], + ['define-property', 'npm:1.0.0'], + ['isobject', 'npm:3.0.1'], + ['snapdragon-util', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'snapdragon-util', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/snapdragon-util-npm-3.0.1-36b5a7829d-d1a7ab4171.zip/node_modules/snapdragon-util/', + packageDependencies: [ + ['snapdragon-util', 'npm:3.0.1'], + ['kind-of', 'npm:3.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sort-keys', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/sort-keys-npm-1.1.2-2ac0ab2d94-78d9165ed3.zip/node_modules/sort-keys/', + packageDependencies: [ + ['sort-keys', 'npm:1.1.2'], + ['is-plain-obj', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/sort-keys-npm-2.0.0-4f517eb415-c0437ce7fb.zip/node_modules/sort-keys/', + packageDependencies: [ + ['sort-keys', 'npm:2.0.0'], + ['is-plain-obj', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sort-on', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/sort-on-npm-3.0.0-c592debd88-184ec83f7c.zip/node_modules/sort-on/', + packageDependencies: [ + ['sort-on', 'npm:3.0.0'], + ['arrify', 'npm:1.0.1'], + ['dot-prop', 'npm:4.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'source-list-map', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/source-list-map-npm-2.0.1-625c551052-d8d45f2998.zip/node_modules/source-list-map/', + packageDependencies: [['source-list-map', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'source-map', + [ + [ + 'npm:0.5.7', + { + packageLocation: + './.yarn/cache/source-map-npm-0.5.7-7c3f035429-737face965.zip/node_modules/source-map/', + packageDependencies: [['source-map', 'npm:0.5.7']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.6.1', + { + packageLocation: + './.yarn/cache/source-map-npm-0.6.1-1a3621db16-8647829a06.zip/node_modules/source-map/', + packageDependencies: [['source-map', 'npm:0.6.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.7.3', + { + packageLocation: + './.yarn/cache/source-map-npm-0.7.3-e3b4f7982a-351ce26ffa.zip/node_modules/source-map/', + packageDependencies: [['source-map', 'npm:0.7.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.8.0-beta.0', + { + packageLocation: + './.yarn/cache/source-map-npm-0.8.0-beta.0-688a309e94-c5f93fd367.zip/node_modules/source-map/', + packageDependencies: [ + ['source-map', 'npm:0.8.0-beta.0'], + ['whatwg-url', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'source-map-resolve', + [ + [ + 'npm:0.5.3', + { + packageLocation: + './.yarn/cache/source-map-resolve-npm-0.5.3-6502ae65ba-042ad0c0ba.zip/node_modules/source-map-resolve/', + packageDependencies: [ + ['source-map-resolve', 'npm:0.5.3'], + ['atob', 'npm:2.1.2'], + ['decode-uri-component', 'npm:0.2.0'], + ['resolve-url', 'npm:0.2.1'], + ['source-map-url', 'npm:0.4.0'], + ['urix', 'npm:0.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'source-map-support', + [ + [ + 'npm:0.5.19', + { + packageLocation: + './.yarn/cache/source-map-support-npm-0.5.19-65b33ae61e-59d4efaae9.zip/node_modules/source-map-support/', + packageDependencies: [ + ['source-map-support', 'npm:0.5.19'], + ['buffer-from', 'npm:1.1.1'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'source-map-url', + [ + [ + 'npm:0.4.0', + { + packageLocation: + './.yarn/cache/source-map-url-npm-0.4.0-011efde48b-84d509cfa1.zip/node_modules/source-map-url/', + packageDependencies: [['source-map-url', 'npm:0.4.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'space-separated-tokens', + [ + [ + 'npm:1.1.5', + { + packageLocation: + './.yarn/cache/space-separated-tokens-npm-1.1.5-2352c83473-2b143776c3.zip/node_modules/space-separated-tokens/', + packageDependencies: [['space-separated-tokens', 'npm:1.1.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'spawn-command', + [ + [ + 'npm:0.0.2', + { + packageLocation: + './.yarn/cache/spawn-command-npm-0.0.2-014d4d5d9f-961fb1551f.zip/node_modules/spawn-command/', + packageDependencies: [['spawn-command', 'npm:0.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'spawn-sync', + [ + [ + 'npm:1.0.15', + { + packageLocation: + './.yarn/unplugged/spawn-sync-npm-1.0.15-ae144228c0/node_modules/spawn-sync/', + packageDependencies: [ + ['spawn-sync', 'npm:1.0.15'], + ['concat-stream', 'npm:1.6.2'], + ['os-shim', 'npm:0.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'spdx-correct', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/spdx-correct-npm-3.1.1-47f574c27a-f3413eb225.zip/node_modules/spdx-correct/', + packageDependencies: [ + ['spdx-correct', 'npm:3.1.1'], + ['spdx-expression-parse', 'npm:3.0.1'], + ['spdx-license-ids', 'npm:3.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'spdx-exceptions', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/spdx-exceptions-npm-2.3.0-2b68dad75a-3cbd249889.zip/node_modules/spdx-exceptions/', + packageDependencies: [['spdx-exceptions', 'npm:2.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'spdx-expression-parse', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/spdx-expression-parse-npm-3.0.1-b718cbb35a-f0211cada3.zip/node_modules/spdx-expression-parse/', + packageDependencies: [ + ['spdx-expression-parse', 'npm:3.0.1'], + ['spdx-exceptions', 'npm:2.3.0'], + ['spdx-license-ids', 'npm:3.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'spdx-license-ids', + [ + [ + 'npm:3.0.5', + { + packageLocation: + './.yarn/cache/spdx-license-ids-npm-3.0.5-cb028e9441-4ff7c0615a.zip/node_modules/spdx-license-ids/', + packageDependencies: [['spdx-license-ids', 'npm:3.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'split-on-first', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/split-on-first-npm-1.1.0-e2f3ab5e4e-2ef26fee62.zip/node_modules/split-on-first/', + packageDependencies: [['split-on-first', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'split-string', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/split-string-npm-3.1.0-df5d83450e-9b610d1509.zip/node_modules/split-string/', + packageDependencies: [ + ['split-string', 'npm:3.1.0'], + ['extend-shallow', 'npm:3.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sprintf-js', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/sprintf-js-npm-1.0.3-73f0a322fa-51df1bce9e.zip/node_modules/sprintf-js/', + packageDependencies: [['sprintf-js', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/sprintf-js-npm-1.1.2-ea16269a6d-50d2008328.zip/node_modules/sprintf-js/', + packageDependencies: [['sprintf-js', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sshpk', + [ + [ + 'npm:1.16.1', + { + packageLocation: + './.yarn/cache/sshpk-npm-1.16.1-feb759e7e0-4bd7422634.zip/node_modules/sshpk/', + packageDependencies: [ + ['sshpk', 'npm:1.16.1'], + ['asn1', 'npm:0.2.4'], + ['assert-plus', 'npm:1.0.0'], + ['bcrypt-pbkdf', 'npm:1.0.2'], + ['dashdash', 'npm:1.14.1'], + ['ecc-jsbn', 'npm:0.1.2'], + ['getpass', 'npm:0.1.7'], + ['jsbn', 'npm:0.1.1'], + ['safer-buffer', 'npm:2.1.2'], + ['tweetnacl', 'npm:0.14.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ssri', + [ + [ + 'npm:6.0.1', + { + packageLocation: + './.yarn/cache/ssri-npm-6.0.1-a40d823fc9-828c8c24c9.zip/node_modules/ssri/', + packageDependencies: [ + ['ssri', 'npm:6.0.1'], + ['figgy-pudding', 'npm:3.5.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.1.0', + { + packageLocation: + './.yarn/cache/ssri-npm-7.1.0-ffd7854673-99506ae2e3.zip/node_modules/ssri/', + packageDependencies: [ + ['ssri', 'npm:7.1.0'], + ['figgy-pudding', 'npm:3.5.2'], + ['minipass', 'npm:3.1.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stable', + [ + [ + 'npm:0.1.8', + { + packageLocation: + './.yarn/cache/stable-npm-0.1.8-feb4e06de8-a430967bb5.zip/node_modules/stable/', + packageDependencies: [['stable', 'npm:0.1.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stack-utils', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/stack-utils-npm-2.0.2-2ae6e16cf5-a9fa702767.zip/node_modules/stack-utils/', + packageDependencies: [ + ['stack-utils', 'npm:2.0.2'], + ['escape-string-regexp', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stacktrace-parser', + [ + [ + 'npm:0.1.10', + { + packageLocation: + './.yarn/cache/stacktrace-parser-npm-0.1.10-36f3e571bd-56e3cc5d33.zip/node_modules/stacktrace-parser/', + packageDependencies: [ + ['stacktrace-parser', 'npm:0.1.10'], + ['type-fest', 'npm:0.7.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'state-toggle', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/state-toggle-npm-1.0.3-dd096f8bd0-8c013394b3.zip/node_modules/state-toggle/', + packageDependencies: [['state-toggle', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'static-extend', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/static-extend-npm-0.1.2-2720ee6882-c42052c352.zip/node_modules/static-extend/', + packageDependencies: [ + ['static-extend', 'npm:0.1.2'], + ['define-property', 'npm:0.2.5'], + ['object-copy', 'npm:0.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'statuses', + [ + [ + 'npm:1.5.0', + { + packageLocation: + './.yarn/cache/statuses-npm-1.5.0-f88f91b2e9-57735269bf.zip/node_modules/statuses/', + packageDependencies: [['statuses', 'npm:1.5.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stealthy-require', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/stealthy-require-npm-1.1.1-0105ec8207-f24a9bc613.zip/node_modules/stealthy-require/', + packageDependencies: [['stealthy-require', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-browserify', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/stream-browserify-npm-2.0.2-145ceec889-d50d9a28df.zip/node_modules/stream-browserify/', + packageDependencies: [ + ['stream-browserify', 'npm:2.0.2'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/stream-browserify-npm-3.0.0-4c0bd97245-55fb0c3008.zip/node_modules/stream-browserify/', + packageDependencies: [ + ['stream-browserify', 'npm:3.0.0'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:3.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-buffers', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/stream-buffers-npm-3.0.2-81e4221c31-340a04fc13.zip/node_modules/stream-buffers/', + packageDependencies: [['stream-buffers', 'npm:3.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-each', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/stream-each-npm-1.2.3-ff15985d6a-2b64a88075.zip/node_modules/stream-each/', + packageDependencies: [ + ['stream-each', 'npm:1.2.3'], + ['end-of-stream', 'npm:1.4.4'], + ['stream-shift', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-http', + [ + [ + 'npm:2.8.3', + { + packageLocation: + './.yarn/cache/stream-http-npm-2.8.3-7691e2a9d5-7ef9e10567.zip/node_modules/stream-http/', + packageDependencies: [ + ['stream-http', 'npm:2.8.3'], + ['builtin-status-codes', 'npm:3.0.0'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:2.3.7'], + ['to-arraybuffer', 'npm:1.0.1'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-shift', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/stream-shift-npm-1.0.1-9526210fa7-5d777b222e.zip/node_modules/stream-shift/', + packageDependencies: [['stream-shift', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-to-array', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/stream-to-array-npm-2.3.0-eaa32c31d8-b313d7dfa5.zip/node_modules/stream-to-array/', + packageDependencies: [ + ['stream-to-array', 'npm:2.3.0'], + ['any-promise', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stream-to-promise', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/stream-to-promise-npm-2.2.0-27f3ae7c38-1f26f85d57.zip/node_modules/stream-to-promise/', + packageDependencies: [ + ['stream-to-promise', 'npm:2.2.0'], + ['any-promise', 'npm:1.3.0'], + ['end-of-stream', 'npm:1.1.0'], + ['stream-to-array', 'npm:2.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strict-uri-encode', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/strict-uri-encode-npm-1.1.0-a79c6f7f24-6c80f6998a.zip/node_modules/strict-uri-encode/', + packageDependencies: [['strict-uri-encode', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/strict-uri-encode-npm-2.0.0-1ec3189376-775012e88b.zip/node_modules/strict-uri-encode/', + packageDependencies: [['strict-uri-encode', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string-hash', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/string-hash-npm-1.1.3-3cb8892e7c-178d855be2.zip/node_modules/string-hash/', + packageDependencies: [['string-hash', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string-length', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/string-length-npm-2.0.0-72bc8bf050-44d79c40a4.zip/node_modules/string-length/', + packageDependencies: [ + ['string-length', 'npm:2.0.0'], + ['astral-regex', 'npm:1.0.0'], + ['strip-ansi', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/string-length-npm-4.0.1-f4a493417a-afc4338247.zip/node_modules/string-length/', + packageDependencies: [ + ['string-length', 'npm:4.0.1'], + ['char-regex', 'npm:1.0.2'], + ['strip-ansi', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string-template', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/string-template-npm-0.2.1-e8fa722df5-c64ac6e7f7.zip/node_modules/string-template/', + packageDependencies: [['string-template', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string-width', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/string-width-npm-1.0.2-01031f9add-b11745daa9.zip/node_modules/string-width/', + packageDependencies: [ + ['string-width', 'npm:1.0.2'], + ['code-point-at', 'npm:1.1.0'], + ['is-fullwidth-code-point', 'npm:1.0.0'], + ['strip-ansi', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/string-width-npm-2.1.1-0c2c6ae53f-906b4887c3.zip/node_modules/string-width/', + packageDependencies: [ + ['string-width', 'npm:2.1.1'], + ['is-fullwidth-code-point', 'npm:2.0.0'], + ['strip-ansi', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/string-width-npm-3.1.0-e031bfa4e0-54c5d1842d.zip/node_modules/string-width/', + packageDependencies: [ + ['string-width', 'npm:3.1.0'], + ['emoji-regex', 'npm:7.0.3'], + ['is-fullwidth-code-point', 'npm:2.0.0'], + ['strip-ansi', 'npm:5.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/string-width-npm-4.2.0-c4a2a66200-cf1e8acddf.zip/node_modules/string-width/', + packageDependencies: [ + ['string-width', 'npm:4.2.0'], + ['emoji-regex', 'npm:8.0.0'], + ['is-fullwidth-code-point', 'npm:3.0.0'], + ['strip-ansi', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string.prototype.trimend', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/string.prototype.trimend-npm-1.0.1-c110c5981f-93046463de.zip/node_modules/string.prototype.trimend/', + packageDependencies: [ + ['string.prototype.trimend', 'npm:1.0.1'], + ['define-properties', 'npm:1.1.3'], + ['es-abstract', 'npm:1.17.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string.prototype.trimstart', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/string.prototype.trimstart-npm-1.0.1-86888269b6-20c4a940f1.zip/node_modules/string.prototype.trimstart/', + packageDependencies: [ + ['string.prototype.trimstart', 'npm:1.0.1'], + ['define-properties', 'npm:1.1.3'], + ['es-abstract', 'npm:1.17.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'string_decoder', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/string_decoder-npm-1.1.1-e46a6c1353-bc2dc169d8.zip/node_modules/string_decoder/', + packageDependencies: [ + ['string_decoder', 'npm:1.1.1'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:1.3.0', + { + packageLocation: + './.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-0a09afb610.zip/node_modules/string_decoder/', + packageDependencies: [ + ['string_decoder', 'npm:1.3.0'], + ['safe-buffer', 'npm:5.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stringify-entities', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/stringify-entities-npm-3.0.1-b7829242e9-8bff496357.zip/node_modules/stringify-entities/', + packageDependencies: [ + ['stringify-entities', 'npm:3.0.1'], + ['character-entities-html4', 'npm:1.1.4'], + ['character-entities-legacy', 'npm:1.1.4'], + ['is-alphanumerical', 'npm:1.0.4'], + ['is-decimal', 'npm:1.0.4'], + ['is-hexadecimal', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-ansi', + [ + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/strip-ansi-npm-3.0.1-6aec1365b9-98772dcf44.zip/node_modules/strip-ansi/', + packageDependencies: [ + ['strip-ansi', 'npm:3.0.1'], + ['ansi-regex', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/strip-ansi-npm-4.0.0-d4de985014-9ac63872c2.zip/node_modules/strip-ansi/', + packageDependencies: [ + ['strip-ansi', 'npm:4.0.0'], + ['ansi-regex', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/strip-ansi-npm-5.2.0-275214c316-44a0d0d354.zip/node_modules/strip-ansi/', + packageDependencies: [ + ['strip-ansi', 'npm:5.2.0'], + ['ansi-regex', 'npm:4.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/strip-ansi-npm-6.0.0-904613e9eb-10568c91ca.zip/node_modules/strip-ansi/', + packageDependencies: [ + ['strip-ansi', 'npm:6.0.0'], + ['ansi-regex', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-bom', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/strip-bom-npm-2.0.0-5c4b64ed5a-d488310c44.zip/node_modules/strip-bom/', + packageDependencies: [ + ['strip-bom', 'npm:2.0.0'], + ['is-utf8', 'npm:0.2.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/strip-bom-npm-3.0.0-71e8f81ff9-361dd1dd08.zip/node_modules/strip-bom/', + packageDependencies: [['strip-bom', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/strip-bom-npm-4.0.0-97d367a64d-25a231aacb.zip/node_modules/strip-bom/', + packageDependencies: [['strip-bom', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-bom-buf', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/strip-bom-buf-npm-1.0.0-056a57a073-61b7b6eb6b.zip/node_modules/strip-bom-buf/', + packageDependencies: [ + ['strip-bom-buf', 'npm:1.0.0'], + ['is-utf8', 'npm:0.2.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-bom-stream', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/strip-bom-stream-npm-2.0.0-e1d65f77cc-42fb84bfeb.zip/node_modules/strip-bom-stream/', + packageDependencies: [ + ['strip-bom-stream', 'npm:2.0.0'], + ['first-chunk-stream', 'npm:2.0.0'], + ['strip-bom', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-bom-string', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/strip-bom-string-npm-1.0.0-aa6cb548d1-63cf934fcf.zip/node_modules/strip-bom-string/', + packageDependencies: [['strip-bom-string', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-eof', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/strip-eof-npm-1.0.0-d82eaf947c-905cd8718a.zip/node_modules/strip-eof/', + packageDependencies: [['strip-eof', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-final-newline', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/strip-final-newline-npm-2.0.0-340c4f7c66-74dbd8a602.zip/node_modules/strip-final-newline/', + packageDependencies: [['strip-final-newline', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-indent', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/strip-indent-npm-1.0.1-dabb780da0-9ec818484a.zip/node_modules/strip-indent/', + packageDependencies: [ + ['strip-indent', 'npm:1.0.1'], + ['get-stdin', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/strip-indent-npm-3.0.0-519e75a28d-4a7860e943.zip/node_modules/strip-indent/', + packageDependencies: [ + ['strip-indent', 'npm:3.0.0'], + ['min-indent', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'strip-json-comments', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-e60d99aa28.zip/node_modules/strip-json-comments/', + packageDependencies: [['strip-json-comments', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-f16719ce25.zip/node_modules/strip-json-comments/', + packageDependencies: [['strip-json-comments', 'npm:3.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'style-loader', + [ + [ + 'npm:1.2.1', + { + packageLocation: + './.yarn/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/', + packageDependencies: [['style-loader', 'npm:1.2.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.2.1', + { + packageLocation: + './.yarn/$$virtual/style-loader-virtual-b4ed89c589/0/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/', + packageDependencies: [ + [ + 'style-loader', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.2.1', + ], + ['@types/webpack', null], + ['loader-utils', 'npm:2.0.0'], + ['schema-utils', 'npm:2.7.0'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:1.2.1', + { + packageLocation: + './.yarn/$$virtual/style-loader-virtual-a8cbe8ff53/0/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/', + packageDependencies: [ + [ + 'style-loader', + 'virtual:1f9bf2342f5d1ff7ee942b40a92b5e46f9fcc89bbba1ebb90cb11fd06107637a31d79ac73e33b9d5b8c6f4efa936e727fdbb12a0f664b49b4d8903c8b62e2f49#npm:1.2.1', + ], + ['@types/webpack', null], + ['loader-utils', 'npm:2.0.0'], + ['schema-utils', 'npm:2.7.0'], + ['webpack', 'npm:4.44.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:1.2.1', + { + packageLocation: + './.yarn/$$virtual/style-loader-virtual-8576ae98e0/0/cache/style-loader-npm-1.2.1-d2e298addc-19e1b1a83c.zip/node_modules/style-loader/', + packageDependencies: [ + [ + 'style-loader', + 'virtual:8aee01236f6430d1766133849aadaa1e4167bd245c0a55b1d7be527fb447d500b29990656f66f2d5318d2b5fe7962207898314d1d3f095374c1e5b14481c1f2f#npm:1.2.1', + ], + ['@types/webpack', null], + ['loader-utils', 'npm:2.0.0'], + ['schema-utils', 'npm:2.7.0'], + ['webpack', 'npm:4.43.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'styled-components', + [ + [ + 'npm:5.2.0', + { + packageLocation: + './.yarn/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/', + packageDependencies: [['styled-components', 'npm:5.2.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + { + packageLocation: + './.yarn/$$virtual/styled-components-virtual-c6c5dc4252/0/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/', + packageDependencies: [ + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@emotion/is-prop-valid', 'npm:0.8.8'], + ['@emotion/stylis', 'npm:0.8.5'], + ['@emotion/unitless', 'npm:0.7.5'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/react-is', null], + [ + 'babel-plugin-styled-components', + 'virtual:c6c5dc42529e5e1b6399934e28230d17650bddc1d9df2ef1ed7f32d9c4a1472e309409cdfee0daaba8d0d9d2ff1627dce630fd7dc8351b2b0a246189ccafdb23#npm:1.11.0', + ], + ['css-to-react-native', 'npm:3.0.0'], + ['hoist-non-react-statics', 'npm:3.3.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + ['shallowequal', 'npm:1.1.0'], + ['supports-color', 'npm:5.5.0'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react-is', + '@types/react', + 'react-dom', + 'react-is', + 'react', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + { + packageLocation: + './.yarn/$$virtual/styled-components-virtual-8b2b81fd6b/0/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/', + packageDependencies: [ + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@emotion/is-prop-valid', 'npm:0.8.8'], + ['@emotion/stylis', 'npm:0.8.5'], + ['@emotion/unitless', 'npm:0.7.5'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/react-is', null], + [ + 'babel-plugin-styled-components', + 'virtual:8b2b81fd6bd437cd8e3b3c589e5c2987a79b464981c840d3e52a42d0b8e252b1c7d69fc41ab44ab3b9bb12010e877616bb05a14e2efd582d7c21861dfeadff9c#npm:1.11.0', + ], + ['css-to-react-native', 'npm:3.0.0'], + ['hoist-non-react-statics', 'npm:3.3.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:17.0.2'], + ['shallowequal', 'npm:1.1.0'], + ['supports-color', 'npm:5.5.0'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react-is', + '@types/react', + 'react-dom', + 'react-is', + 'react', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + { + packageLocation: + './.yarn/$$virtual/styled-components-virtual-3942ea4996/0/cache/styled-components-npm-5.2.0-e6b98b8836-960d40732c.zip/node_modules/styled-components/', + packageDependencies: [ + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ['@babel/helper-module-imports', 'npm:7.10.4'], + ['@babel/traverse', 'npm:7.10.5'], + ['@emotion/is-prop-valid', 'npm:0.8.8'], + ['@emotion/stylis', 'npm:0.8.5'], + ['@emotion/unitless', 'npm:0.7.5'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/react-is', null], + [ + 'babel-plugin-styled-components', + 'virtual:3942ea4996deb8db0313d3ac8ad29b916eb4017388a1e1ce205ec6835fca92ab6e1e8c99e38e386e3682ca5cbbc16b77c92fdc72fc0c4ded5385ac2bc1153767#npm:1.11.0', + ], + ['css-to-react-native', 'npm:3.0.0'], + ['hoist-non-react-statics', 'npm:3.3.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', null], + ['shallowequal', 'npm:1.1.0'], + ['supports-color', 'npm:5.5.0'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react-is', + '@types/react', + 'react-dom', + 'react-is', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'styled-jsx', + [ + [ + 'npm:3.3.0', + { + packageLocation: + './.yarn/cache/styled-jsx-npm-3.3.0-8c31273120-1a90d2f566.zip/node_modules/styled-jsx/', + packageDependencies: [['styled-jsx', 'npm:3.3.0']], + linkType: 'SOFT', + }, + ], + [ + 'npm:3.3.2', + { + packageLocation: + './.yarn/cache/styled-jsx-npm-3.3.2-e6d9ca13f4-479d442682.zip/node_modules/styled-jsx/', + packageDependencies: [['styled-jsx', 'npm:3.3.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:3.3.2', + { + packageLocation: + './.yarn/$$virtual/styled-jsx-virtual-a8d982f80a/0/cache/styled-jsx-npm-3.3.2-e6d9ca13f4-479d442682.zip/node_modules/styled-jsx/', + packageDependencies: [ + [ + 'styled-jsx', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:3.3.2', + ], + ['@babel/types', 'npm:7.8.3'], + ['@types/react', 'npm:16.9.43'], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['convert-source-map', 'npm:1.7.0'], + ['loader-utils', 'npm:1.2.3'], + ['react', 'npm:16.13.1'], + ['source-map', 'npm:0.7.3'], + ['string-hash', 'npm:1.1.3'], + ['stylis', 'npm:3.5.4'], + [ + 'stylis-rule-sheet', + 'virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10', + ], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + { + packageLocation: + './.yarn/$$virtual/styled-jsx-virtual-a14e689010/0/cache/styled-jsx-npm-3.3.0-8c31273120-1a90d2f566.zip/node_modules/styled-jsx/', + packageDependencies: [ + [ + 'styled-jsx', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + ], + ['@babel/types', 'npm:7.8.3'], + ['@types/react', 'npm:16.9.43'], + ['babel-plugin-syntax-jsx', 'npm:6.18.0'], + ['convert-source-map', 'npm:1.7.0'], + ['loader-utils', 'npm:1.2.3'], + ['react', 'npm:16.13.1'], + ['source-map', 'npm:0.7.3'], + ['string-hash', 'npm:1.1.3'], + ['stylis', 'npm:3.5.4'], + [ + 'stylis-rule-sheet', + 'virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10', + ], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stylehacks', + [ + [ + 'npm:4.0.3', + { + packageLocation: + './.yarn/cache/stylehacks-npm-4.0.3-b704c3a5ab-1345ad348d.zip/node_modules/stylehacks/', + packageDependencies: [ + ['stylehacks', 'npm:4.0.3'], + ['browserslist', 'npm:4.13.0'], + ['postcss', 'npm:7.0.32'], + ['postcss-selector-parser', 'npm:3.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stylis', + [ + [ + 'npm:3.5.4', + { + packageLocation: + './.yarn/cache/stylis-npm-3.5.4-a35153f87b-356e2352b1.zip/node_modules/stylis/', + packageDependencies: [['stylis', 'npm:3.5.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'stylis-rule-sheet', + [ + [ + 'npm:0.0.10', + { + packageLocation: + './.yarn/cache/stylis-rule-sheet-npm-0.0.10-bc7763b753-89c5e8a72b.zip/node_modules/stylis-rule-sheet/', + packageDependencies: [['stylis-rule-sheet', 'npm:0.0.10']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10', + { + packageLocation: + './.yarn/$$virtual/stylis-rule-sheet-virtual-f50fa46c44/0/cache/stylis-rule-sheet-npm-0.0.10-bc7763b753-89c5e8a72b.zip/node_modules/stylis-rule-sheet/', + packageDependencies: [ + [ + 'stylis-rule-sheet', + 'virtual:a14e6890109012906779f0eeb94571b15329e7fb0582c65cab16fe7a73b59890c63580eb47434c2bb81ae946e840ab365d8c54c5dd61b6e65f8b7b7db87eef26#npm:0.0.10', + ], + ['@types/stylis', null], + ['stylis', 'npm:3.5.4'], + ], + packagePeers: ['@types/stylis', 'stylis'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'subscriptions-transport-ws', + [ + [ + 'npm:0.9.18', + { + packageLocation: + './.yarn/cache/subscriptions-transport-ws-npm-0.9.18-7d0f338bbd-54f23dadb3.zip/node_modules/subscriptions-transport-ws/', + packageDependencies: [ + ['subscriptions-transport-ws', 'npm:0.9.18'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18', + { + packageLocation: + './.yarn/$$virtual/subscriptions-transport-ws-virtual-570860290e/0/cache/subscriptions-transport-ws-npm-0.9.18-7d0f338bbd-54f23dadb3.zip/node_modules/subscriptions-transport-ws/', + packageDependencies: [ + [ + 'subscriptions-transport-ws', + 'virtual:36c8256c194b65ed55539f1ed17eed1c2dc514ee3ed34ed586aa7f62a7abeb1a9a5b2b4c4b0a51edee3b7c7c1cc636a41c563ac94ee97dd0cb005727c7079bd0#npm:0.9.18', + ], + ['@types/graphql', null], + ['backo2', 'npm:1.0.2'], + ['eventemitter3', 'npm:3.1.2'], + ['graphql', 'npm:15.3.0'], + ['iterall', 'npm:1.3.0'], + ['symbol-observable', 'npm:1.2.0'], + [ + 'ws', + 'virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2', + ], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + [ + 'virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:0.9.18', + { + packageLocation: + './.yarn/$$virtual/subscriptions-transport-ws-virtual-5fc5dbb3ca/0/cache/subscriptions-transport-ws-npm-0.9.18-7d0f338bbd-54f23dadb3.zip/node_modules/subscriptions-transport-ws/', + packageDependencies: [ + [ + 'subscriptions-transport-ws', + 'virtual:dd2de884c3b5aa4fa9ee08ff7eacfe9f616f255ace95f51aae737c261470b81fcc99bdc396534867c16b7ba3d592e3e173b73427689bca840e7a49511dad4f09#npm:0.9.18', + ], + ['@types/graphql', null], + ['backo2', 'npm:1.0.2'], + ['eventemitter3', 'npm:3.1.2'], + ['graphql', 'npm:14.7.0'], + ['iterall', 'npm:1.3.0'], + ['symbol-observable', 'npm:1.2.0'], + [ + 'ws', + 'virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2', + ], + ], + packagePeers: ['@types/graphql', 'graphql'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sucrase', + [ + [ + 'npm:3.15.0', + { + packageLocation: + './.yarn/cache/sucrase-npm-3.15.0-a1f6663e79-7ebbe2ab72.zip/node_modules/sucrase/', + packageDependencies: [ + ['sucrase', 'npm:3.15.0'], + ['commander', 'npm:4.1.1'], + ['glob', 'npm:7.1.6'], + ['lines-and-columns', 'npm:1.1.6'], + ['mz', 'npm:2.7.0'], + ['pirates', 'npm:4.0.1'], + ['ts-interface-checker', 'npm:0.1.13'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.17.1', + { + packageLocation: + './.yarn/cache/sucrase-npm-3.17.1-f7278527de-7e0bf20b1e.zip/node_modules/sucrase/', + packageDependencies: [ + ['sucrase', 'npm:3.17.1'], + ['commander', 'npm:4.1.1'], + ['glob', 'npm:7.1.6'], + ['lines-and-columns', 'npm:1.1.6'], + ['mz', 'npm:2.7.0'], + ['pirates', 'npm:4.0.1'], + ['ts-interface-checker', 'npm:0.1.13'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'sudo-block', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/sudo-block-npm-1.2.0-175a20c765-a75abf515a.zip/node_modules/sudo-block/', + packageDependencies: [ + ['sudo-block', 'npm:1.2.0'], + ['chalk', 'npm:1.1.3'], + ['is-docker', 'npm:1.1.0'], + ['is-root', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'supports-color', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/supports-color-npm-2.0.0-22c0f0adbc-5d6fb449e2.zip/node_modules/supports-color/', + packageDependencies: [['supports-color', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.3', + { + packageLocation: + './.yarn/cache/supports-color-npm-3.2.3-117b06af49-d26b4f5f7a.zip/node_modules/supports-color/', + packageDependencies: [ + ['supports-color', 'npm:3.2.3'], + ['has-flag', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.5.0', + { + packageLocation: + './.yarn/cache/supports-color-npm-5.5.0-183ac537bc-edacee6425.zip/node_modules/supports-color/', + packageDependencies: [ + ['supports-color', 'npm:5.5.0'], + ['has-flag', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.1.0', + { + packageLocation: + './.yarn/cache/supports-color-npm-6.1.0-7d19cd7f55-8682157129.zip/node_modules/supports-color/', + packageDependencies: [ + ['supports-color', 'npm:6.1.0'], + ['has-flag', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.1.0', + { + packageLocation: + './.yarn/cache/supports-color-npm-7.1.0-df2ba1e338-6130f36b2a.zip/node_modules/supports-color/', + packageDependencies: [ + ['supports-color', 'npm:7.1.0'], + ['has-flag', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.1.1', + { + packageLocation: + './.yarn/cache/supports-color-npm-8.1.1-289e937149-0219f5c917.zip/node_modules/supports-color/', + packageDependencies: [ + ['supports-color', 'npm:8.1.1'], + ['has-flag', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'supports-hyperlinks', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/supports-hyperlinks-npm-1.0.1-8eac1c37c2-91f12edc8c.zip/node_modules/supports-hyperlinks/', + packageDependencies: [ + ['supports-hyperlinks', 'npm:1.0.1'], + ['has-flag', 'npm:2.0.0'], + ['supports-color', 'npm:5.5.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/supports-hyperlinks-npm-2.1.0-8e86724a40-8b3b6d71ee.zip/node_modules/supports-hyperlinks/', + packageDependencies: [ + ['supports-hyperlinks', 'npm:2.1.0'], + ['has-flag', 'npm:4.0.0'], + ['supports-color', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'svgo', + [ + [ + 'npm:1.3.2', + { + packageLocation: + './.yarn/cache/svgo-npm-1.3.2-4cceb54daa-e165973842.zip/node_modules/svgo/', + packageDependencies: [ + ['svgo', 'npm:1.3.2'], + ['chalk', 'npm:2.4.2'], + ['coa', 'npm:2.0.2'], + ['css-select', 'npm:2.1.0'], + ['css-select-base-adapter', 'npm:0.1.1'], + ['css-tree', 'npm:1.0.0-alpha.37'], + ['csso', 'npm:4.0.3'], + ['js-yaml', 'npm:3.14.0'], + ['mkdirp', 'npm:0.5.5'], + ['object.values', 'npm:1.1.1'], + ['sax', 'npm:1.2.4'], + ['stable', 'npm:0.1.8'], + ['unquote', 'npm:1.1.1'], + ['util.promisify', 'npm:1.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'symbol-observable', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/symbol-observable-npm-1.2.0-9e812a0a39-268834a1d4.zip/node_modules/symbol-observable/', + packageDependencies: [['symbol-observable', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'symbol-tree', + [ + [ + 'npm:3.2.4', + { + packageLocation: + './.yarn/cache/symbol-tree-npm-3.2.4-fe70cdb75b-0b9af4e5f0.zip/node_modules/symbol-tree/', + packageDependencies: [['symbol-tree', 'npm:3.2.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'synchronous-promise', + [ + [ + 'npm:2.0.13', + { + packageLocation: + './.yarn/cache/synchronous-promise-npm-2.0.13-25e6221ef9-8e182d5999.zip/node_modules/synchronous-promise/', + packageDependencies: [['synchronous-promise', 'npm:2.0.13']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.15', + { + packageLocation: + './.yarn/cache/synchronous-promise-npm-2.0.15-5311c7e3c6-3462a5aa24.zip/node_modules/synchronous-promise/', + packageDependencies: [['synchronous-promise', 'npm:2.0.15']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'table', + [ + [ + 'npm:5.4.6', + { + packageLocation: + './.yarn/cache/table-npm-5.4.6-190b118384-38877a196c.zip/node_modules/table/', + packageDependencies: [ + ['table', 'npm:5.4.6'], + ['ajv', 'npm:6.12.3'], + ['lodash', 'npm:4.17.19'], + ['slice-ansi', 'npm:2.1.0'], + ['string-width', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tabtab', + [ + [ + 'npm:1.3.2', + { + packageLocation: + './.yarn/cache/tabtab-npm-1.3.2-a35208a143-efafd4cdb0.zip/node_modules/tabtab/', + packageDependencies: [ + ['tabtab', 'npm:1.3.2'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['inquirer', 'npm:1.2.3'], + ['minimist', 'npm:1.2.5'], + ['mkdirp', 'npm:0.5.5'], + ['npmlog', 'npm:2.0.4'], + ['object-assign', 'npm:4.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tailwindcss', + [ + [ + 'npm:1.6.0', + { + packageLocation: + './.yarn/cache/tailwindcss-npm-1.6.0-0e19f2e049-2458f49147.zip/node_modules/tailwindcss/', + packageDependencies: [ + ['tailwindcss', 'npm:1.6.0'], + ['@fullhuman/postcss-purgecss', 'npm:2.3.0'], + ['autoprefixer', 'npm:9.8.5'], + ['browserslist', 'npm:4.13.0'], + ['bytes', 'npm:3.1.0'], + ['chalk', 'npm:4.1.0'], + ['color', 'npm:3.1.2'], + ['detective', 'npm:5.2.0'], + ['fs-extra', 'npm:8.1.0'], + ['lodash', 'npm:4.17.19'], + ['node-emoji', 'npm:1.10.0'], + ['normalize.css', 'npm:8.0.1'], + ['postcss', 'npm:7.0.32'], + ['postcss-functions', 'npm:3.0.0'], + ['postcss-js', 'npm:2.0.3'], + ['postcss-nested', 'npm:4.2.3'], + ['postcss-selector-parser', 'npm:6.0.2'], + ['pretty-hrtime', 'npm:1.0.3'], + ['reduce-css-calc', 'npm:2.1.7'], + [ + 'resolve', + 'patch:resolve@npm%3A1.17.0#builtin::version=1.17.0&hash=3388aa', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'taketalk', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/taketalk-npm-1.0.0-2fc66802cb-c0cdb1adbd.zip/node_modules/taketalk/', + packageDependencies: [ + ['taketalk', 'npm:1.0.0'], + ['get-stdin', 'npm:4.0.1'], + ['minimist', 'npm:1.2.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tapable', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/tapable-npm-1.1.3-f1c2843426-b2c2ab2026.zip/node_modules/tapable/', + packageDependencies: [['tapable', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tar', + [ + [ + 'npm:4.4.13', + { + packageLocation: + './.yarn/cache/tar-npm-4.4.13-2a4e7ee80f-d325c316ac.zip/node_modules/tar/', + packageDependencies: [ + ['tar', 'npm:4.4.13'], + ['chownr', 'npm:1.1.4'], + ['fs-minipass', 'npm:1.2.7'], + ['minipass', 'npm:2.9.0'], + ['minizlib', 'npm:1.3.3'], + ['mkdirp', 'npm:0.5.5'], + ['safe-buffer', 'npm:5.1.2'], + ['yallist', 'npm:3.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.2', + { + packageLocation: + './.yarn/cache/tar-npm-6.0.2-5a3aaf4b8a-7d28cc13d7.zip/node_modules/tar/', + packageDependencies: [ + ['tar', 'npm:6.0.2'], + ['chownr', 'npm:2.0.0'], + ['fs-minipass', 'npm:2.1.0'], + ['minipass', 'npm:3.1.3'], + ['minizlib', 'npm:2.1.0'], + ['mkdirp', 'npm:1.0.4'], + ['yallist', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tar-fs', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-4739382487.zip/node_modules/tar-fs/', + packageDependencies: [ + ['tar-fs', 'npm:2.1.1'], + ['chownr', 'npm:1.1.4'], + ['mkdirp-classic', 'npm:0.5.3'], + ['pump', 'npm:3.0.0'], + ['tar-stream', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tar-stream', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/tar-stream-npm-2.2.0-884c79b510-7eec0a7fc8.zip/node_modules/tar-stream/', + packageDependencies: [ + ['tar-stream', 'npm:2.2.0'], + ['bl', 'npm:4.1.0'], + ['end-of-stream', 'npm:1.4.4'], + ['fs-constants', 'npm:1.0.0'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:3.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'term-size', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/unplugged/term-size-npm-1.2.0-7629e52ca8/node_modules/term-size/', + packageDependencies: [ + ['term-size', 'npm:1.2.0'], + ['execa', 'npm:0.7.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/unplugged/term-size-npm-2.2.0-2f8b439547/node_modules/term-size/', + packageDependencies: [['term-size', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'terminal-link', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/terminal-link-npm-2.1.1-de80341758-f84553e11e.zip/node_modules/terminal-link/', + packageDependencies: [ + ['terminal-link', 'npm:2.1.1'], + ['ansi-escapes', 'npm:4.3.1'], + ['supports-hyperlinks', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'terser', + [ + [ + 'npm:4.6.13', + { + packageLocation: + './.yarn/cache/terser-npm-4.6.13-0c96d12fe2-dbb9ff02c2.zip/node_modules/terser/', + packageDependencies: [ + ['terser', 'npm:4.6.13'], + ['commander', 'npm:2.20.3'], + ['source-map', 'npm:0.6.1'], + ['source-map-support', 'npm:0.5.19'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.8.0', + { + packageLocation: + './.yarn/cache/terser-npm-4.8.0-272e3d2592-d7ab95898b.zip/node_modules/terser/', + packageDependencies: [ + ['terser', 'npm:4.8.0'], + ['commander', 'npm:2.20.3'], + ['source-map', 'npm:0.6.1'], + ['source-map-support', 'npm:0.5.19'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.3.0', + { + packageLocation: + './.yarn/cache/terser-npm-5.3.0-e02031819a-43f35f253f.zip/node_modules/terser/', + packageDependencies: [ + ['terser', 'npm:5.3.0'], + ['commander', 'npm:2.20.3'], + ['source-map', 'npm:0.6.1'], + ['source-map-support', 'npm:0.5.19'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.5.1', + { + packageLocation: + './.yarn/cache/terser-npm-5.5.1-6fc0e0b56a-f96abd0fb4.zip/node_modules/terser/', + packageDependencies: [ + ['terser', 'npm:5.5.1'], + ['commander', 'npm:2.20.3'], + ['source-map', 'npm:0.7.3'], + ['source-map-support', 'npm:0.5.19'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'terser-webpack-plugin', + [ + [ + 'npm:1.4.4', + { + packageLocation: + './.yarn/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/', + packageDependencies: [['terser-webpack-plugin', 'npm:1.4.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:3326bd82d722f425fcbbdc2c3c15cdbd2686d7ca5c17e17343d17579576b30619e272e5db31323698528f24803ac2c256fbb4b8caa0ea5ecd8016fdac7f3b3a8#npm:1.4.4', + { + packageLocation: + './.yarn/$$virtual/terser-webpack-plugin-virtual-c1dc97a0a9/0/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/', + packageDependencies: [ + [ + 'terser-webpack-plugin', + 'virtual:3326bd82d722f425fcbbdc2c3c15cdbd2686d7ca5c17e17343d17579576b30619e272e5db31323698528f24803ac2c256fbb4b8caa0ea5ecd8016fdac7f3b3a8#npm:1.4.4', + ], + ['@types/webpack', null], + ['cacache', 'npm:12.0.4'], + ['find-cache-dir', 'npm:2.1.0'], + ['is-wsl', 'npm:1.1.0'], + ['schema-utils', 'npm:1.0.0'], + ['serialize-javascript', 'npm:3.1.0'], + ['source-map', 'npm:0.6.1'], + ['terser', 'npm:4.8.0'], + ['webpack', 'npm:4.44.0'], + ['webpack-sources', 'npm:1.4.3'], + ['worker-farm', 'npm:1.7.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:d2c7511dff410609c253fbc4a1857c7c8a9f78f7d70ef742539e5f05378c4a183343c709d614406382293c1e630ad3d184fa5fd8ddfaae4802a489e4e6f50c62#npm:1.4.4', + { + packageLocation: + './.yarn/$$virtual/terser-webpack-plugin-virtual-5a04020da6/0/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/', + packageDependencies: [ + [ + 'terser-webpack-plugin', + 'virtual:d2c7511dff410609c253fbc4a1857c7c8a9f78f7d70ef742539e5f05378c4a183343c709d614406382293c1e630ad3d184fa5fd8ddfaae4802a489e4e6f50c62#npm:1.4.4', + ], + ['@types/webpack', null], + ['cacache', 'npm:12.0.4'], + ['find-cache-dir', 'npm:2.1.0'], + ['is-wsl', 'npm:1.1.0'], + ['schema-utils', 'npm:1.0.0'], + ['serialize-javascript', 'npm:3.1.0'], + ['source-map', 'npm:0.6.1'], + ['terser', 'npm:4.8.0'], + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ['webpack-sources', 'npm:1.4.3'], + ['worker-farm', 'npm:1.7.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + [ + 'virtual:e073844e153b92b319dc2d9b0f6ae20a05893b49f2b56ff72631b73967313ef744d0a2d62f52dda20ccf963d6092e0c06e90d20a3c0b6f831e756347e8a70b13#npm:1.4.4', + { + packageLocation: + './.yarn/$$virtual/terser-webpack-plugin-virtual-fa90a1c94c/0/cache/terser-webpack-plugin-npm-1.4.4-18b2be8791-51f918c648.zip/node_modules/terser-webpack-plugin/', + packageDependencies: [ + [ + 'terser-webpack-plugin', + 'virtual:e073844e153b92b319dc2d9b0f6ae20a05893b49f2b56ff72631b73967313ef744d0a2d62f52dda20ccf963d6092e0c06e90d20a3c0b6f831e756347e8a70b13#npm:1.4.4', + ], + ['@types/webpack', null], + ['cacache', 'npm:12.0.4'], + ['find-cache-dir', 'npm:2.1.0'], + ['is-wsl', 'npm:1.1.0'], + ['schema-utils', 'npm:1.0.0'], + ['serialize-javascript', 'npm:3.1.0'], + ['source-map', 'npm:0.6.1'], + ['terser', 'npm:4.8.0'], + ['webpack', 'npm:4.43.0'], + ['webpack-sources', 'npm:1.4.3'], + ['worker-farm', 'npm:1.7.0'], + ], + packagePeers: ['@types/webpack', 'webpack'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'test', + [ + [ + 'workspace:apps/test', + { + packageLocation: './apps/test/', + packageDependencies: [ + ['test', 'workspace:apps/test'], + [ + '@tailwindcss/ui', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.3.1', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0', + ], + [ + '@tinacms/react-modals', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/js-cookie', 'npm:2.2.6'], + ['@types/node', 'npm:13.13.15'], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + [ + '@urql/core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3', + ], + [ + '@xstate/react', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.0.1', + ], + ['autoprefixer', 'npm:9.8.5'], + ['codemirror', 'npm:5.59.1'], + ['dotenv', 'npm:8.2.0'], + ['fast-glob', 'npm:3.2.4'], + ['final-form', 'npm:4.20.1'], + [ + 'formik', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:2.1.5', + ], + [ + 'graphiql', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.2.2', + ], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['js-cookie', 'npm:2.2.1'], + [ + 'next', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:9.5.1', + ], + ['nodemon', 'npm:2.0.7'], + ['postcss-import', 'npm:12.0.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + [ + 'react-markdown', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:4.3.1', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + [ + 'styled-jsx', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + ], + ['tailwindcss', 'npm:1.6.0'], + ['tina-graphql', 'workspace:packages/tina-graphql'], + [ + 'tina-graphql-gateway', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway', + ], + [ + 'tina-graphql-gateway-cli', + 'workspace:packages/tina-graphql-gateway-cli', + ], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'tinacms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0', + ], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + [ + 'urql', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0', + ], + ['xstate', 'npm:4.13.0'], + ['yup', 'npm:0.28.5'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'test-exclude', + [ + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/test-exclude-npm-6.0.0-3fb03d69df-68294d1006.zip/node_modules/test-exclude/', + packageDependencies: [ + ['test-exclude', 'npm:6.0.0'], + ['@istanbuljs/schema', 'npm:0.1.2'], + ['glob', 'npm:7.1.6'], + ['minimatch', 'npm:3.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'text-table', + [ + [ + 'npm:0.2.0', + { + packageLocation: + './.yarn/cache/text-table-npm-0.2.0-d92a778b59-373904ce70.zip/node_modules/text-table/', + packageDependencies: [['text-table', 'npm:0.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'textextensions', + [ + [ + 'npm:2.6.0', + { + packageLocation: + './.yarn/cache/textextensions-npm-2.6.0-ef0374127c-96ca15779a.zip/node_modules/textextensions/', + packageDependencies: [['textextensions', 'npm:2.6.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'thenify', + [ + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/thenify-npm-3.3.1-030bedb22c-c3cbda4f5f.zip/node_modules/thenify/', + packageDependencies: [ + ['thenify', 'npm:3.3.1'], + ['any-promise', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'thenify-all', + [ + [ + 'npm:1.6.0', + { + packageLocation: + './.yarn/cache/thenify-all-npm-1.6.0-96309bbc8b-22775c13a1.zip/node_modules/thenify-all/', + packageDependencies: [ + ['thenify-all', 'npm:1.6.0'], + ['thenify', 'npm:3.3.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'throat', + [ + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/throat-npm-5.0.0-288ce6540a-2fa41c09cc.zip/node_modules/throat/', + packageDependencies: [['throat', 'npm:5.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'through', + [ + [ + 'npm:2.3.8', + { + packageLocation: + './.yarn/cache/through-npm-2.3.8-df5f72a16e-918d915168.zip/node_modules/through/', + packageDependencies: [['through', 'npm:2.3.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'through2', + [ + [ + 'npm:2.0.5', + { + packageLocation: + './.yarn/cache/through2-npm-2.0.5-77d90f13cd-7427403555.zip/node_modules/through2/', + packageDependencies: [ + ['through2', 'npm:2.0.5'], + ['readable-stream', 'npm:2.3.7'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/through2-npm-3.0.2-403f837012-26c76a8989.zip/node_modules/through2/', + packageDependencies: [ + ['through2', 'npm:3.0.2'], + ['inherits', 'npm:2.0.4'], + ['readable-stream', 'npm:3.6.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'timed-out', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/timed-out-npm-4.0.1-1fe3eee142-e304664080.zip/node_modules/timed-out/', + packageDependencies: [['timed-out', 'npm:4.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'timers-browserify', + [ + [ + 'npm:2.0.11', + { + packageLocation: + './.yarn/cache/timers-browserify-npm-2.0.11-f20435228f-73faad065e.zip/node_modules/timers-browserify/', + packageDependencies: [ + ['timers-browserify', 'npm:2.0.11'], + ['setimmediate', 'npm:1.0.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'timsort', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/timsort-npm-0.3.0-868a28166c-d8300c3ecf.zip/node_modules/timsort/', + packageDependencies: [['timsort', 'npm:0.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tina-cloud-starter', + [ + [ + 'workspace:apps/tina-cloud-starter', + { + packageLocation: './apps/tina-cloud-starter/', + packageDependencies: [ + ['tina-cloud-starter', 'workspace:apps/tina-cloud-starter'], + ['@types/js-cookie', 'npm:2.2.6'], + ['@types/node', 'npm:13.13.15'], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + [ + 'next', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:10.0.5', + ], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:17.0.2'], + [ + 'react-markdown', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.0.3', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + [ + 'styled-jsx', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:3.3.0', + ], + [ + 'tina-graphql-gateway', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway', + ], + [ + 'tina-graphql-gateway-cli', + 'workspace:packages/tina-graphql-gateway-cli', + ], + [ + 'tinacms', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0', + ], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'tina-graphql', + [ + [ + 'workspace:packages/tina-graphql', + { + packageLocation: './packages/tina-graphql/', + packageDependencies: [ + ['tina-graphql', 'workspace:packages/tina-graphql'], + [ + '@graphql-tools/schema', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + ['@octokit/auth-app', 'npm:2.10.0'], + ['@octokit/graphql', 'npm:4.5.6'], + ['@octokit/rest', 'npm:18.0.6'], + ['@types/cors', 'npm:2.8.7'], + ['@types/express', 'npm:4.17.8'], + ['@types/fs-extra', 'npm:9.0.2'], + ['@types/jest', 'npm:26.0.7'], + ['@types/js-yaml', 'npm:3.12.5'], + ['@types/lodash', 'npm:4.14.161'], + ['@types/lodash.camelcase', 'npm:4.3.6'], + ['@types/lodash.upperfirst', 'npm:4.3.6'], + ['@types/lru-cache', 'npm:5.1.0'], + ['@types/ws', 'npm:7.2.6'], + ['@types/yup', 'npm:0.29.7'], + ['body-parser', 'npm:1.19.0'], + ['cors', 'npm:2.8.5'], + ['dataloader', 'npm:2.0.0'], + ['date-fns', 'npm:2.21.1'], + ['express', 'npm:4.17.1'], + ['fast-glob', 'npm:3.2.5'], + ['fs-extra', 'npm:9.0.1'], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tools', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:6.2.1', + ], + [ + 'graphql-type-json', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.3.2', + ], + ['gray-matter', 'npm:4.0.2'], + ['jest', 'npm:26.1.0'], + ['jest-diff', 'npm:26.4.2'], + ['jest-matcher-utils', 'npm:26.4.2'], + ['js-yaml', 'npm:3.14.0'], + ['lodash', 'npm:4.17.20'], + ['lru-cache', 'npm:6.0.0'], + ['nodemon', 'npm:2.0.4'], + ['prettier', 'npm:2.2.1'], + ['rehype-format', 'npm:3.1.0'], + ['rehype-stringify', 'npm:8.0.0'], + ['remark', 'npm:13.0.0'], + ['remark-frontmatter', 'npm:3.0.0'], + ['remark-mdx', 'npm:2.0.0-next.8'], + ['remark-parse', 'npm:8.0.3'], + ['remark-rehype', 'npm:8.0.0'], + ['remark-stringify', 'npm:8.1.1'], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'ts-jest', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:26.1.4', + ], + ['tslib', 'npm:1.13.0'], + ['tsup', 'npm:3.7.0'], + [ + 'typedoc', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.19.2', + ], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['unified', 'npm:9.2.0'], + ['unist-util-remove-position', 'npm:3.0.0'], + ['vfile', 'npm:4.2.0'], + [ + 'ws', + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1', + ], + ['yup', 'npm:0.29.3'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'tina-graphql-gateway', + [ + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway', + { + packageLocation: + './.yarn/$$virtual/tina-graphql-gateway-virtual-da6e44dde8/1/packages/tina-graphql-gateway/', + packageDependencies: [ + [ + 'tina-graphql-gateway', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#workspace:packages/tina-graphql-gateway', + ], + [ + '@graphql-codegen/core', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript-operations', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.32.0', + ], + [ + '@tinacms/react-modals', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/crypto-js', 'npm:3.1.47'], + ['@types/lodash', 'npm:4.14.169'], + ['@types/node', 'npm:14.0.27'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/react-is', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms', null], + ['@types/tinacms__core', null], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['@types/yup', 'npm:0.29.10'], + [ + '@xstate/react', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0', + ], + ['codemirror', 'npm:5.56.0'], + ['cors', 'npm:2.8.5'], + ['crypto-js', 'npm:4.0.0'], + ['final-form', 'npm:4.20.1'], + [ + 'final-form-arrays', + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + ], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['isomorphic-unfetch', 'npm:3.0.0'], + ['lodash.get', 'npm:4.4.2'], + ['lodash.has', 'npm:4.5.2'], + ['lodash.merge', 'npm:4.6.2'], + [ + 'next', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2', + ], + ['node-fetch', 'npm:2.6.0'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:16.13.1'], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'tinacms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0', + ], + ['tsup', 'npm:3.7.0'], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['xstate', 'npm:4.15.1'], + ['yup', 'npm:0.32.0'], + ], + packagePeers: [ + '@tinacms/core', + '@tinacms/forms', + '@tinacms/icons', + '@tinacms/react-core', + '@tinacms/react-forms', + '@tinacms/react-modals', + '@tinacms/styles', + '@types/react-dom', + '@types/react-is', + '@types/react', + '@types/styled-components', + '@types/tinacms', + '@types/tinacms__core', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'react-dom', + 'react-is', + 'react', + 'styled-components', + 'tinacms', + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway', + { + packageLocation: + './.yarn/$$virtual/tina-graphql-gateway-virtual-da8524296e/1/packages/tina-graphql-gateway/', + packageDependencies: [ + [ + 'tina-graphql-gateway', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#workspace:packages/tina-graphql-gateway', + ], + [ + '@graphql-codegen/core', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript-operations', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-forms', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/crypto-js', 'npm:3.1.47'], + ['@types/lodash', 'npm:4.14.169'], + ['@types/node', 'npm:14.0.27'], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/react-is', null], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/tinacms', null], + ['@types/tinacms__core', null], + ['@types/tinacms__forms', null], + ['@types/tinacms__icons', null], + ['@types/tinacms__react-core', null], + ['@types/tinacms__react-forms', null], + ['@types/tinacms__react-modals', null], + ['@types/tinacms__styles', null], + ['@types/yup', 'npm:0.29.10'], + [ + '@xstate/react', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0', + ], + ['codemirror', 'npm:5.56.0'], + ['cors', 'npm:2.8.5'], + ['crypto-js', 'npm:4.0.0'], + ['final-form', 'npm:4.20.1'], + [ + 'final-form-arrays', + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + ], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['isomorphic-unfetch', 'npm:3.0.0'], + ['lodash.get', 'npm:4.4.2'], + ['lodash.has', 'npm:4.5.2'], + ['lodash.merge', 'npm:4.6.2'], + [ + 'next', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2', + ], + ['node-fetch', 'npm:2.6.0'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + ['react-is', 'npm:17.0.2'], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'tinacms', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0', + ], + ['tsup', 'npm:3.7.0'], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['xstate', 'npm:4.15.1'], + ['yup', 'npm:0.32.0'], + ], + packagePeers: [ + '@types/react-dom', + '@types/react-is', + '@types/react', + '@types/styled-components', + '@types/tinacms', + '@types/tinacms__core', + '@types/tinacms__forms', + '@types/tinacms__icons', + '@types/tinacms__react-core', + '@types/tinacms__react-forms', + '@types/tinacms__react-modals', + '@types/tinacms__styles', + 'react-dom', + 'react-is', + 'react', + 'styled-components', + 'tinacms', + ], + linkType: 'SOFT', + }, + ], + [ + 'workspace:packages/tina-graphql-gateway', + { + packageLocation: './packages/tina-graphql-gateway/', + packageDependencies: [ + [ + 'tina-graphql-gateway', + 'workspace:packages/tina-graphql-gateway', + ], + [ + '@graphql-codegen/core', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript-operations', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/forms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.38.0', + ], + [ + '@tinacms/icons', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.7.0', + ], + [ + '@tinacms/react-core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.2.13', + ], + [ + '@tinacms/react-forms', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.1.12', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/crypto-js', 'npm:3.1.47'], + ['@types/lodash', 'npm:4.14.169'], + ['@types/node', 'npm:14.0.27'], + ['@types/react', 'npm:16.9.43'], + ['@types/styled-components', 'npm:5.1.3'], + ['@types/yup', 'npm:0.29.10'], + [ + '@xstate/react', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:1.1.0', + ], + ['codemirror', 'npm:5.56.0'], + ['cors', 'npm:2.8.5'], + ['crypto-js', 'npm:4.0.0'], + ['final-form', 'npm:4.20.1'], + [ + 'final-form-arrays', + 'virtual:9fa808ddc23eb444daeae963888b79f6eecc2e788af5bd5d4cf4384e1787e595476726c1c23b59df8b3c681e85ae78d0a3a3f8bf34d4fce0431fbd3f94bc4db9#npm:3.0.2', + ], + ['graphql', 'npm:15.3.0'], + [ + 'graphql-tag', + 'virtual:cf6957b3f42ac5e6bf018567127714b571585dabbd48ddf143c614acdbdca961e567f8a0a3ba6c89d1f34a6aa2c2df96fa8164edb18de960a609168a768e8fdd#npm:2.11.0', + ], + ['isomorphic-unfetch', 'npm:3.0.0'], + ['lodash.get', 'npm:4.4.2'], + ['lodash.has', 'npm:4.5.2'], + ['lodash.merge', 'npm:4.6.2'], + [ + 'next', + 'virtual:da6e44dde804d2ca315e0f925189cc0c219117cac1ea5e79254deec3ddf9f515a2f9381588755d514f7cf128162a6938cd0e363dfcc8fb8e160dbcb7a4b229fa#npm:9.4.2', + ], + ['node-fetch', 'npm:2.6.0'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'tinacms', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0', + ], + ['tsup', 'npm:3.7.0'], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['xstate', 'npm:4.15.1'], + ['yup', 'npm:0.32.0'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'tina-graphql-gateway-cli', + [ + [ + 'workspace:packages/tina-graphql-gateway-cli', + { + packageLocation: './packages/tina-graphql-gateway-cli/', + packageDependencies: [ + [ + 'tina-graphql-gateway-cli', + 'workspace:packages/tina-graphql-gateway-cli', + ], + [ + '@graphql-codegen/core', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + [ + '@graphql-codegen/typescript-operations', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:1.17.6', + ], + ['@types/clear', 'npm:0.1.0'], + ['@types/cors', 'npm:2.8.5'], + ['@types/express', 'npm:4.17.7'], + ['@types/express-graphql', 'npm:0.9.0'], + ['@types/figlet', 'npm:1.2.0'], + ['@types/inquirer', 'npm:6.5.0'], + ['@types/jest', 'npm:26.0.4'], + ['@types/js-yaml', 'npm:4.0.0'], + ['@types/listr', 'npm:0.14.2'], + ['@types/lodash', 'npm:4.14.158'], + ['@types/lodash.get', 'npm:4.4.6'], + ['@types/yup', 'npm:0.29.11'], + ['ajv', 'npm:6.12.3'], + ['axios', 'npm:0.19.0'], + ['body-parser', 'npm:1.19.0'], + ['chalk', 'npm:2.4.2'], + ['chokidar', 'npm:3.5.1'], + ['clear', 'npm:0.1.0'], + ['commander', 'npm:5.1.0'], + ['cookie-parser', 'npm:1.4.5'], + ['cors', 'npm:2.8.5'], + ['crypto', 'npm:1.0.1'], + ['esm', 'npm:3.2.25'], + ['express', 'npm:4.17.1'], + [ + 'express-graphql', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:0.11.0', + ], + ['fast-glob', 'npm:3.2.4'], + ['figlet', 'npm:1.5.0'], + ['fs-extra', 'npm:9.0.1'], + ['generator-code', 'npm:1.2.19'], + ['graphql', 'npm:15.3.0'], + ['http-proxy', 'npm:1.18.1'], + ['inquirer', 'npm:6.5.2'], + ['isomorphic-unfetch', 'npm:3.0.0'], + ['jest', 'npm:26.1.0'], + ['js-yaml', 'npm:4.0.0'], + ['jsonwebtoken', 'npm:8.5.1'], + ['jwks-rsa', 'npm:1.8.1'], + ['listr', 'npm:0.14.3'], + ['lodash', 'npm:4.17.19'], + ['lodash.get', 'npm:4.4.2'], + ['ms', 'npm:2.1.2'], + ['normalize-path', 'npm:3.0.0'], + ['open', 'npm:6.4.0'], + ['ora', 'npm:4.0.5'], + ['path', 'npm:0.12.7'], + ['simple-git', 'npm:1.124.0'], + ['tina-graphql', 'workspace:packages/tina-graphql'], + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + [ + 'ts-jest', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:26.5.3', + ], + [ + 'tsup', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:4.6.1', + ], + [ + 'typescript', + 'patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e', + ], + ['yaml', 'npm:1.10.0'], + ['yo', 'npm:3.1.1'], + ['yup', 'npm:0.32.9'], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'tina-graphql-helpers', + [ + [ + 'workspace:packages/tina-graphql-helpers', + { + packageLocation: './packages/tina-graphql-helpers/', + packageDependencies: [ + [ + 'tina-graphql-helpers', + 'workspace:packages/tina-graphql-helpers', + ], + ['@types/jest', 'npm:26.0.7'], + ['@types/lodash.camelcase', 'npm:4.3.6'], + ['@types/lodash.get', 'npm:4.4.6'], + ['@types/lodash.kebabcase', 'npm:4.1.6'], + ['@types/lodash.set', 'npm:4.3.6'], + ['@types/lodash.upperfirst', 'npm:4.3.6'], + ['@types/node', 'npm:14.14.31'], + ['@types/prettier', 'npm:2.2.1'], + ['graphql', 'npm:15.3.0'], + ['jest', 'npm:26.6.3'], + ['lodash.camelcase', 'npm:4.3.0'], + ['lodash.get', 'npm:4.4.2'], + ['lodash.kebabcase', 'npm:4.1.1'], + ['lodash.set', 'npm:4.3.2'], + ['lodash.snakecase', 'npm:4.1.1'], + ['lodash.upperfirst', 'npm:4.3.1'], + ['object-visit', 'npm:1.0.1'], + ['prettier', 'npm:2.2.1'], + [ + 'ts-jest', + 'virtual:a6d35f70c3e2fd33fcfc031f3752f6a635ba8af0cb5c7585138fdaa13987bf1ae287180f3e6810fd5afdec09aad07c4f87783db598c4bba245b6056d674aaeb4#npm:26.5.3', + ], + ['tslib', 'npm:1.13.0'], + ['tsup', 'npm:3.7.0'], + [ + 'typescript', + 'patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e', + ], + ], + linkType: 'SOFT', + }, + ], + ], + ], + [ + 'tinacms', + [ + [ + 'npm:0.31.0', + { + packageLocation: + './.yarn/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/', + packageDependencies: [['tinacms', 'npm:0.31.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/tinacms-virtual-3cfb69b39f/0/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/', + packageDependencies: [ + [ + 'tinacms', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.31.0', + ], + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/fields', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-sidebar', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-toolbar', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-dropzone', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0', + ], + [ + 'styled-components', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + '@types/styled-components', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/tinacms-virtual-50db42f9eb/0/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/', + packageDependencies: [ + [ + 'tinacms', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:0.31.0', + ], + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/fields', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:7c1d8771fa629916b54a46ed4348308770ad59339490f146abfa794d6019fd003334115fe7a5041c1de417b4ab66140945443e7115ef3b3c1f4814717ea334b0#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-alerts', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-sidebar', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/react-toolbar', + 'virtual:50db42f9eb71fa9d1d95bd41536c515f60afd82b00915dd2fb3c0192caf0cb2201f3c290b3075f8eabab30d06ccf3130d4417343cb0d17e743ac2953a3245668#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:da8524296e6a47e8ac37f1d52a787bdc4c634a5e91ff9104065bdeea67762024c650922c1aa55d757001270a714c848da1585b706b9f23e5c04209dc54cd3b77#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-dropzone', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0', + ], + [ + 'styled-components', + 'virtual:c138e2457776db9b0b02b2eb0491d78cb011ec86443888aec0d4b5c37b29281dcff25f8f06b3518a916d4b0e955d2076d47ac3e0c527d9886f757cee530fdb1c#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + '@types/styled-components', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0', + { + packageLocation: + './.yarn/$$virtual/tinacms-virtual-de40cc3b5e/0/cache/tinacms-npm-0.31.0-c50aaba80d-b2eb244063.zip/node_modules/tinacms/', + packageDependencies: [ + [ + 'tinacms', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.31.0', + ], + [ + '@tinacms/alerts', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + ['@tinacms/core', 'npm:0.31.0'], + [ + '@tinacms/fields', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/form-builder', + 'virtual:694916a24193c4e43dfa045f06e96158f57f8220f54a88afb0ce8c2319cb7da317db7ac56728170211d3d6c77091f7ff111bf64b0ba81395f3a17c23087a491c#npm:0.31.0', + ], + [ + '@tinacms/forms', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/icons', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-alerts', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-core', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:0.31.0', + ], + [ + '@tinacms/react-forms', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-modals', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-screens', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-sidebar', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/react-toolbar', + 'virtual:de40cc3b5e79fccdca68dc69fa73a0c6cffcceaa6823d44c41308d8a9b6775cebea7a655e17ba85c94b721fb0f005728460170a391e2d2ce184141db19d4d697#npm:0.31.0', + ], + [ + '@tinacms/styles', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:0.29.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/react-dom', null], + ['@types/styled-components', 'npm:5.1.3'], + ['final-form', 'npm:4.20.1'], + ['prop-types', 'npm:15.7.2'], + ['react', 'npm:16.13.1'], + [ + 'react-beautiful-dnd', + 'virtual:9c101bc2ddeaa29962d5a9fc567fab5c5e7cc68727d73cce5832e2cfa9458276a72cd37fc5778915cbb2ee0c94cefe04388b7c6dde0c6bfe39db41f056fc5074#npm:11.0.5', + ], + [ + 'react-dom', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:16.13.1', + ], + [ + 'react-dropzone', + 'virtual:3cfb69b39fa30c2e9293d1812d48cea5fab593b8ba0e56029783f94895d2cfe05b482a0aa8b00ce304a023bdf75f2e7c7cc5d5f23ab8db0cbfb64b5737636c42#npm:11.2.0', + ], + [ + 'styled-components', + 'virtual:e6605cbf649ec5936183cbdff8c4360c7c267d6e07754ab5fec1e0d59fa6dbcef80b2b8bcdd05740e1e77c13bd6506025bd9eefdd3d1714a498c8e6c69b4d794#npm:5.2.0', + ], + ], + packagePeers: [ + '@types/react-dom', + '@types/react', + '@types/styled-components', + 'react-dom', + 'react', + 'styled-components', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tiny-invariant', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/tiny-invariant-npm-1.1.0-105cc1fc8e-64318fbd77.zip/node_modules/tiny-invariant/', + packageDependencies: [['tiny-invariant', 'npm:1.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tiny-warning', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/tiny-warning-npm-1.0.3-750b7a07c4-6cf9f66cb7.zip/node_modules/tiny-warning/', + packageDependencies: [['tiny-warning', 'npm:1.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tinycolor2', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/tinycolor2-npm-1.4.1-c3c0a28523-7667d9b10c.zip/node_modules/tinycolor2/', + packageDependencies: [['tinycolor2', 'npm:1.4.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'titleize', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/titleize-npm-1.0.1-7d82cb1c96-53f262e61d.zip/node_modules/titleize/', + packageDependencies: [['titleize', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tmp', + [ + [ + 'npm:0.0.29', + { + packageLocation: + './.yarn/cache/tmp-npm-0.0.29-33768985a5-91667c7a2e.zip/node_modules/tmp/', + packageDependencies: [ + ['tmp', 'npm:0.0.29'], + ['os-tmpdir', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.0.33', + { + packageLocation: + './.yarn/cache/tmp-npm-0.0.33-bcbf65df2a-77666ca424.zip/node_modules/tmp/', + packageDependencies: [ + ['tmp', 'npm:0.0.33'], + ['os-tmpdir', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tmpl', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/tmpl-npm-1.0.4-35b37c2875-44de07fb81.zip/node_modules/tmpl/', + packageDependencies: [['tmpl', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'to-arraybuffer', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/to-arraybuffer-npm-1.0.1-a57b097c21-23e72a6636.zip/node_modules/to-arraybuffer/', + packageDependencies: [['to-arraybuffer', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'to-fast-properties', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-40e6198424.zip/node_modules/to-fast-properties/', + packageDependencies: [['to-fast-properties', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'to-object-path', + [ + [ + 'npm:0.3.0', + { + packageLocation: + './.yarn/cache/to-object-path-npm-0.3.0-241b5ffa9c-a6a5a50225.zip/node_modules/to-object-path/', + packageDependencies: [ + ['to-object-path', 'npm:0.3.0'], + ['kind-of', 'npm:3.2.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'to-readable-stream', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/to-readable-stream-npm-1.0.0-4fa4da8130-aa4b65d3e7.zip/node_modules/to-readable-stream/', + packageDependencies: [['to-readable-stream', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'to-regex', + [ + [ + 'npm:3.0.2', + { + packageLocation: + './.yarn/cache/to-regex-npm-3.0.2-3af893c972-ed733fdff8.zip/node_modules/to-regex/', + packageDependencies: [ + ['to-regex', 'npm:3.0.2'], + ['define-property', 'npm:2.0.2'], + ['extend-shallow', 'npm:3.0.2'], + ['regex-not', 'npm:1.0.2'], + ['safe-regex', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'to-regex-range', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/to-regex-range-npm-2.1.1-60af4c593e-801501b59d.zip/node_modules/to-regex-range/', + packageDependencies: [ + ['to-regex-range', 'npm:2.1.1'], + ['is-number', 'npm:3.0.0'], + ['repeat-string', 'npm:1.6.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.1', + { + packageLocation: + './.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-2b6001e314.zip/node_modules/to-regex-range/', + packageDependencies: [ + ['to-regex-range', 'npm:5.0.1'], + ['is-number', 'npm:7.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'toggle-selection', + [ + [ + 'npm:1.0.6', + { + packageLocation: + './.yarn/cache/toggle-selection-npm-1.0.6-c506b73005-c47702aad7.zip/node_modules/toggle-selection/', + packageDependencies: [['toggle-selection', 'npm:1.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'toidentifier', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/toidentifier-npm-1.0.0-5dad252f90-95720e8a0f.zip/node_modules/toidentifier/', + packageDependencies: [['toidentifier', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'toposort', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/toposort-npm-2.0.2-d472329c7d-9e70bf92de.zip/node_modules/toposort/', + packageDependencies: [['toposort', 'npm:2.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'touch', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/touch-npm-3.1.0-e2eacebbda-97a6a508e3.zip/node_modules/touch/', + packageDependencies: [ + ['touch', 'npm:3.1.0'], + ['nopt', 'npm:1.0.10'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tough-cookie', + [ + [ + 'npm:2.5.0', + { + packageLocation: + './.yarn/cache/tough-cookie-npm-2.5.0-79a2fe43fe-bf5d6fac5c.zip/node_modules/tough-cookie/', + packageDependencies: [ + ['tough-cookie', 'npm:2.5.0'], + ['psl', 'npm:1.8.0'], + ['punycode', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/tough-cookie-npm-3.0.1-09a21f6bd7-dc1eee69c6.zip/node_modules/tough-cookie/', + packageDependencies: [ + ['tough-cookie', 'npm:3.0.1'], + ['ip-regex', 'npm:2.1.0'], + ['psl', 'npm:1.8.0'], + ['punycode', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/tough-cookie-npm-4.0.0-7c5f3086af-161dc4728e.zip/node_modules/tough-cookie/', + packageDependencies: [ + ['tough-cookie', 'npm:4.0.0'], + ['psl', 'npm:1.8.0'], + ['punycode', 'npm:2.1.1'], + ['universalify', 'npm:0.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tr46', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/tr46-npm-1.0.1-9547f343a4-66e2e4d679.zip/node_modules/tr46/', + packageDependencies: [ + ['tr46', 'npm:1.0.1'], + ['punycode', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/tr46-npm-2.0.2-9a9c502938-c8c2219079.zip/node_modules/tr46/', + packageDependencies: [ + ['tr46', 'npm:2.0.2'], + ['punycode', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'traverse', + [ + [ + 'npm:0.6.6', + { + packageLocation: + './.yarn/cache/traverse-npm-0.6.6-584cfa4b5f-f2bfaae692.zip/node_modules/traverse/', + packageDependencies: [['traverse', 'npm:0.6.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tree-kill', + [ + [ + 'npm:1.2.2', + { + packageLocation: + './.yarn/cache/tree-kill-npm-1.2.2-3da0e5a759-967643efa4.zip/node_modules/tree-kill/', + packageDependencies: [['tree-kill', 'npm:1.2.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'trim', + [ + [ + 'npm:0.0.1', + { + packageLocation: + './.yarn/cache/trim-npm-0.0.1-d138075543-ecf8478384.zip/node_modules/trim/', + packageDependencies: [['trim', 'npm:0.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'trim-newlines', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/trim-newlines-npm-1.0.0-04abefc015-acc229ae8f.zip/node_modules/trim-newlines/', + packageDependencies: [['trim-newlines', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'trim-trailing-lines', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/trim-trailing-lines-npm-1.1.3-4ce3bbeef5-e09d4a1f58.zip/node_modules/trim-trailing-lines/', + packageDependencies: [['trim-trailing-lines', 'npm:1.1.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'trough', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/trough-npm-1.0.5-791a6e37e5-c116d9e7dd.zip/node_modules/trough/', + packageDependencies: [['trough', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'truncate-utf8-bytes', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/truncate-utf8-bytes-npm-1.0.2-ed694c53b0-208b1197a1.zip/node_modules/truncate-utf8-bytes/', + packageDependencies: [ + ['truncate-utf8-bytes', 'npm:1.0.2'], + ['utf8-byte-length', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ts-interface-checker', + [ + [ + 'npm:0.1.13', + { + packageLocation: + './.yarn/cache/ts-interface-checker-npm-0.1.13-0c7b064494-df3e240963.zip/node_modules/ts-interface-checker/', + packageDependencies: [['ts-interface-checker', 'npm:0.1.13']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ts-invariant', + [ + [ + 'npm:0.4.4', + { + packageLocation: + './.yarn/cache/ts-invariant-npm-0.4.4-9f97371ec3-0280fb0e85.zip/node_modules/ts-invariant/', + packageDependencies: [ + ['ts-invariant', 'npm:0.4.4'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ts-jest', + [ + [ + 'npm:26.1.4', + { + packageLocation: + './.yarn/cache/ts-jest-npm-26.1.4-bae7f255bf-e69d84f07e.zip/node_modules/ts-jest/', + packageDependencies: [['ts-jest', 'npm:26.1.4']], + linkType: 'SOFT', + }, + ], + [ + 'npm:26.5.3', + { + packageLocation: + './.yarn/cache/ts-jest-npm-26.5.3-94fff5bfc5-6f42972081.zip/node_modules/ts-jest/', + packageDependencies: [['ts-jest', 'npm:26.5.3']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a6d35f70c3e2fd33fcfc031f3752f6a635ba8af0cb5c7585138fdaa13987bf1ae287180f3e6810fd5afdec09aad07c4f87783db598c4bba245b6056d674aaeb4#npm:26.5.3', + { + packageLocation: + './.yarn/$$virtual/ts-jest-virtual-f91dbca73a/0/cache/ts-jest-npm-26.5.3-94fff5bfc5-6f42972081.zip/node_modules/ts-jest/', + packageDependencies: [ + [ + 'ts-jest', + 'virtual:a6d35f70c3e2fd33fcfc031f3752f6a635ba8af0cb5c7585138fdaa13987bf1ae287180f3e6810fd5afdec09aad07c4f87783db598c4bba245b6056d674aaeb4#npm:26.5.3', + ], + ['@types/jest', 'npm:26.0.7'], + ['@types/typescript', null], + ['bs-logger', 'npm:0.2.6'], + ['buffer-from', 'npm:1.1.1'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['jest', 'npm:26.6.3'], + ['jest-util', 'npm:26.1.0'], + ['json5', 'npm:2.1.3'], + ['lodash', 'npm:4.17.21'], + ['make-error', 'npm:1.3.6'], + ['mkdirp', 'npm:1.0.4'], + ['semver', 'npm:7.3.2'], + [ + 'typescript', + 'patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e', + ], + ['yargs-parser', 'npm:20.2.7'], + ], + packagePeers: [ + '@types/jest', + '@types/typescript', + 'jest', + 'typescript', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:26.5.3', + { + packageLocation: + './.yarn/$$virtual/ts-jest-virtual-0df94414f6/0/cache/ts-jest-npm-26.5.3-94fff5bfc5-6f42972081.zip/node_modules/ts-jest/', + packageDependencies: [ + [ + 'ts-jest', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:26.5.3', + ], + ['@types/jest', 'npm:26.0.4'], + ['@types/typescript', null], + ['bs-logger', 'npm:0.2.6'], + ['buffer-from', 'npm:1.1.1'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['jest', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['json5', 'npm:2.1.3'], + ['lodash', 'npm:4.17.21'], + ['make-error', 'npm:1.3.6'], + ['mkdirp', 'npm:1.0.4'], + ['semver', 'npm:7.3.2'], + [ + 'typescript', + 'patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e', + ], + ['yargs-parser', 'npm:20.2.7'], + ], + packagePeers: [ + '@types/jest', + '@types/typescript', + 'jest', + 'typescript', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:26.1.4', + { + packageLocation: + './.yarn/$$virtual/ts-jest-virtual-93cc783227/0/cache/ts-jest-npm-26.1.4-bae7f255bf-e69d84f07e.zip/node_modules/ts-jest/', + packageDependencies: [ + [ + 'ts-jest', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:26.1.4', + ], + ['@types/jest', 'npm:26.0.7'], + ['@types/typescript', null], + ['bs-logger', 'npm:0.2.6'], + ['buffer-from', 'npm:1.1.1'], + ['fast-json-stable-stringify', 'npm:2.1.0'], + ['jest', 'npm:26.1.0'], + ['jest-util', 'npm:26.1.0'], + ['json5', 'npm:2.1.3'], + ['lodash.memoize', 'npm:4.1.2'], + ['make-error', 'npm:1.3.6'], + ['mkdirp', 'npm:1.0.4'], + ['semver', 'npm:7.3.2'], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ['yargs-parser', 'npm:18.1.3'], + ], + packagePeers: [ + '@types/jest', + '@types/typescript', + 'jest', + 'typescript', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ts-pnp', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/ts-pnp-npm-1.2.0-43620de7df-78341a2793.zip/node_modules/ts-pnp/', + packageDependencies: [['ts-pnp', 'npm:1.2.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:c497046afcbefb679e3fe12575088ec12205b913a36c3d158b27e7cd646d448426540ab27ba98e54ddb75b1ed97de7e3ce5dc0158c9ba4e76ce942c87e5d02d8#npm:1.2.0', + { + packageLocation: + './.yarn/$$virtual/ts-pnp-virtual-abd2827f29/0/cache/ts-pnp-npm-1.2.0-43620de7df-78341a2793.zip/node_modules/ts-pnp/', + packageDependencies: [ + [ + 'ts-pnp', + 'virtual:c497046afcbefb679e3fe12575088ec12205b913a36c3d158b27e7cd646d448426540ab27ba98e54ddb75b1ed97de7e3ce5dc0158c9ba4e76ce942c87e5d02d8#npm:1.2.0', + ], + ['@types/typescript', null], + ['typescript', null], + ], + packagePeers: ['@types/typescript', 'typescript'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tslib', + [ + [ + 'npm:1.13.0', + { + packageLocation: + './.yarn/cache/tslib-npm-1.13.0-f5e9ea9b66-5dc3bdaea3.zip/node_modules/tslib/', + packageDependencies: [['tslib', 'npm:1.13.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/tslib-npm-2.0.0-4d841ae35a-a7369a224f.zip/node_modules/tslib/', + packageDependencies: [['tslib', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/tslib-npm-2.0.1-26f70961f9-7b42337a07.zip/node_modules/tslib/', + packageDependencies: [['tslib', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tsup', + [ + [ + 'npm:3.7.0', + { + packageLocation: + './.yarn/cache/tsup-npm-3.7.0-5b90510b02-6ddf12e7b3.zip/node_modules/tsup/', + packageDependencies: [ + ['tsup', 'npm:3.7.0'], + ['cac', 'npm:6.6.1'], + ['chalk', 'npm:4.1.0'], + ['chokidar', 'npm:3.4.2'], + ['esbuild', 'npm:0.6.32'], + ['joycon', 'npm:2.2.5'], + ['resolve-from', 'npm:5.0.0'], + ['rollup', 'npm:2.32.1'], + [ + 'rollup-plugin-dts', + 'virtual:5b90510b026d7a2311083a18cacc86fbd3969a3562e3b7dbd8c864efa3c60cdffbbc3017a5442b96c07bcfcf4010a593556e7ee9f5761d6ce56b732dc2585953#npm:1.4.13', + ], + ['sucrase', 'npm:3.15.0'], + [ + 'typescript', + 'patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.6.1', + { + packageLocation: + './.yarn/cache/tsup-npm-4.6.1-ec1883c0f6-a86da36251.zip/node_modules/tsup/', + packageDependencies: [['tsup', 'npm:4.6.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:4.6.1', + { + packageLocation: + './.yarn/$$virtual/tsup-virtual-cada2ee815/0/cache/tsup-npm-4.6.1-ec1883c0f6-a86da36251.zip/node_modules/tsup/', + packageDependencies: [ + [ + 'tsup', + 'virtual:a722c7d3ce2b8affe9d77374b299e3e86c9e2e410ae49fc16482f2b404f8238e91488a64649ef452edcd1202a92da0e7883fbb56fd4d35f3ad5f6cf5921f0783#npm:4.6.1', + ], + [ + '@rollup/plugin-node-resolve', + 'virtual:cada2ee815a8bb9867bc6df56f6788ca4baf721877021470643cf1a10fa7eba82dd37f67ca56abb44a0f639613382e6443afc40fbe67a4ad334cfe4cb2e0fe13#npm:11.2.0', + ], + ['@types/typescript', null], + ['cac', 'npm:6.7.2'], + ['chalk', 'npm:4.1.0'], + ['chokidar', 'npm:3.5.1'], + ['esbuild', 'npm:0.8.54'], + ['globby', 'npm:11.0.2'], + ['joycon', 'npm:2.2.5'], + ['postcss-load-config', 'npm:3.0.1'], + ['resolve-from', 'npm:5.0.0'], + ['rollup', 'npm:2.40.0'], + ['sucrase', 'npm:3.17.1'], + [ + 'typescript', + 'patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e', + ], + ], + packagePeers: ['@types/typescript', 'typescript'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tty-browserify', + [ + [ + 'npm:0.0.0', + { + packageLocation: + './.yarn/cache/tty-browserify-npm-0.0.0-684371f6ca-ef28fe256a.zip/node_modules/tty-browserify/', + packageDependencies: [['tty-browserify', 'npm:0.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tunnel', + [ + [ + 'npm:0.0.6', + { + packageLocation: + './.yarn/cache/tunnel-npm-0.0.6-b1c0830ea4-78fbb1a55a.zip/node_modules/tunnel/', + packageDependencies: [['tunnel', 'npm:0.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tunnel-agent', + [ + [ + 'npm:0.6.0', + { + packageLocation: + './.yarn/cache/tunnel-agent-npm-0.6.0-64345ab7eb-03db75a4f9.zip/node_modules/tunnel-agent/', + packageDependencies: [ + ['tunnel-agent', 'npm:0.6.0'], + ['safe-buffer', 'npm:5.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'tweetnacl', + [ + [ + 'npm:0.14.5', + { + packageLocation: + './.yarn/cache/tweetnacl-npm-0.14.5-a3f766c0d1-e1c9d52e2e.zip/node_modules/tweetnacl/', + packageDependencies: [['tweetnacl', 'npm:0.14.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'twig', + [ + [ + 'npm:1.15.1', + { + packageLocation: + './.yarn/cache/twig-npm-1.15.1-b3647f2d7d-09c4e760a3.zip/node_modules/twig/', + packageDependencies: [ + ['twig', 'npm:1.15.1'], + ['@babel/runtime', 'npm:7.10.5'], + ['locutus', 'npm:2.0.11'], + ['minimatch', 'npm:3.0.4'], + ['walk', 'npm:2.3.14'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'type', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/type-npm-1.2.0-e67311c4b2-1589416fd9.zip/node_modules/type/', + packageDependencies: [['type', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/type-npm-2.0.0-fa23229fa0-aa673b5a91.zip/node_modules/type/', + packageDependencies: [['type', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'type-check', + [ + [ + 'npm:0.3.2', + { + packageLocation: + './.yarn/cache/type-check-npm-0.3.2-a4a38bb0b6-4e08064531.zip/node_modules/type-check/', + packageDependencies: [ + ['type-check', 'npm:0.3.2'], + ['prelude-ls', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'type-detect', + [ + [ + 'npm:4.0.8', + { + packageLocation: + './.yarn/cache/type-detect-npm-4.0.8-8d8127b901-e01dc6ac90.zip/node_modules/type-detect/', + packageDependencies: [['type-detect', 'npm:4.0.8']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'type-fest', + [ + [ + 'npm:0.11.0', + { + packageLocation: + './.yarn/cache/type-fest-npm-0.11.0-81410fe889-02e5cadf13.zip/node_modules/type-fest/', + packageDependencies: [['type-fest', 'npm:0.11.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.13.1', + { + packageLocation: + './.yarn/cache/type-fest-npm-0.13.1-7f4486b973-11acce4f34.zip/node_modules/type-fest/', + packageDependencies: [['type-fest', 'npm:0.13.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.3.1', + { + packageLocation: + './.yarn/cache/type-fest-npm-0.3.1-542c938bf6-5089230611.zip/node_modules/type-fest/', + packageDependencies: [['type-fest', 'npm:0.3.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.6.0', + { + packageLocation: + './.yarn/cache/type-fest-npm-0.6.0-76b229965b-c77f687caf.zip/node_modules/type-fest/', + packageDependencies: [['type-fest', 'npm:0.6.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.7.1', + { + packageLocation: + './.yarn/cache/type-fest-npm-0.7.1-7b37912923-13aa0b28ad.zip/node_modules/type-fest/', + packageDependencies: [['type-fest', 'npm:0.7.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:0.8.1', + { + packageLocation: + './.yarn/cache/type-fest-npm-0.8.1-351ad028fe-f8c4b4249f.zip/node_modules/type-fest/', + packageDependencies: [['type-fest', 'npm:0.8.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'type-is', + [ + [ + 'npm:1.6.18', + { + packageLocation: + './.yarn/cache/type-is-npm-1.6.18-6dee4d4961-20a3514f1d.zip/node_modules/type-is/', + packageDependencies: [ + ['type-is', 'npm:1.6.18'], + ['media-typer', 'npm:0.3.0'], + ['mime-types', 'npm:2.1.27'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'typedarray', + [ + [ + 'npm:0.0.6', + { + packageLocation: + './.yarn/cache/typedarray-npm-0.0.6-37638b2241-c9ef0176aa.zip/node_modules/typedarray/', + packageDependencies: [['typedarray', 'npm:0.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'typedarray-to-buffer', + [ + [ + 'npm:3.1.5', + { + packageLocation: + './.yarn/cache/typedarray-to-buffer-npm-3.1.5-aadc11995e-e6e0e6812a.zip/node_modules/typedarray-to-buffer/', + packageDependencies: [ + ['typedarray-to-buffer', 'npm:3.1.5'], + ['is-typedarray', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'typedoc', + [ + [ + 'npm:0.19.2', + { + packageLocation: + './.yarn/cache/typedoc-npm-0.19.2-67686083da-fc33909c4d.zip/node_modules/typedoc/', + packageDependencies: [['typedoc', 'npm:0.19.2']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.19.2', + { + packageLocation: + './.yarn/$$virtual/typedoc-virtual-7efcbd062d/0/cache/typedoc-npm-0.19.2-67686083da-fc33909c4d.zip/node_modules/typedoc/', + packageDependencies: [ + [ + 'typedoc', + 'virtual:ad74675a0e1b648325f18a54086db87208f9358fde06ba94bd9fd8a055e4275c4c423f9823b172fcda2f1648a98ecc0c1b509a91c44e96fbfa49dbd5df069d69#npm:0.19.2', + ], + ['@types/typescript', null], + ['fs-extra', 'npm:9.0.1'], + ['handlebars', 'npm:4.7.6'], + ['highlight.js', 'npm:10.2.0'], + ['lodash', 'npm:4.17.20'], + ['lunr', 'npm:2.3.9'], + ['marked', 'npm:1.1.1'], + ['minimatch', 'npm:3.0.4'], + ['progress', 'npm:2.0.3'], + ['semver', 'npm:7.3.2'], + ['shelljs', 'npm:0.8.4'], + ['typedoc-default-themes', 'npm:0.11.4'], + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ], + packagePeers: ['@types/typescript', 'typescript'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'typedoc-default-themes', + [ + [ + 'npm:0.11.4', + { + packageLocation: + './.yarn/cache/typedoc-default-themes-npm-0.11.4-4359825f62-1993030e24.zip/node_modules/typedoc-default-themes/', + packageDependencies: [['typedoc-default-themes', 'npm:0.11.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'typescript', + [ + [ + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + { + packageLocation: + './.yarn/cache/typescript-patch-fb1f2b17f5-ee9b64dafd.zip/node_modules/typescript/', + packageDependencies: [ + [ + 'typescript', + 'patch:typescript@npm%3A3.9.7#builtin::version=3.9.7&hash=a45b0e', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e', + { + packageLocation: + './.yarn/cache/typescript-patch-d06dd06dc9-50be92a771.zip/node_modules/typescript/', + packageDependencies: [ + [ + 'typescript', + 'patch:typescript@npm%3A4.0.3#builtin::version=4.0.3&hash=a45b0e', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e', + { + packageLocation: + './.yarn/cache/typescript-patch-2b7a16a96b-ea1f1b6be2.zip/node_modules/typescript/', + packageDependencies: [ + [ + 'typescript', + 'patch:typescript@npm%3A4.2.2#builtin::version=4.2.2&hash=a45b0e', + ], + ], + linkType: 'HARD', + }, + ], + [ + 'patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e', + { + packageLocation: + './.yarn/cache/typescript-patch-99fe32b02b-a8956044aa.zip/node_modules/typescript/', + packageDependencies: [ + [ + 'typescript', + 'patch:typescript@npm%3A4.2.3#builtin::version=4.2.3&hash=a45b0e', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ua-parser-js', + [ + [ + 'npm:0.7.21', + { + packageLocation: + './.yarn/cache/ua-parser-js-npm-0.7.21-b6acc81503-5bd2d949e2.zip/node_modules/ua-parser-js/', + packageDependencies: [['ua-parser-js', 'npm:0.7.21']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'uc.micro', + [ + [ + 'npm:1.0.6', + { + packageLocation: + './.yarn/cache/uc.micro-npm-1.0.6-36f3dc2fc4-9dfe5ad0a0.zip/node_modules/uc.micro/', + packageDependencies: [['uc.micro', 'npm:1.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'uglify-js', + [ + [ + 'npm:3.10.4', + { + packageLocation: + './.yarn/cache/uglify-js-npm-3.10.4-0abf59239e-b16ee80e2d.zip/node_modules/uglify-js/', + packageDependencies: [['uglify-js', 'npm:3.10.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unc-path-regex', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/unc-path-regex-npm-0.1.2-53c3343ef3-585e293579.zip/node_modules/unc-path-regex/', + packageDependencies: [['unc-path-regex', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'undefsafe', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/undefsafe-npm-2.0.3-ce5f7e2bb1-0974f82a87.zip/node_modules/undefsafe/', + packageDependencies: [ + ['undefsafe', 'npm:2.0.3'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'underscore', + [ + [ + 'npm:1.8.3', + { + packageLocation: + './.yarn/cache/underscore-npm-1.8.3-a2d207f853-31f4f79bd5.zip/node_modules/underscore/', + packageDependencies: [['underscore', 'npm:1.8.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unfetch', + [ + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/unfetch-npm-4.1.0-400b98ec2c-22b729e6e6.zip/node_modules/unfetch/', + packageDependencies: [['unfetch', 'npm:4.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unherit', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/unherit-npm-1.1.3-14f0bf5f12-387415adc7.zip/node_modules/unherit/', + packageDependencies: [ + ['unherit', 'npm:1.1.3'], + ['inherits', 'npm:2.0.4'], + ['xtend', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unicode-canonical-property-names-ecmascript', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/unicode-canonical-property-names-ecmascript-npm-1.0.4-8c5eeb73e7-8b51950f8f.zip/node_modules/unicode-canonical-property-names-ecmascript/', + packageDependencies: [ + ['unicode-canonical-property-names-ecmascript', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unicode-match-property-ecmascript', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/unicode-match-property-ecmascript-npm-1.0.4-4729801dd7-481203b4b8.zip/node_modules/unicode-match-property-ecmascript/', + packageDependencies: [ + ['unicode-match-property-ecmascript', 'npm:1.0.4'], + ['unicode-canonical-property-names-ecmascript', 'npm:1.0.4'], + ['unicode-property-aliases-ecmascript', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unicode-match-property-value-ecmascript', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/unicode-match-property-value-ecmascript-npm-1.2.0-d6b5d66edf-892ca39335.zip/node_modules/unicode-match-property-value-ecmascript/', + packageDependencies: [ + ['unicode-match-property-value-ecmascript', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unicode-property-aliases-ecmascript', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/unicode-property-aliases-ecmascript-npm-1.1.0-2d3021f23b-2fa80e62a6.zip/node_modules/unicode-property-aliases-ecmascript/', + packageDependencies: [ + ['unicode-property-aliases-ecmascript', 'npm:1.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unified', + [ + [ + 'npm:6.2.0', + { + packageLocation: + './.yarn/cache/unified-npm-6.2.0-824644bed4-f524c6320c.zip/node_modules/unified/', + packageDependencies: [ + ['unified', 'npm:6.2.0'], + ['bail', 'npm:1.0.5'], + ['extend', 'npm:3.0.2'], + ['is-plain-obj', 'npm:1.1.0'], + ['trough', 'npm:1.0.5'], + ['vfile', 'npm:2.3.0'], + ['x-is-string', 'npm:0.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.2.0', + { + packageLocation: + './.yarn/cache/unified-npm-9.2.0-2edf64a14a-07fd97c046.zip/node_modules/unified/', + packageDependencies: [ + ['unified', 'npm:9.2.0'], + ['bail', 'npm:1.0.5'], + ['extend', 'npm:3.0.2'], + ['is-buffer', 'npm:2.0.4'], + ['is-plain-obj', 'npm:2.1.0'], + ['trough', 'npm:1.0.5'], + ['vfile', 'npm:4.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:9.2.1', + { + packageLocation: + './.yarn/cache/unified-npm-9.2.1-1e228147c2-7997e5471d.zip/node_modules/unified/', + packageDependencies: [ + ['unified', 'npm:9.2.1'], + ['bail', 'npm:1.0.5'], + ['extend', 'npm:3.0.2'], + ['is-buffer', 'npm:2.0.4'], + ['is-plain-obj', 'npm:2.1.0'], + ['trough', 'npm:1.0.5'], + ['vfile', 'npm:4.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'union-value', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/union-value-npm-1.0.1-76c6e8a88f-bd6ae611f0.zip/node_modules/union-value/', + packageDependencies: [ + ['union-value', 'npm:1.0.1'], + ['arr-union', 'npm:3.1.0'], + ['get-value', 'npm:2.0.6'], + ['is-extendable', 'npm:0.1.1'], + ['set-value', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'uniq', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/uniq-npm-1.0.1-5cab2dd0f3-a5603a5b31.zip/node_modules/uniq/', + packageDependencies: [['uniq', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'uniqs', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/uniqs-npm-2.0.0-f8efe64815-f6467e9cb9.zip/node_modules/uniqs/', + packageDependencies: [['uniqs', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unique-filename', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/unique-filename-npm-1.1.1-c885c5095b-0e674206bd.zip/node_modules/unique-filename/', + packageDependencies: [ + ['unique-filename', 'npm:1.1.1'], + ['unique-slug', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unique-slug', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/unique-slug-npm-2.0.2-f6ba1ddeb7-3b17dabc13.zip/node_modules/unique-slug/', + packageDependencies: [ + ['unique-slug', 'npm:2.0.2'], + ['imurmurhash', 'npm:0.1.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unique-string', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/unique-string-npm-1.0.0-96ab75fd6b-860f1ab835.zip/node_modules/unique-string/', + packageDependencies: [ + ['unique-string', 'npm:1.0.0'], + ['crypto-random-string', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/unique-string-npm-2.0.0-3153c97e47-a2748b41ea.zip/node_modules/unique-string/', + packageDependencies: [ + ['unique-string', 'npm:2.0.0'], + ['crypto-random-string', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-builder', + [ + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/unist-builder-npm-2.0.3-8bf7de2024-64f9231bac.zip/node_modules/unist-builder/', + packageDependencies: [['unist-builder', 'npm:2.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-generated', + [ + [ + 'npm:1.1.5', + { + packageLocation: + './.yarn/cache/unist-util-generated-npm-1.1.5-6690a68fb4-56355ea74f.zip/node_modules/unist-util-generated/', + packageDependencies: [['unist-util-generated', 'npm:1.1.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-is', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/unist-util-is-npm-3.0.0-1816040586-c001cb8366.zip/node_modules/unist-util-is/', + packageDependencies: [['unist-util-is', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/unist-util-is-npm-4.0.2-edcf2f5815-497967dc77.zip/node_modules/unist-util-is/', + packageDependencies: [['unist-util-is', 'npm:4.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-position', + [ + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/unist-util-position-npm-3.1.0-72deebe862-3e51e44fa7.zip/node_modules/unist-util-position/', + packageDependencies: [['unist-util-position', 'npm:3.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-remove-position', + [ + [ + 'npm:1.1.4', + { + packageLocation: + './.yarn/cache/unist-util-remove-position-npm-1.1.4-ddac633e26-be5b8e2d35.zip/node_modules/unist-util-remove-position/', + packageDependencies: [ + ['unist-util-remove-position', 'npm:1.1.4'], + ['unist-util-visit', 'npm:1.4.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/unist-util-remove-position-npm-2.0.1-8d82f0286a-0b1a7046c4.zip/node_modules/unist-util-remove-position/', + packageDependencies: [ + ['unist-util-remove-position', 'npm:2.0.1'], + ['unist-util-visit', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/unist-util-remove-position-npm-3.0.0-2472e4fede-981cf61ab3.zip/node_modules/unist-util-remove-position/', + packageDependencies: [ + ['unist-util-remove-position', 'npm:3.0.0'], + ['unist-util-visit', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-stringify-position', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/unist-util-stringify-position-npm-1.1.2-df033816cc-fa314c7d14.zip/node_modules/unist-util-stringify-position/', + packageDependencies: [ + ['unist-util-stringify-position', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/unist-util-stringify-position-npm-2.0.3-abaa9bf961-2017497ef7.zip/node_modules/unist-util-stringify-position/', + packageDependencies: [ + ['unist-util-stringify-position', 'npm:2.0.3'], + ['@types/unist', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-visit', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/unist-util-visit-npm-1.4.1-fdb79796c9-6c62b50495.zip/node_modules/unist-util-visit/', + packageDependencies: [ + ['unist-util-visit', 'npm:1.4.1'], + ['unist-util-visit-parents', 'npm:2.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.3', + { + packageLocation: + './.yarn/cache/unist-util-visit-npm-2.0.3-e3d6dbea25-7af837673e.zip/node_modules/unist-util-visit/', + packageDependencies: [ + ['unist-util-visit', 'npm:2.0.3'], + ['@types/unist', 'npm:2.0.3'], + ['unist-util-is', 'npm:4.0.2'], + ['unist-util-visit-parents', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unist-util-visit-parents', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/unist-util-visit-parents-npm-1.1.2-9e59a5e880-0f5108267d.zip/node_modules/unist-util-visit-parents/', + packageDependencies: [ + ['unist-util-visit-parents', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/unist-util-visit-parents-npm-2.1.2-154aede9d7-26807f1d21.zip/node_modules/unist-util-visit-parents/', + packageDependencies: [ + ['unist-util-visit-parents', 'npm:2.1.2'], + ['unist-util-is', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/unist-util-visit-parents-npm-3.1.0-64fdf235a4-a4283d0475.zip/node_modules/unist-util-visit-parents/', + packageDependencies: [ + ['unist-util-visit-parents', 'npm:3.1.0'], + ['@types/unist', 'npm:2.0.3'], + ['unist-util-is', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'universal-github-app-jwt', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/universal-github-app-jwt-npm-1.1.0-47f0de09a5-e0e8e26cd4.zip/node_modules/universal-github-app-jwt/', + packageDependencies: [ + ['universal-github-app-jwt', 'npm:1.1.0'], + ['@types/jsonwebtoken', 'npm:8.5.0'], + ['jsonwebtoken', 'npm:8.5.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'universal-url', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/universal-url-npm-2.0.0-b39e7d7f27-403800e8b1.zip/node_modules/universal-url/', + packageDependencies: [ + ['universal-url', 'npm:2.0.0'], + ['hasurl', 'npm:1.0.0'], + ['whatwg-url', 'npm:7.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'universal-user-agent', + [ + [ + 'npm:4.0.1', + { + packageLocation: + './.yarn/cache/universal-user-agent-npm-4.0.1-d1d67caaeb-553ee1f53f.zip/node_modules/universal-user-agent/', + packageDependencies: [ + ['universal-user-agent', 'npm:4.0.1'], + ['os-name', 'npm:3.1.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.0.0', + { + packageLocation: + './.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-725797ab63.zip/node_modules/universal-user-agent/', + packageDependencies: [['universal-user-agent', 'npm:6.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'universalify', + [ + [ + 'npm:0.1.2', + { + packageLocation: + './.yarn/cache/universalify-npm-0.1.2-9b22d31d2d-420fc65473.zip/node_modules/universalify/', + packageDependencies: [['universalify', 'npm:0.1.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/universalify-npm-1.0.0-eff81409f3-d74303a8d9.zip/node_modules/universalify/', + packageDependencies: [['universalify', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unixify', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/unixify-npm-1.0.0-6346176065-8a939fba41.zip/node_modules/unixify/', + packageDependencies: [ + ['unixify', 'npm:1.0.0'], + ['normalize-path', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unpipe', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/unpipe-npm-1.0.0-2ed2a3c2bf-ba244e8bf6.zip/node_modules/unpipe/', + packageDependencies: [['unpipe', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unquote', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/unquote-npm-1.1.1-11903c1689-468981e454.zip/node_modules/unquote/', + packageDependencies: [['unquote', 'npm:1.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unset-value', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/unset-value-npm-1.0.0-2af803b920-b4c4853f27.zip/node_modules/unset-value/', + packageDependencies: [ + ['unset-value', 'npm:1.0.0'], + ['has-value', 'npm:0.3.1'], + ['isobject', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'untildify', + [ + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/untildify-npm-3.0.3-8a2b8af206-3682e39490.zip/node_modules/untildify/', + packageDependencies: [['untildify', 'npm:3.0.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'unzip-response', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/unzip-response-npm-2.0.1-d139c365e6-ba0ef3428f.zip/node_modules/unzip-response/', + packageDependencies: [['unzip-response', 'npm:2.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'upath', + [ + [ + 'npm:1.2.0', + { + packageLocation: + './.yarn/cache/upath-npm-1.2.0-ca00ec3398-ecb08ff3e7.zip/node_modules/upath/', + packageDependencies: [['upath', 'npm:1.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'update-notifier', + [ + [ + 'npm:2.5.0', + { + packageLocation: + './.yarn/cache/update-notifier-npm-2.5.0-67a849582a-3edbc57db1.zip/node_modules/update-notifier/', + packageDependencies: [ + ['update-notifier', 'npm:2.5.0'], + ['boxen', 'npm:1.3.0'], + ['chalk', 'npm:2.4.2'], + ['configstore', 'npm:3.1.2'], + ['import-lazy', 'npm:2.1.0'], + ['is-ci', 'npm:1.2.1'], + ['is-installed-globally', 'npm:0.1.0'], + ['is-npm', 'npm:1.0.0'], + ['latest-version', 'npm:3.1.0'], + ['semver-diff', 'npm:2.1.0'], + ['xdg-basedir', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.0', + { + packageLocation: + './.yarn/cache/update-notifier-npm-4.1.0-b35ff2fd87-2d35bb8785.zip/node_modules/update-notifier/', + packageDependencies: [ + ['update-notifier', 'npm:4.1.0'], + ['boxen', 'npm:4.2.0'], + ['chalk', 'npm:3.0.0'], + ['configstore', 'npm:5.0.1'], + ['has-yarn', 'npm:2.1.0'], + ['import-lazy', 'npm:2.1.0'], + ['is-ci', 'npm:2.0.0'], + ['is-installed-globally', 'npm:0.3.2'], + ['is-npm', 'npm:4.0.0'], + ['is-yarn-global', 'npm:0.3.0'], + ['latest-version', 'npm:5.1.0'], + ['pupa', 'npm:2.0.1'], + ['semver-diff', 'npm:3.1.1'], + ['xdg-basedir', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.3', + { + packageLocation: + './.yarn/cache/update-notifier-npm-4.1.3-837e724aca-90362dcdf3.zip/node_modules/update-notifier/', + packageDependencies: [ + ['update-notifier', 'npm:4.1.3'], + ['boxen', 'npm:4.2.0'], + ['chalk', 'npm:3.0.0'], + ['configstore', 'npm:5.0.1'], + ['has-yarn', 'npm:2.1.0'], + ['import-lazy', 'npm:2.1.0'], + ['is-ci', 'npm:2.0.0'], + ['is-installed-globally', 'npm:0.3.2'], + ['is-npm', 'npm:4.0.0'], + ['is-yarn-global', 'npm:0.3.0'], + ['latest-version', 'npm:5.1.0'], + ['pupa', 'npm:2.0.1'], + ['semver-diff', 'npm:3.1.1'], + ['xdg-basedir', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'upper-case', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/upper-case-npm-2.0.1-3adcf3afdb-69c914af89.zip/node_modules/upper-case/', + packageDependencies: [ + ['upper-case', 'npm:2.0.1'], + ['tslib', 'npm:1.13.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'uri-js', + [ + [ + 'npm:4.2.2', + { + packageLocation: + './.yarn/cache/uri-js-npm-4.2.2-e6ac2fca26-651a49f55d.zip/node_modules/uri-js/', + packageDependencies: [ + ['uri-js', 'npm:4.2.2'], + ['punycode', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'urix', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/urix-npm-0.1.0-bd5e55a13a-6bdfca4e7f.zip/node_modules/urix/', + packageDependencies: [['urix', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'url', + [ + [ + 'npm:0.11.0', + { + packageLocation: + './.yarn/cache/url-npm-0.11.0-32ce15acfb-537f785b16.zip/node_modules/url/', + packageDependencies: [ + ['url', 'npm:0.11.0'], + ['punycode', 'npm:1.3.2'], + ['querystring', 'npm:0.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'url-parse-lax', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/url-parse-lax-npm-1.0.0-72419d807b-454fddd786.zip/node_modules/url-parse-lax/', + packageDependencies: [ + ['url-parse-lax', 'npm:1.0.0'], + ['prepend-http', 'npm:1.0.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/url-parse-lax-npm-3.0.0-92aa8effa0-334817036b.zip/node_modules/url-parse-lax/', + packageDependencies: [ + ['url-parse-lax', 'npm:3.0.0'], + ['prepend-http', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'url-to-options', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/url-to-options-npm-1.0.1-7eb319b3c8-695eb113d3.zip/node_modules/url-to-options/', + packageDependencies: [['url-to-options', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'urql', + [ + [ + 'npm:1.10.0', + { + packageLocation: + './.yarn/cache/urql-npm-1.10.0-d5cd1f0be1-47922ec31c.zip/node_modules/urql/', + packageDependencies: [['urql', 'npm:1.10.0']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0', + { + packageLocation: + './.yarn/$$virtual/urql-virtual-39804becf0/0/cache/urql-npm-1.10.0-d5cd1f0be1-47922ec31c.zip/node_modules/urql/', + packageDependencies: [ + [ + 'urql', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.10.0', + ], + ['@types/graphql', null], + ['@types/react', 'npm:16.9.43'], + [ + '@urql/core', + 'virtual:4844e5daff3cdacbe824d4f38e5b46ad1a8b3a6063f0e278e3970230ced923850cc1edd66b900b9e88b96ec427ca0939ebb2ef63a4036d45927ba8b7cff18fa0#npm:1.12.3', + ], + ['graphql', 'npm:15.3.0'], + ['react', 'npm:16.13.1'], + ['wonka', 'npm:4.0.14'], + ], + packagePeers: [ + '@types/graphql', + '@types/react', + 'graphql', + 'react', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'use', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/use-npm-3.1.1-7ba643714c-8dd3bdeeda.zip/node_modules/use/', + packageDependencies: [['use', 'npm:3.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'use-isomorphic-layout-effect', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/use-isomorphic-layout-effect-npm-1.0.0-0f9b19ced6-2cf505f5d7.zip/node_modules/use-isomorphic-layout-effect/', + packageDependencies: [ + ['use-isomorphic-layout-effect', 'npm:1.0.0'], + ], + linkType: 'SOFT', + }, + ], + [ + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0', + { + packageLocation: + './.yarn/$$virtual/use-isomorphic-layout-effect-virtual-5f5e97a9c0/0/cache/use-isomorphic-layout-effect-npm-1.0.0-0f9b19ced6-2cf505f5d7.zip/node_modules/use-isomorphic-layout-effect/', + packageDependencies: [ + [ + 'use-isomorphic-layout-effect', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.0.0', + ], + ['@types/react', 'npm:16.9.43'], + ['@types/types__react', null], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', '@types/types__react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'use-memo-one', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/use-memo-one-npm-1.1.1-41d1dc2ef9-691a41156a.zip/node_modules/use-memo-one/', + packageDependencies: [['use-memo-one', 'npm:1.1.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:1.1.1', + { + packageLocation: + './.yarn/$$virtual/use-memo-one-virtual-5d41909d1f/0/cache/use-memo-one-npm-1.1.1-41d1dc2ef9-691a41156a.zip/node_modules/use-memo-one/', + packageDependencies: [ + [ + 'use-memo-one', + 'virtual:81a9d4a08ecbbb507c6abb184c14888ee7dce7d853d787441ed8429d8ae6e2a8eda73fbf0ae90f1591e52c832c3734ca92b8b2962b3335763fb5eed892fbbf07#npm:1.1.1', + ], + ['@types/react', 'npm:16.9.43'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'use-subscription', + [ + [ + 'npm:1.4.1', + { + packageLocation: + './.yarn/cache/use-subscription-npm-1.4.1-61a02fde35-d2c82e0f4b.zip/node_modules/use-subscription/', + packageDependencies: [['use-subscription', 'npm:1.4.1']], + linkType: 'SOFT', + }, + ], + [ + 'npm:1.5.1', + { + packageLocation: + './.yarn/cache/use-subscription-npm-1.5.1-d91d77edbb-3abcef5524.zip/node_modules/use-subscription/', + packageDependencies: [['use-subscription', 'npm:1.5.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.5.1', + { + packageLocation: + './.yarn/$$virtual/use-subscription-virtual-fcea6b8859/0/cache/use-subscription-npm-1.5.1-d91d77edbb-3abcef5524.zip/node_modules/use-subscription/', + packageDependencies: [ + [ + 'use-subscription', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:1.5.1', + ], + ['@types/react', 'npm:16.9.43'], + ['object-assign', 'npm:4.1.1'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + [ + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1', + { + packageLocation: + './.yarn/$$virtual/use-subscription-virtual-b347f81281/0/cache/use-subscription-npm-1.4.1-61a02fde35-d2c82e0f4b.zip/node_modules/use-subscription/', + packageDependencies: [ + [ + 'use-subscription', + 'virtual:89f4f6ff065ae2362e2c984036506e373bb62a84a6639790973e0f6691f68960dfa0e6d2e42ca406ed2f1cee839a57f908dda720340a3553632be16fba912538#npm:1.4.1', + ], + ['@types/react', 'npm:16.9.43'], + ['object-assign', 'npm:4.1.1'], + ['react', 'npm:16.13.1'], + ], + packagePeers: ['@types/react', 'react'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'user-home', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/user-home-npm-2.0.0-a7b3877168-ba2791a65d.zip/node_modules/user-home/', + packageDependencies: [ + ['user-home', 'npm:2.0.0'], + ['os-homedir', 'npm:1.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'utf-8-validate', + [ + [ + 'npm:5.0.2', + { + packageLocation: + './.yarn/unplugged/utf-8-validate-npm-5.0.2-dd2e41562b/node_modules/utf-8-validate/', + packageDependencies: [ + ['utf-8-validate', 'npm:5.0.2'], + ['node-gyp', 'npm:7.0.0'], + ['node-gyp-build', 'npm:3.7.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'utf8-byte-length', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/utf8-byte-length-npm-1.0.4-cf13f06124-df2466d1c9.zip/node_modules/utf8-byte-length/', + packageDependencies: [['utf8-byte-length', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'util', + [ + [ + 'npm:0.10.3', + { + packageLocation: + './.yarn/cache/util-npm-0.10.3-f43de5ccbb-05c1a09f3a.zip/node_modules/util/', + packageDependencies: [ + ['util', 'npm:0.10.3'], + ['inherits', 'npm:2.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.10.4', + { + packageLocation: + './.yarn/cache/util-npm-0.10.4-7c577db41a-6682ea8239.zip/node_modules/util/', + packageDependencies: [ + ['util', 'npm:0.10.4'], + ['inherits', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.11.1', + { + packageLocation: + './.yarn/cache/util-npm-0.11.1-d2633dea18-f05afc3d9a.zip/node_modules/util/', + packageDependencies: [ + ['util', 'npm:0.11.1'], + ['inherits', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'util-deprecate', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-73c2b1cf02.zip/node_modules/util-deprecate/', + packageDependencies: [['util-deprecate', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'util.promisify', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/util.promisify-npm-1.0.1-5b881bb495-99e5b0a7a4.zip/node_modules/util.promisify/', + packageDependencies: [ + ['util.promisify', 'npm:1.0.1'], + ['define-properties', 'npm:1.1.3'], + ['es-abstract', 'npm:1.17.6'], + ['has-symbols', 'npm:1.0.1'], + ['object.getownpropertydescriptors', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'utils-merge', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/utils-merge-npm-1.0.1-363bbdfbca-a457956ebc.zip/node_modules/utils-merge/', + packageDependencies: [['utils-merge', 'npm:1.0.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'uuid', + [ + [ + 'npm:3.4.0', + { + packageLocation: + './.yarn/cache/uuid-npm-3.4.0-4fd8ef88ad-1ce3f37e21.zip/node_modules/uuid/', + packageDependencies: [['uuid', 'npm:3.4.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:8.3.0', + { + packageLocation: + './.yarn/cache/uuid-npm-8.3.0-2f98335399-a2bdb8a3eb.zip/node_modules/uuid/', + packageDependencies: [['uuid', 'npm:8.3.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:8.3.2', + { + packageLocation: + './.yarn/cache/uuid-npm-8.3.2-eca0baba53-aed2bcef34.zip/node_modules/uuid/', + packageDependencies: [['uuid', 'npm:8.3.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'v8-compile-cache', + [ + [ + 'npm:2.1.1', + { + packageLocation: + './.yarn/cache/v8-compile-cache-npm-2.1.1-efff1ef0a4-1290922fe1.zip/node_modules/v8-compile-cache/', + packageDependencies: [['v8-compile-cache', 'npm:2.1.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'v8-to-istanbul', + [ + [ + 'npm:4.1.4', + { + packageLocation: + './.yarn/cache/v8-to-istanbul-npm-4.1.4-7e15cda000-9d6c0cd729.zip/node_modules/v8-to-istanbul/', + packageDependencies: [ + ['v8-to-istanbul', 'npm:4.1.4'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['convert-source-map', 'npm:1.7.0'], + ['source-map', 'npm:0.7.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.1.0', + { + packageLocation: + './.yarn/cache/v8-to-istanbul-npm-7.1.0-4d4761f35a-decc2cc896.zip/node_modules/v8-to-istanbul/', + packageDependencies: [ + ['v8-to-istanbul', 'npm:7.1.0'], + ['@types/istanbul-lib-coverage', 'npm:2.0.3'], + ['convert-source-map', 'npm:1.7.0'], + ['source-map', 'npm:0.7.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'valid-url', + [ + [ + 'npm:1.0.9', + { + packageLocation: + './.yarn/cache/valid-url-npm-1.0.9-945a70ad40-988964543c.zip/node_modules/valid-url/', + packageDependencies: [['valid-url', 'npm:1.0.9']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'validate-npm-package-license', + [ + [ + 'npm:3.0.4', + { + packageLocation: + './.yarn/cache/validate-npm-package-license-npm-3.0.4-7af8adc7a8-940899bd4e.zip/node_modules/validate-npm-package-license/', + packageDependencies: [ + ['validate-npm-package-license', 'npm:3.0.4'], + ['spdx-correct', 'npm:3.1.1'], + ['spdx-expression-parse', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vary', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/vary-npm-1.1.2-b49f70ae63-591f059f72.zip/node_modules/vary/', + packageDependencies: [['vary', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vendors', + [ + [ + 'npm:1.0.4', + { + packageLocation: + './.yarn/cache/vendors-npm-1.0.4-d3a9d2c62c-f49cf918e8.zip/node_modules/vendors/', + packageDependencies: [['vendors', 'npm:1.0.4']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'verror', + [ + [ + 'npm:1.10.0', + { + packageLocation: + './.yarn/cache/verror-npm-1.10.0-c3f839c579-38ea80312c.zip/node_modules/verror/', + packageDependencies: [ + ['verror', 'npm:1.10.0'], + ['assert-plus', 'npm:1.0.0'], + ['core-util-is', 'npm:1.0.2'], + ['extsprintf', 'npm:1.3.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vfile', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/vfile-npm-2.3.0-0781febdcc-b59f2a73a6.zip/node_modules/vfile/', + packageDependencies: [ + ['vfile', 'npm:2.3.0'], + ['is-buffer', 'npm:1.1.6'], + ['replace-ext', 'npm:1.0.0'], + ['unist-util-stringify-position', 'npm:1.1.2'], + ['vfile-message', 'npm:1.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.1.1', + { + packageLocation: + './.yarn/cache/vfile-npm-4.1.1-e83f656288-3f84677ed6.zip/node_modules/vfile/', + packageDependencies: [ + ['vfile', 'npm:4.1.1'], + ['@types/unist', 'npm:2.0.3'], + ['is-buffer', 'npm:2.0.4'], + ['replace-ext', 'npm:1.0.0'], + ['unist-util-stringify-position', 'npm:2.0.3'], + ['vfile-message', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.2.0', + { + packageLocation: + './.yarn/cache/vfile-npm-4.2.0-c3dcb6dc90-281f8bca81.zip/node_modules/vfile/', + packageDependencies: [ + ['vfile', 'npm:4.2.0'], + ['@types/unist', 'npm:2.0.3'], + ['is-buffer', 'npm:2.0.4'], + ['replace-ext', 'npm:1.0.0'], + ['unist-util-stringify-position', 'npm:2.0.3'], + ['vfile-message', 'npm:2.0.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vfile-location', + [ + [ + 'npm:2.0.6', + { + packageLocation: + './.yarn/cache/vfile-location-npm-2.0.6-a098041eed-b050677560.zip/node_modules/vfile-location/', + packageDependencies: [['vfile-location', 'npm:2.0.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.2.0', + { + packageLocation: + './.yarn/cache/vfile-location-npm-3.2.0-cd97ee24d4-4102f03560.zip/node_modules/vfile-location/', + packageDependencies: [['vfile-location', 'npm:3.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vfile-message', + [ + [ + 'npm:1.1.1', + { + packageLocation: + './.yarn/cache/vfile-message-npm-1.1.1-6458d7e753-d6c086d7c1.zip/node_modules/vfile-message/', + packageDependencies: [ + ['vfile-message', 'npm:1.1.1'], + ['unist-util-stringify-position', 'npm:1.1.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.4', + { + packageLocation: + './.yarn/cache/vfile-message-npm-2.0.4-ca3f9b6719-a88f41883c.zip/node_modules/vfile-message/', + packageDependencies: [ + ['vfile-message', 'npm:2.0.4'], + ['@types/unist', 'npm:2.0.3'], + ['unist-util-stringify-position', 'npm:2.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vinyl', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/vinyl-npm-2.2.0-b81d0fc829-a8c27638aa.zip/node_modules/vinyl/', + packageDependencies: [ + ['vinyl', 'npm:2.2.0'], + ['clone', 'npm:2.1.2'], + ['clone-buffer', 'npm:1.0.0'], + ['clone-stats', 'npm:1.0.0'], + ['cloneable-readable', 'npm:1.1.3'], + ['remove-trailing-separator', 'npm:1.1.0'], + ['replace-ext', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vinyl-file', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/vinyl-file-npm-3.0.0-4d55e6cd5d-5f2daa7030.zip/node_modules/vinyl-file/', + packageDependencies: [ + ['vinyl-file', 'npm:3.0.0'], + ['graceful-fs', 'npm:4.2.4'], + ['pify', 'npm:2.3.0'], + ['strip-bom-buf', 'npm:1.0.0'], + ['strip-bom-stream', 'npm:2.0.0'], + ['vinyl', 'npm:2.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vm-browserify', + [ + [ + 'npm:1.1.2', + { + packageLocation: + './.yarn/cache/vm-browserify-npm-1.1.2-f96404b36f-fc571a62d2.zip/node_modules/vm-browserify/', + packageDependencies: [['vm-browserify', 'npm:1.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vscode-languageserver-types', + [ + [ + 'npm:3.15.1', + { + packageLocation: + './.yarn/cache/vscode-languageserver-types-npm-3.15.1-8e8f17df39-2c61a5a623.zip/node_modules/vscode-languageserver-types/', + packageDependencies: [ + ['vscode-languageserver-types', 'npm:3.15.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vscode-nls', + [ + [ + 'npm:4.1.2', + { + packageLocation: + './.yarn/cache/vscode-nls-npm-4.1.2-d4bedb2619-d71594bcc2.zip/node_modules/vscode-nls/', + packageDependencies: [['vscode-nls', 'npm:4.1.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'vue-template-compiler', + [ + [ + 'npm:2.6.12', + { + packageLocation: + './.yarn/cache/vue-template-compiler-npm-2.6.12-96e35645d0-5b05dda398.zip/node_modules/vue-template-compiler/', + packageDependencies: [ + ['vue-template-compiler', 'npm:2.6.12'], + ['de-indent', 'npm:1.0.2'], + ['he', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'w3c-hr-time', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/w3c-hr-time-npm-1.0.2-87f88e51d9-bb021b4c4b.zip/node_modules/w3c-hr-time/', + packageDependencies: [ + ['w3c-hr-time', 'npm:1.0.2'], + ['browser-process-hrtime', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'w3c-xmlserializer', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/w3c-xmlserializer-npm-2.0.0-f8f7bc8b42-2327c8a6c7.zip/node_modules/w3c-xmlserializer/', + packageDependencies: [ + ['w3c-xmlserializer', 'npm:2.0.0'], + ['xml-name-validator', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'walk', + [ + [ + 'npm:2.3.14', + { + packageLocation: + './.yarn/cache/walk-npm-2.3.14-7187bbff3a-54b61ebfac.zip/node_modules/walk/', + packageDependencies: [ + ['walk', 'npm:2.3.14'], + ['foreachasync', 'npm:3.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'walker', + [ + [ + 'npm:1.0.7', + { + packageLocation: + './.yarn/cache/walker-npm-1.0.7-a97443bd99-c014f264c4.zip/node_modules/walker/', + packageDependencies: [ + ['walker', 'npm:1.0.7'], + ['makeerror', 'npm:1.0.11'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'watchpack', + [ + [ + 'npm:1.7.4', + { + packageLocation: + './.yarn/cache/watchpack-npm-1.7.4-366024521f-61876d6e60.zip/node_modules/watchpack/', + packageDependencies: [ + ['watchpack', 'npm:1.7.4'], + ['chokidar', 'npm:3.4.1'], + ['graceful-fs', 'npm:4.2.4'], + ['neo-async', 'npm:2.6.1'], + ['watchpack-chokidar2', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.0-beta.13', + { + packageLocation: + './.yarn/cache/watchpack-npm-2.0.0-beta.13-39378309be-404d5c3c08.zip/node_modules/watchpack/', + packageDependencies: [ + ['watchpack', 'npm:2.0.0-beta.13'], + ['glob-to-regexp', 'npm:0.4.1'], + ['graceful-fs', 'npm:4.2.4'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'watchpack-chokidar2', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/watchpack-chokidar2-npm-2.0.0-22796f93dd-1ef78773db.zip/node_modules/watchpack-chokidar2/', + packageDependencies: [ + ['watchpack-chokidar2', 'npm:2.0.0'], + ['chokidar', 'npm:2.1.8'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'wcwidth', + [ + [ + 'npm:1.0.1', + { + packageLocation: + './.yarn/cache/wcwidth-npm-1.0.1-05fa596453-abf8ba432d.zip/node_modules/wcwidth/', + packageDependencies: [ + ['wcwidth', 'npm:1.0.1'], + ['defaults', 'npm:1.0.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'web-vitals', + [ + [ + 'npm:0.2.1', + { + packageLocation: + './.yarn/cache/web-vitals-npm-0.2.1-3fd7448b12-8a367efbfe.zip/node_modules/web-vitals/', + packageDependencies: [['web-vitals', 'npm:0.2.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'webfontloader', + [ + [ + 'npm:1.6.28', + { + packageLocation: + './.yarn/cache/webfontloader-npm-1.6.28-5e6803960c-fea984c451.zip/node_modules/webfontloader/', + packageDependencies: [['webfontloader', 'npm:1.6.28']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'webidl-conversions', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/webidl-conversions-npm-4.0.2-1d159e6409-75c2ada426.zip/node_modules/webidl-conversions/', + packageDependencies: [['webidl-conversions', 'npm:4.0.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.0', + { + packageLocation: + './.yarn/cache/webidl-conversions-npm-5.0.0-9649787484-af4e465fb3.zip/node_modules/webidl-conversions/', + packageDependencies: [['webidl-conversions', 'npm:5.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:6.1.0', + { + packageLocation: + './.yarn/cache/webidl-conversions-npm-6.1.0-0594fd577c-0ded175044.zip/node_modules/webidl-conversions/', + packageDependencies: [['webidl-conversions', 'npm:6.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'webpack', + [ + [ + 'npm:4.43.0', + { + packageLocation: + './.yarn/cache/webpack-npm-4.43.0-e073844e15-9f1e6375ba.zip/node_modules/webpack/', + packageDependencies: [ + ['webpack', 'npm:4.43.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-module-context', 'npm:1.9.0'], + ['@webassemblyjs/wasm-edit', 'npm:1.9.0'], + ['@webassemblyjs/wasm-parser', 'npm:1.9.0'], + ['acorn', 'npm:6.4.1'], + ['ajv', 'npm:6.12.3'], + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ['chrome-trace-event', 'npm:1.0.2'], + ['enhanced-resolve', 'npm:4.3.0'], + ['eslint-scope', 'npm:4.0.3'], + ['json-parse-better-errors', 'npm:1.0.2'], + ['loader-runner', 'npm:2.4.0'], + ['loader-utils', 'npm:1.2.3'], + ['memory-fs', 'npm:0.4.1'], + ['micromatch', 'npm:3.1.10'], + ['mkdirp', 'npm:0.5.5'], + ['neo-async', 'npm:2.6.1'], + ['node-libs-browser', 'npm:2.2.1'], + ['schema-utils', 'npm:1.0.0'], + ['tapable', 'npm:1.1.3'], + [ + 'terser-webpack-plugin', + 'virtual:e073844e153b92b319dc2d9b0f6ae20a05893b49f2b56ff72631b73967313ef744d0a2d62f52dda20ccf963d6092e0c06e90d20a3c0b6f831e756347e8a70b13#npm:1.4.4', + ], + ['watchpack', 'npm:1.7.4'], + ['webpack-sources', 'npm:1.4.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.44.0', + { + packageLocation: + './.yarn/cache/webpack-npm-4.44.0-3326bd82d7-5b3fe7a329.zip/node_modules/webpack/', + packageDependencies: [ + ['webpack', 'npm:4.44.0'], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-module-context', 'npm:1.9.0'], + ['@webassemblyjs/wasm-edit', 'npm:1.9.0'], + ['@webassemblyjs/wasm-parser', 'npm:1.9.0'], + ['acorn', 'npm:6.4.1'], + ['ajv', 'npm:6.12.3'], + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ['chrome-trace-event', 'npm:1.0.2'], + ['enhanced-resolve', 'npm:4.3.0'], + ['eslint-scope', 'npm:4.0.3'], + ['json-parse-better-errors', 'npm:1.0.2'], + ['loader-runner', 'npm:2.4.0'], + ['loader-utils', 'npm:1.2.3'], + ['memory-fs', 'npm:0.4.1'], + ['micromatch', 'npm:3.1.10'], + ['mkdirp', 'npm:0.5.5'], + ['neo-async', 'npm:2.6.1'], + ['node-libs-browser', 'npm:2.2.1'], + ['schema-utils', 'npm:1.0.0'], + ['tapable', 'npm:1.1.3'], + [ + 'terser-webpack-plugin', + 'virtual:3326bd82d722f425fcbbdc2c3c15cdbd2686d7ca5c17e17343d17579576b30619e272e5db31323698528f24803ac2c256fbb4b8caa0ea5ecd8016fdac7f3b3a8#npm:1.4.4', + ], + ['watchpack', 'npm:1.7.4'], + ['webpack-sources', 'npm:1.4.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:4.44.1', + { + packageLocation: + './.yarn/cache/webpack-npm-4.44.1-977bccfd33-d4d140010b.zip/node_modules/webpack/', + packageDependencies: [['webpack', 'npm:4.44.1']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + { + packageLocation: + './.yarn/$$virtual/webpack-virtual-d2c7511dff/0/cache/webpack-npm-4.44.1-977bccfd33-d4d140010b.zip/node_modules/webpack/', + packageDependencies: [ + [ + 'webpack', + 'virtual:077ed4b3e602c5859ab3e4cde2da5c143f85851cd900564b2a97de318f55ac3872a764680a137fa85cf1912ea5219d8d7d9e26745a509d4394462744659aae21#npm:4.44.1', + ], + ['@webassemblyjs/ast', 'npm:1.9.0'], + ['@webassemblyjs/helper-module-context', 'npm:1.9.0'], + ['@webassemblyjs/wasm-edit', 'npm:1.9.0'], + ['@webassemblyjs/wasm-parser', 'npm:1.9.0'], + ['acorn', 'npm:6.4.1'], + ['ajv', 'npm:6.12.3'], + [ + 'ajv-keywords', + 'virtual:31a26805d32f52be42b149b36a6d533e719287ea5eacf0daa2b211a73bf73a0a11b44f44ee3dcb518e7141d27368c97f86087586fd4c4f474011d66ec9e0aafc#npm:3.5.2', + ], + ['chrome-trace-event', 'npm:1.0.2'], + ['enhanced-resolve', 'npm:4.3.0'], + ['eslint-scope', 'npm:4.0.3'], + ['json-parse-better-errors', 'npm:1.0.2'], + ['loader-runner', 'npm:2.4.0'], + ['loader-utils', 'npm:1.2.3'], + ['memory-fs', 'npm:0.4.1'], + ['micromatch', 'npm:3.1.10'], + ['mkdirp', 'npm:0.5.5'], + ['neo-async', 'npm:2.6.1'], + ['node-libs-browser', 'npm:2.2.1'], + ['schema-utils', 'npm:1.0.0'], + ['tapable', 'npm:1.1.3'], + [ + 'terser-webpack-plugin', + 'virtual:d2c7511dff410609c253fbc4a1857c7c8a9f78f7d70ef742539e5f05378c4a183343c709d614406382293c1e630ad3d184fa5fd8ddfaae4802a489e4e6f50c62#npm:1.4.4', + ], + ['watchpack', 'npm:1.7.4'], + ['webpack-cli', null], + ['webpack-command', null], + ['webpack-sources', 'npm:1.4.3'], + ], + packagePeers: ['webpack-cli', 'webpack-command'], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'webpack-sources', + [ + [ + 'npm:1.4.3', + { + packageLocation: + './.yarn/cache/webpack-sources-npm-1.4.3-2b3a9b1de0-2a753b36ad.zip/node_modules/webpack-sources/', + packageDependencies: [ + ['webpack-sources', 'npm:1.4.3'], + ['source-list-map', 'npm:2.0.1'], + ['source-map', 'npm:0.6.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'websocket', + [ + [ + 'npm:1.0.32', + { + packageLocation: + './.yarn/cache/websocket-npm-1.0.32-3000831c48-9b74a8dbc4.zip/node_modules/websocket/', + packageDependencies: [ + ['websocket', 'npm:1.0.32'], + ['bufferutil', 'npm:4.0.1'], + [ + 'debug', + 'virtual:2bcc47d217f870e3d52f0e55493dc34fd3da852877f7db32fa2940cc320151746026495daf6a34a974488cf5a949d93be1e2dc1ffba036faf081a9b15fcd2252#npm:2.6.9', + ], + ['es5-ext', 'npm:0.10.53'], + ['typedarray-to-buffer', 'npm:3.1.5'], + ['utf-8-validate', 'npm:5.0.2'], + ['yaeti', 'npm:0.0.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'whatwg-encoding', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/whatwg-encoding-npm-1.0.5-85e0fb7d7d-44e4276ad2.zip/node_modules/whatwg-encoding/', + packageDependencies: [ + ['whatwg-encoding', 'npm:1.0.5'], + ['iconv-lite', 'npm:0.4.24'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'whatwg-fetch', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/whatwg-fetch-npm-3.0.0-89ab4ec112-56ffff2db0.zip/node_modules/whatwg-fetch/', + packageDependencies: [['whatwg-fetch', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'whatwg-mimetype', + [ + [ + 'npm:2.3.0', + { + packageLocation: + './.yarn/cache/whatwg-mimetype-npm-2.3.0-52eaa1d941-926e6ef8c7.zip/node_modules/whatwg-mimetype/', + packageDependencies: [['whatwg-mimetype', 'npm:2.3.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'whatwg-url', + [ + [ + 'npm:7.1.0', + { + packageLocation: + './.yarn/cache/whatwg-url-npm-7.1.0-d6cae01571-ccbf75d3df.zip/node_modules/whatwg-url/', + packageDependencies: [ + ['whatwg-url', 'npm:7.1.0'], + ['lodash.sortby', 'npm:4.7.0'], + ['tr46', 'npm:1.0.1'], + ['webidl-conversions', 'npm:4.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:8.1.0', + { + packageLocation: + './.yarn/cache/whatwg-url-npm-8.1.0-49b88f6bf9-1cc612b273.zip/node_modules/whatwg-url/', + packageDependencies: [ + ['whatwg-url', 'npm:8.1.0'], + ['lodash.sortby', 'npm:4.7.0'], + ['tr46', 'npm:2.0.2'], + ['webidl-conversions', 'npm:5.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'which', + [ + [ + 'npm:1.3.1', + { + packageLocation: + './.yarn/cache/which-npm-1.3.1-f0ebb8bdd8-298d95f9c1.zip/node_modules/which/', + packageDependencies: [ + ['which', 'npm:1.3.1'], + ['isexe', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/which-npm-2.0.2-320ddf72f7-ea9b1db126.zip/node_modules/which/', + packageDependencies: [ + ['which', 'npm:2.0.2'], + ['isexe', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'which-module', + [ + [ + 'npm:2.0.0', + { + packageLocation: + './.yarn/cache/which-module-npm-2.0.0-daf3daa08d-3d2107ab18.zip/node_modules/which-module/', + packageDependencies: [['which-module', 'npm:2.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'wide-align', + [ + [ + 'npm:1.1.3', + { + packageLocation: + './.yarn/cache/wide-align-npm-1.1.3-48c7d4953c-4f850f84da.zip/node_modules/wide-align/', + packageDependencies: [ + ['wide-align', 'npm:1.1.3'], + ['string-width', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'widest-line', + [ + [ + 'npm:2.0.1', + { + packageLocation: + './.yarn/cache/widest-line-npm-2.0.1-f40e0a0581-dd98e47483.zip/node_modules/widest-line/', + packageDependencies: [ + ['widest-line', 'npm:2.0.1'], + ['string-width', 'npm:2.1.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.0', + { + packageLocation: + './.yarn/cache/widest-line-npm-3.1.0-717bf2680b-729c30582e.zip/node_modules/widest-line/', + packageDependencies: [ + ['widest-line', 'npm:3.1.0'], + ['string-width', 'npm:4.2.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'windows-release', + [ + [ + 'npm:3.3.1', + { + packageLocation: + './.yarn/cache/windows-release-npm-3.3.1-97ef077d6d-209dd36f04.zip/node_modules/windows-release/', + packageDependencies: [ + ['windows-release', 'npm:3.3.1'], + ['execa', 'npm:1.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'with-open-file', + [ + [ + 'npm:0.1.7', + { + packageLocation: + './.yarn/cache/with-open-file-npm-0.1.7-ecade23e38-c345da692e.zip/node_modules/with-open-file/', + packageDependencies: [ + ['with-open-file', 'npm:0.1.7'], + ['p-finally', 'npm:1.0.0'], + ['p-try', 'npm:2.2.0'], + ['pify', 'npm:4.0.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'wonka', + [ + [ + 'npm:4.0.14', + { + packageLocation: + './.yarn/cache/wonka-npm-4.0.14-db89f53fa3-3240c932de.zip/node_modules/wonka/', + packageDependencies: [['wonka', 'npm:4.0.14']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'word-wrap', + [ + [ + 'npm:1.2.3', + { + packageLocation: + './.yarn/cache/word-wrap-npm-1.2.3-7fb15ab002-6526abd75d.zip/node_modules/word-wrap/', + packageDependencies: [['word-wrap', 'npm:1.2.3']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'wordwrap', + [ + [ + 'npm:1.0.0', + { + packageLocation: + './.yarn/cache/wordwrap-npm-1.0.0-ae57a645e8-b4f3f8104a.zip/node_modules/wordwrap/', + packageDependencies: [['wordwrap', 'npm:1.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'worker-farm', + [ + [ + 'npm:1.7.0', + { + packageLocation: + './.yarn/cache/worker-farm-npm-1.7.0-cfc50c2626-ef76a6892b.zip/node_modules/worker-farm/', + packageDependencies: [ + ['worker-farm', 'npm:1.7.0'], + ['errno', 'npm:0.1.7'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'worker-rpc', + [ + [ + 'npm:0.1.1', + { + packageLocation: + './.yarn/cache/worker-rpc-npm-0.1.1-001e38add3-f1ff1b619f.zip/node_modules/worker-rpc/', + packageDependencies: [ + ['worker-rpc', 'npm:0.1.1'], + ['microevent.ts', 'npm:0.1.1'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'workspace', + [ + [ + 'npm:0.0.1-preview.1', + { + packageLocation: + './.yarn/cache/workspace-npm-0.0.1-preview.1-37e8956085-9b1e5944c5.zip/node_modules/workspace/', + packageDependencies: [['workspace', 'npm:0.0.1-preview.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'wrap-ansi', + [ + [ + 'npm:2.1.0', + { + packageLocation: + './.yarn/cache/wrap-ansi-npm-2.1.0-1fd9d50973-d1846c0664.zip/node_modules/wrap-ansi/', + packageDependencies: [ + ['wrap-ansi', 'npm:2.1.0'], + ['string-width', 'npm:1.0.2'], + ['strip-ansi', 'npm:3.0.1'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.1', + { + packageLocation: + './.yarn/cache/wrap-ansi-npm-3.0.1-876d294274-a5425ff35d.zip/node_modules/wrap-ansi/', + packageDependencies: [ + ['wrap-ansi', 'npm:3.0.1'], + ['string-width', 'npm:2.1.1'], + ['strip-ansi', 'npm:4.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:6.2.0', + { + packageLocation: + './.yarn/cache/wrap-ansi-npm-6.2.0-439a7246d8-ee4ed8b299.zip/node_modules/wrap-ansi/', + packageDependencies: [ + ['wrap-ansi', 'npm:6.2.0'], + ['ansi-styles', 'npm:4.2.1'], + ['string-width', 'npm:4.2.0'], + ['strip-ansi', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:7.0.0', + { + packageLocation: + './.yarn/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-09939dd775.zip/node_modules/wrap-ansi/', + packageDependencies: [ + ['wrap-ansi', 'npm:7.0.0'], + ['ansi-styles', 'npm:4.2.1'], + ['string-width', 'npm:4.2.0'], + ['strip-ansi', 'npm:6.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'wrappy', + [ + [ + 'npm:1.0.2', + { + packageLocation: + './.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-519fcda0fc.zip/node_modules/wrappy/', + packageDependencies: [['wrappy', 'npm:1.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'write', + [ + [ + 'npm:1.0.3', + { + packageLocation: + './.yarn/cache/write-npm-1.0.3-1bac756049-e8f8fddefe.zip/node_modules/write/', + packageDependencies: [ + ['write', 'npm:1.0.3'], + ['mkdirp', 'npm:0.5.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'write-file-atomic', + [ + [ + 'npm:2.4.3', + { + packageLocation: + './.yarn/cache/write-file-atomic-npm-2.4.3-f3fc725df3-ef7113c80f.zip/node_modules/write-file-atomic/', + packageDependencies: [ + ['write-file-atomic', 'npm:2.4.3'], + ['graceful-fs', 'npm:4.2.4'], + ['imurmurhash', 'npm:0.1.4'], + ['signal-exit', 'npm:3.0.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:3.0.3', + { + packageLocation: + './.yarn/cache/write-file-atomic-npm-3.0.3-d948a237da-a26a8699c3.zip/node_modules/write-file-atomic/', + packageDependencies: [ + ['write-file-atomic', 'npm:3.0.3'], + ['imurmurhash', 'npm:0.1.4'], + ['is-typedarray', 'npm:1.0.0'], + ['signal-exit', 'npm:3.0.3'], + ['typedarray-to-buffer', 'npm:3.1.5'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'ws', + [ + [ + 'npm:5.2.2', + { + packageLocation: + './.yarn/cache/ws-npm-5.2.2-173bcd57b2-c8217b5482.zip/node_modules/ws/', + packageDependencies: [['ws', 'npm:5.2.2']], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.3.1', + { + packageLocation: + './.yarn/cache/ws-npm-7.3.1-0fa30fe373-9302f1f665.zip/node_modules/ws/', + packageDependencies: [['ws', 'npm:7.3.1']], + linkType: 'SOFT', + }, + ], + [ + 'npm:7.4.4', + { + packageLocation: + './.yarn/cache/ws-npm-7.4.4-745c19daca-ad08761ed7.zip/node_modules/ws/', + packageDependencies: [['ws', 'npm:7.4.4']], + linkType: 'SOFT', + }, + ], + [ + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1', + { + packageLocation: + './.yarn/$$virtual/ws-virtual-560df13b99/0/cache/ws-npm-7.3.1-0fa30fe373-9302f1f665.zip/node_modules/ws/', + packageDependencies: [ + [ + 'ws', + 'virtual:011ff9495da039ed8bc5c08f6192fd52735a209184ec4f3f32093e7d589abb4feac412e88d55fe50ff1f9dc1112eb71484f3c14102803dfd018bd7f34ade9ccd#npm:7.3.1', + ], + ['@types/bufferutil', null], + ['@types/utf-8-validate', null], + ['bufferutil', null], + ['utf-8-validate', null], + ], + packagePeers: [ + '@types/bufferutil', + '@types/utf-8-validate', + 'bufferutil', + 'utf-8-validate', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2', + { + packageLocation: + './.yarn/$$virtual/ws-virtual-cea9840d71/0/cache/ws-npm-5.2.2-173bcd57b2-c8217b5482.zip/node_modules/ws/', + packageDependencies: [ + [ + 'ws', + 'virtual:5fc5dbb3ca6d300a5ae2a915396c56b8624a944738418f71a23bd76973ab106e93015bc1eb6d018e406b90e21226396ef1dd3e45c5742bc0513d3ee1037e8b9f#npm:5.2.2', + ], + ['@types/bufferutil', null], + ['@types/utf-8-validate', null], + ['async-limiter', 'npm:1.0.1'], + ['bufferutil', null], + ['utf-8-validate', null], + ], + packagePeers: [ + '@types/bufferutil', + '@types/utf-8-validate', + 'bufferutil', + 'utf-8-validate', + ], + linkType: 'HARD', + }, + ], + [ + 'virtual:6a57145ae363bb2f8a80076838317f779b911b58a6fdc784436689f4fc9a322b39f6f7e8a3aef742ffc5f8f7155890a4bb43ad7ac6c86073071726501001d707#npm:7.4.4', + { + packageLocation: + './.yarn/$$virtual/ws-virtual-2dfefcc344/0/cache/ws-npm-7.4.4-745c19daca-ad08761ed7.zip/node_modules/ws/', + packageDependencies: [ + [ + 'ws', + 'virtual:6a57145ae363bb2f8a80076838317f779b911b58a6fdc784436689f4fc9a322b39f6f7e8a3aef742ffc5f8f7155890a4bb43ad7ac6c86073071726501001d707#npm:7.4.4', + ], + ['@types/bufferutil', null], + ['@types/utf-8-validate', null], + ['bufferutil', null], + ['utf-8-validate', null], + ], + packagePeers: [ + '@types/bufferutil', + '@types/utf-8-validate', + 'bufferutil', + 'utf-8-validate', + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'x-is-string', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/x-is-string-npm-0.1.0-a254bc0c3e-a0e9f54303.zip/node_modules/x-is-string/', + packageDependencies: [['x-is-string', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'xdg-basedir', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/xdg-basedir-npm-3.0.0-7eb0a8ccde-87d2160cc1.zip/node_modules/xdg-basedir/', + packageDependencies: [['xdg-basedir', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/xdg-basedir-npm-4.0.0-ed08d380e2-928953cb7d.zip/node_modules/xdg-basedir/', + packageDependencies: [['xdg-basedir', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'xml-name-validator', + [ + [ + 'npm:3.0.0', + { + packageLocation: + './.yarn/cache/xml-name-validator-npm-3.0.0-10e74a38ea-b96679a42e.zip/node_modules/xml-name-validator/', + packageDependencies: [['xml-name-validator', 'npm:3.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'xmlchars', + [ + [ + 'npm:2.2.0', + { + packageLocation: + './.yarn/cache/xmlchars-npm-2.2.0-8b78f0f5e4-69bbb61e8d.zip/node_modules/xmlchars/', + packageDependencies: [['xmlchars', 'npm:2.2.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'xstate', + [ + [ + 'npm:4.13.0', + { + packageLocation: + './.yarn/cache/xstate-npm-4.13.0-1976c7ed31-fd79c89c5e.zip/node_modules/xstate/', + packageDependencies: [['xstate', 'npm:4.13.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.15.1', + { + packageLocation: + './.yarn/cache/xstate-npm-4.15.1-cac0ba4821-24def9ddb0.zip/node_modules/xstate/', + packageDependencies: [['xstate', 'npm:4.15.1']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'xtend', + [ + [ + 'npm:4.0.2', + { + packageLocation: + './.yarn/cache/xtend-npm-4.0.2-7f2375736e-37ee522a3e.zip/node_modules/xtend/', + packageDependencies: [['xtend', 'npm:4.0.2']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'y18n', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/y18n-npm-4.0.0-55cd797cc5-5b7434c95d.zip/node_modules/y18n/', + packageDependencies: [['y18n', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + [ + 'npm:5.0.5', + { + packageLocation: + './.yarn/cache/y18n-npm-5.0.5-1fa41a2023-a7d41b0ccc.zip/node_modules/y18n/', + packageDependencies: [['y18n', 'npm:5.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yaeti', + [ + [ + 'npm:0.0.6', + { + packageLocation: + './.yarn/cache/yaeti-npm-0.0.6-cffd01e35a-fa9beece5a.zip/node_modules/yaeti/', + packageDependencies: [['yaeti', 'npm:0.0.6']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yallist', + [ + [ + 'npm:2.1.2', + { + packageLocation: + './.yarn/cache/yallist-npm-2.1.2-2e38c366a3-f83e3d18ee.zip/node_modules/yallist/', + packageDependencies: [['yallist', 'npm:2.1.2']], + linkType: 'HARD', + }, + ], + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/cache/yallist-npm-3.1.1-a568a556b4-f352c93b92.zip/node_modules/yallist/', + packageDependencies: [['yallist', 'npm:3.1.1']], + linkType: 'HARD', + }, + ], + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/yallist-npm-4.0.0-b493d9e907-a2960ef879.zip/node_modules/yallist/', + packageDependencies: [['yallist', 'npm:4.0.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yaml', + [ + [ + 'npm:1.10.0', + { + packageLocation: + './.yarn/cache/yaml-npm-1.10.0-3e2d763b45-d4cc9f9724.zip/node_modules/yaml/', + packageDependencies: [['yaml', 'npm:1.10.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yargs', + [ + [ + 'npm:15.4.1', + { + packageLocation: + './.yarn/cache/yargs-npm-15.4.1-ca1c444de1-dbf687d6b9.zip/node_modules/yargs/', + packageDependencies: [ + ['yargs', 'npm:15.4.1'], + ['cliui', 'npm:6.0.0'], + ['decamelize', 'npm:1.2.0'], + ['find-up', 'npm:4.1.0'], + ['get-caller-file', 'npm:2.0.5'], + ['require-directory', 'npm:2.1.1'], + ['require-main-filename', 'npm:2.0.0'], + ['set-blocking', 'npm:2.0.0'], + ['string-width', 'npm:4.2.0'], + ['which-module', 'npm:2.0.0'], + ['y18n', 'npm:4.0.0'], + ['yargs-parser', 'npm:18.1.3'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:16.2.0', + { + packageLocation: + './.yarn/cache/yargs-npm-16.2.0-547873d425-a79ce1f043.zip/node_modules/yargs/', + packageDependencies: [ + ['yargs', 'npm:16.2.0'], + ['cliui', 'npm:7.0.4'], + ['escalade', 'npm:3.1.1'], + ['get-caller-file', 'npm:2.0.5'], + ['require-directory', 'npm:2.1.1'], + ['string-width', 'npm:4.2.0'], + ['y18n', 'npm:5.0.5'], + ['yargs-parser', 'npm:20.2.6'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yargs-parser', + [ + [ + 'npm:18.1.3', + { + packageLocation: + './.yarn/cache/yargs-parser-npm-18.1.3-0ba9c4f088-3387172167.zip/node_modules/yargs-parser/', + packageDependencies: [ + ['yargs-parser', 'npm:18.1.3'], + ['camelcase', 'npm:5.3.1'], + ['decamelize', 'npm:1.2.0'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:20.2.6', + { + packageLocation: + './.yarn/cache/yargs-parser-npm-20.2.6-909e598ff6-ed21fc0f35.zip/node_modules/yargs-parser/', + packageDependencies: [['yargs-parser', 'npm:20.2.6']], + linkType: 'HARD', + }, + ], + [ + 'npm:20.2.7', + { + packageLocation: + './.yarn/cache/yargs-parser-npm-20.2.7-5ab0b83136-124e7f1c24.zip/node_modules/yargs-parser/', + packageDependencies: [['yargs-parser', 'npm:20.2.7']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yeoman-character', + [ + [ + 'npm:1.1.0', + { + packageLocation: + './.yarn/cache/yeoman-character-npm-1.1.0-2e2b290d53-7d9b99645a.zip/node_modules/yeoman-character/', + packageDependencies: [ + ['yeoman-character', 'npm:1.1.0'], + ['supports-color', 'npm:3.2.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yeoman-doctor', + [ + [ + 'npm:4.0.0', + { + packageLocation: + './.yarn/cache/yeoman-doctor-npm-4.0.0-cc4fd993c1-258510c71f.zip/node_modules/yeoman-doctor/', + packageDependencies: [ + ['yeoman-doctor', 'npm:4.0.0'], + ['ansi-styles', 'npm:3.2.1'], + ['bin-version-check', 'npm:3.0.0'], + ['chalk', 'npm:2.4.2'], + ['global-agent', 'npm:2.1.12'], + ['global-tunnel-ng', 'npm:2.7.1'], + ['latest-version', 'npm:3.1.0'], + ['log-symbols', 'npm:2.2.0'], + ['semver', 'npm:5.7.1'], + ['twig', 'npm:1.15.1'], + ['user-home', 'npm:2.0.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yeoman-environment', + [ + [ + 'npm:2.10.3', + { + packageLocation: + './.yarn/cache/yeoman-environment-npm-2.10.3-93bca3350a-d5b28f6e7f.zip/node_modules/yeoman-environment/', + packageDependencies: [ + ['yeoman-environment', 'npm:2.10.3'], + ['chalk', 'npm:2.4.2'], + [ + 'debug', + 'virtual:8bb97bed484f021974a05538f31c077871d2363ce26ebed59b11577446762350604c9011c0660ae55b141dd86d888615a377ccccd7a87c5e54ae38233a22d5a9#npm:3.2.6', + ], + ['diff', 'npm:3.5.0'], + ['escape-string-regexp', 'npm:1.0.5'], + ['execa', 'npm:4.0.3'], + ['globby', 'npm:8.0.2'], + ['grouped-queue', 'npm:1.1.0'], + ['inquirer', 'npm:7.3.3'], + ['is-scoped', 'npm:1.0.0'], + ['lodash', 'npm:4.17.19'], + ['log-symbols', 'npm:2.2.0'], + ['mem-fs', 'npm:1.2.0'], + ['mem-fs-editor', 'npm:6.0.0'], + ['npm-api', 'npm:1.0.0'], + ['semver', 'npm:7.3.2'], + ['strip-ansi', 'npm:4.0.0'], + ['text-table', 'npm:0.2.0'], + ['untildify', 'npm:3.0.3'], + ['yeoman-generator', 'npm:4.11.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yeoman-generator', + [ + [ + 'npm:4.11.0', + { + packageLocation: + './.yarn/cache/yeoman-generator-npm-4.11.0-b86fb248d8-121d5f12df.zip/node_modules/yeoman-generator/', + packageDependencies: [ + ['yeoman-generator', 'npm:4.11.0'], + ['async', 'npm:2.6.3'], + ['chalk', 'npm:2.4.2'], + ['cli-table', 'npm:0.3.1'], + ['cross-spawn', 'npm:6.0.5'], + ['dargs', 'npm:6.1.0'], + ['dateformat', 'npm:3.0.3'], + [ + 'debug', + 'virtual:27690e4121be41f57b977a82de27e88841c7d71310e2598a86e8acde7a476277b0c1cf1ac2f8f919102f83918c4375e16d7bdd4c0d11e89212599db35e092b20#npm:4.2.0', + ], + ['diff', 'npm:4.0.2'], + ['error', 'npm:7.2.1'], + ['find-up', 'npm:3.0.0'], + ['github-username', 'npm:3.0.0'], + ['grouped-queue', 'npm:1.1.0'], + ['istextorbinary', 'npm:2.6.0'], + ['lodash', 'npm:4.17.19'], + ['make-dir', 'npm:3.1.0'], + ['mem-fs-editor', 'npm:7.0.1'], + ['minimist', 'npm:1.2.5'], + ['pretty-bytes', 'npm:5.3.0'], + ['read-chunk', 'npm:3.2.0'], + ['read-pkg-up', 'npm:5.0.0'], + ['rimraf', 'npm:2.7.1'], + ['run-async', 'npm:2.4.1'], + ['semver', 'npm:7.3.2'], + ['shelljs', 'npm:0.8.4'], + ['text-table', 'npm:0.2.0'], + ['through2', 'npm:3.0.2'], + ['yeoman-environment', 'npm:2.10.3'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yo', + [ + [ + 'npm:3.1.1', + { + packageLocation: + './.yarn/unplugged/yo-npm-3.1.1-2859fd2fb9/node_modules/yo/', + packageDependencies: [ + ['yo', 'npm:3.1.1'], + ['async', 'npm:2.6.3'], + ['chalk', 'npm:2.4.2'], + ['cli-list', 'npm:0.2.0'], + ['configstore', 'npm:3.1.2'], + ['cross-spawn', 'npm:6.0.5'], + ['figures', 'npm:2.0.0'], + ['fullname', 'npm:4.0.1'], + ['global-agent', 'npm:2.1.12'], + ['global-tunnel-ng', 'npm:2.7.1'], + ['got', 'npm:8.3.2'], + ['humanize-string', 'npm:1.0.2'], + ['inquirer', 'npm:6.5.2'], + ['insight', 'npm:0.10.3'], + ['lodash', 'npm:4.17.19'], + ['meow', 'npm:3.7.0'], + ['npm-keyword', 'npm:5.0.0'], + ['open', 'npm:6.4.0'], + ['package-json', 'npm:5.0.0'], + ['parse-help', 'npm:1.0.0'], + ['read-pkg-up', 'npm:4.0.0'], + ['root-check', 'npm:1.0.0'], + ['sort-on', 'npm:3.0.0'], + ['string-length', 'npm:2.0.0'], + ['tabtab', 'npm:1.3.2'], + ['titleize', 'npm:1.0.1'], + ['update-notifier', 'npm:2.5.0'], + ['user-home', 'npm:2.0.0'], + ['yeoman-character', 'npm:1.1.0'], + ['yeoman-doctor', 'npm:4.0.0'], + ['yeoman-environment', 'npm:2.10.3'], + ['yosay', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yocto-queue', + [ + [ + 'npm:0.1.0', + { + packageLocation: + './.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-096c3b40be.zip/node_modules/yocto-queue/', + packageDependencies: [['yocto-queue', 'npm:0.1.0']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yosay', + [ + [ + 'npm:2.0.2', + { + packageLocation: + './.yarn/cache/yosay-npm-2.0.2-50f629c5fa-cd6265bca7.zip/node_modules/yosay/', + packageDependencies: [ + ['yosay', 'npm:2.0.2'], + ['ansi-regex', 'npm:2.1.1'], + ['ansi-styles', 'npm:3.2.1'], + ['chalk', 'npm:1.1.3'], + ['cli-boxes', 'npm:1.0.0'], + ['pad-component', 'npm:0.0.1'], + ['string-width', 'npm:2.1.1'], + ['strip-ansi', 'npm:3.0.1'], + ['taketalk', 'npm:1.0.0'], + ['wrap-ansi', 'npm:2.1.0'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'yup', + [ + [ + 'npm:0.28.5', + { + packageLocation: + './.yarn/cache/yup-npm-0.28.5-b00f28bc9d-c5801c5832.zip/node_modules/yup/', + packageDependencies: [ + ['yup', 'npm:0.28.5'], + ['@babel/runtime', 'npm:7.10.5'], + ['fn-name', 'npm:3.0.0'], + ['lodash', 'npm:4.17.19'], + ['lodash-es', 'npm:4.17.15'], + ['property-expr', 'npm:2.0.2'], + ['synchronous-promise', 'npm:2.0.13'], + ['toposort', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.29.3', + { + packageLocation: + './.yarn/cache/yup-npm-0.29.3-8eaf762de3-bc07ab697d.zip/node_modules/yup/', + packageDependencies: [ + ['yup', 'npm:0.29.3'], + ['@babel/runtime', 'npm:7.10.5'], + ['fn-name', 'npm:3.0.0'], + ['lodash', 'npm:4.17.19'], + ['lodash-es', 'npm:4.17.15'], + ['property-expr', 'npm:2.0.2'], + ['synchronous-promise', 'npm:2.0.15'], + ['toposort', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.32.0', + { + packageLocation: + './.yarn/cache/yup-npm-0.32.0-178e3a2df5-4413b86616.zip/node_modules/yup/', + packageDependencies: [ + ['yup', 'npm:0.32.0'], + ['@babel/runtime', 'npm:7.10.5'], + ['@types/lodash', 'npm:4.14.165'], + ['lodash', 'npm:4.17.20'], + ['lodash-es', 'npm:4.17.15'], + ['nanoclone', 'npm:0.2.1'], + ['property-expr', 'npm:2.0.4'], + ['toposort', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + [ + 'npm:0.32.9', + { + packageLocation: + './.yarn/cache/yup-npm-0.32.9-d884fe5f43-9da93a58fd.zip/node_modules/yup/', + packageDependencies: [ + ['yup', 'npm:0.32.9'], + ['@babel/runtime', 'npm:7.10.5'], + ['@types/lodash', 'npm:4.14.165'], + ['lodash', 'npm:4.17.20'], + ['lodash-es', 'npm:4.17.21'], + ['nanoclone', 'npm:0.2.1'], + ['property-expr', 'npm:2.0.4'], + ['toposort', 'npm:2.0.2'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'zen-observable', + [ + [ + 'npm:0.8.15', + { + packageLocation: + './.yarn/cache/zen-observable-npm-0.8.15-3bec99c19c-7d155f8a75.zip/node_modules/zen-observable/', + packageDependencies: [['zen-observable', 'npm:0.8.15']], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'zen-observable-ts', + [ + [ + 'npm:0.8.21', + { + packageLocation: + './.yarn/cache/zen-observable-ts-npm-0.8.21-9c85e9f655-031ac9c244.zip/node_modules/zen-observable-ts/', + packageDependencies: [ + ['zen-observable-ts', 'npm:0.8.21'], + ['tslib', 'npm:1.13.0'], + ['zen-observable', 'npm:0.8.15'], + ], + linkType: 'HARD', + }, + ], + ], + ], + [ + 'zwitch', + [ + [ + 'npm:1.0.5', + { + packageLocation: + './.yarn/cache/zwitch-npm-1.0.5-5911cef6ce-5005166809.zip/node_modules/zwitch/', + packageDependencies: [['zwitch', 'npm:1.0.5']], + linkType: 'HARD', + }, + ], + ], + ], + ], + }, + { basePath: basePath || __dirname } + ) } -async function copyImpl(prelayout, postlayout, updateTime, destinationFs, destination, sourceFs, source, opts) { - var _a, _b; - - const destinationStat = await maybeLStat(destinationFs, destination); - const sourceStat = await sourceFs.lstatPromise(source); - const referenceTime = opts.stableTime ? { - mtime: defaultTime, - atime: defaultTime - } : sourceStat; - let updated; - - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - - default: - { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - break; - } - - if (updated || ((_a = destinationStat === null || destinationStat === void 0 ? void 0 : destinationStat.mtime) === null || _a === void 0 ? void 0 : _a.getTime()) !== referenceTime.mtime.getTime() || ((_b = destinationStat === null || destinationStat === void 0 ? void 0 : destinationStat.atime) === null || _b === void 0 ? void 0 : _b.getTime()) !== referenceTime.atime.getTime()) { - postlayout.push(() => updateTime(destination, referenceTime.atime, referenceTime.mtime)); - updated = true; - } - - if (destinationStat === null || (destinationStat.mode & 0o777) !== (sourceStat.mode & 0o777)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 0o777)); - updated = true; - } - - return updated; -} +;(function webpackUniversalModuleDefinition(root, factory) { + if (typeof exports === 'object' && typeof module === 'object') + module.exports = factory() + else if (typeof define === 'function' && define.amd) define([], factory) + else if (typeof exports === 'object') exports['pnpHook'] = factory() + else root['pnpHook'] = factory() +})(global, function () { + return /******/ (() => { + // webpackBootstrap + /******/ var __webpack_modules__ = { + /***/ 936: /***/ ( + __unused_webpack_module, + __webpack_exports__, + __webpack_require__ + ) => { + 'use strict' + + // EXPORTS + __webpack_require__.d(__webpack_exports__, { + default: () => /* binding */ _entryPoint, + }) + + // EXTERNAL MODULE: external "fs" + var external_fs_ = __webpack_require__(747) + var external_fs_default = + /*#__PURE__*/ __webpack_require__.n(external_fs_) + + // CONCATENATED MODULE: external "os" + const external_os_namespaceObject = require('os') + var external_os_default = /*#__PURE__*/ __webpack_require__.n( + external_os_namespaceObject + ) -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch (e) { - return null; - } -} + // EXTERNAL MODULE: external "path" + var external_path_ = __webpack_require__(622) + var external_path_default = + /*#__PURE__*/ __webpack_require__.n(external_path_) -async function copyFolder(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null && !destinationStat.isDirectory()) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/path.ts - let updated = false; + var PathType + ;(function (PathType) { + PathType[(PathType['File'] = 0)] = 'File' + PathType[(PathType['Portable'] = 1)] = 'Portable' + PathType[(PathType['Native'] = 2)] = 'Native' + })(PathType || (PathType = {})) - if (destinationStat === null) { - prelayout.push(async () => destinationFs.mkdirPromise(destination, { - mode: sourceStat.mode - })); - updated = true; - } + const PortablePath = { + root: `/`, + dot: `.`, + } + const Filename = { + nodeModules: `node_modules`, + manifest: `package.json`, + lockfile: `yarn.lock`, + pnpJs: `.pnp.js`, + rc: `.yarnrc.yml`, + } + const npath = Object.create(external_path_default()) + const ppath = Object.create(external_path_default().posix) - const entries = await sourceFs.readdirPromise(source); + npath.cwd = () => process.cwd() - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, updateTime, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), opts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async entry => { - await copyImpl(prelayout, postlayout, updateTime, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), opts); - })); + ppath.cwd = () => toPortablePath(process.cwd()) - if (entriesUpdateStatus.some(status => status)) { - updated = true; - } - } + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return external_path_default().posix.resolve(...segments) + } else { + return external_path_default().posix.resolve( + ppath.cwd(), + ...segments + ) + } + } - return updated; -} + const contains = function (pathUtils, from, to) { + from = pathUtils.normalize(from) + to = pathUtils.normalize(to) + if (from === to) return `.` + if (!from.endsWith(pathUtils.sep)) from = from + pathUtils.sep -async function copyFile(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } + if (to.startsWith(from)) { + return to.slice(from.length) + } else { + return null + } + } - const op = destinationFs === sourceFs ? async () => destinationFs.copyFilePromise(source, destination, (external_fs_default()).constants.COPYFILE_FICLONE) : async () => destinationFs.writeFilePromise(destination, await sourceFs.readFilePromise(source)); - prelayout.push(async () => op()); - return true; -} + npath.fromPortablePath = fromPortablePath + npath.toPortablePath = toPortablePath + + npath.contains = (from, to) => contains(npath, from, to) + + ppath.contains = (from, to) => contains(ppath, from, to) + + const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/ + const UNC_WINDOWS_PATH_REGEXP = /^\\\\(\.\\)?(.*)$/ + const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/ + const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/ // Path should look like "/N:/berry/scripts/plugin-pack.js" + // And transform to "N:\berry\scripts\plugin-pack.js" + + function fromPortablePath(p) { + if (process.platform !== `win32`) return p + if (p.match(PORTABLE_PATH_REGEXP)) + p = p.replace(PORTABLE_PATH_REGEXP, `$1`) + else if (p.match(UNC_PORTABLE_PATH_REGEXP)) + p = p.replace( + UNC_PORTABLE_PATH_REGEXP, + (match, p1, p2) => `\\\\${p1 ? `.\\` : ``}${p2}` + ) + else return p + return p.replace(/\//g, `\\`) + } // Path should look like "N:/berry/scripts/plugin-pack.js" + // And transform to "/N:/berry/scripts/plugin-pack.js" + + function toPortablePath(p) { + if (process.platform !== `win32`) return p + if (p.match(WINDOWS_PATH_REGEXP)) + p = p.replace(WINDOWS_PATH_REGEXP, `/$1`) + else if (p.match(UNC_WINDOWS_PATH_REGEXP)) + p = p.replace( + UNC_WINDOWS_PATH_REGEXP, + (match, p1, p2) => `/unc/${p1 ? `.dot/` : ``}${p2}` + ) + return p.replace(/\\/g, `/`) + } -async function copySymlink(prelayout, postlayout, updateTime, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } + function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath + ? fromPortablePath(sourcePath) + : toPortablePath(sourcePath) + } + function toFilename(filename) { + if ( + npath.parse(filename).dir !== `` || + ppath.parse(filename).dir !== `` + ) + throw new Error(`Invalid filename: "${filename}"`) + return filename + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/copyPromise.ts - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/FakeFS.ts + // 1980-01-01, like Fedora + const defaultTime = new Date(315532800 * 1000) + async function copyPromise( + destinationFs, + destination, + sourceFs, + source, + opts + ) { + const normalizedDestination = + destinationFs.pathUtils.normalize(destination) + const normalizedSource = sourceFs.pathUtils.normalize(source) + const prelayout = [] + const postlayout = [] + await destinationFs.mkdirPromise( + destinationFs.pathUtils.dirname(destination), + { + recursive: true, + } + ) + const updateTime = + typeof destinationFs.lutimesPromise === `function` + ? destinationFs.lutimesPromise.bind(destinationFs) + : destinationFs.utimesPromise.bind(destinationFs) + await copyImpl( + prelayout, + postlayout, + updateTime, + destinationFs, + normalizedDestination, + sourceFs, + normalizedSource, + opts + ) + + for (const operation of prelayout) await operation() + + await Promise.all( + postlayout.map((operation) => { + return operation() + }) + ) + } + async function copyImpl( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + sourceFs, + source, + opts + ) { + var _a, _b + + const destinationStat = await maybeLStat(destinationFs, destination) + const sourceStat = await sourceFs.lstatPromise(source) + const referenceTime = opts.stableTime + ? { + mtime: defaultTime, + atime: defaultTime, + } + : sourceStat + let updated + + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + destinationStat, + sourceFs, + source, + sourceStat, + opts + ) + } + break + + case sourceStat.isFile(): + { + updated = await copyFile( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + destinationStat, + sourceFs, + source, + sourceStat, + opts + ) + } + break + + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + destinationStat, + sourceFs, + source, + sourceStat, + opts + ) + } + break -class FakeFS { - constructor(pathUtils) { - this.pathUtils = pathUtils; - } + default: + { + throw new Error(`Unsupported file type (${sourceStat.mode})`) + } + break + } - async *genTraversePromise(init, { - stableSort = false - } = {}) { - const stack = [init]; + if ( + updated || + ((_a = + destinationStat === null || destinationStat === void 0 + ? void 0 + : destinationStat.mtime) === null || _a === void 0 + ? void 0 + : _a.getTime()) !== referenceTime.mtime.getTime() || + ((_b = + destinationStat === null || destinationStat === void 0 + ? void 0 + : destinationStat.atime) === null || _b === void 0 + ? void 0 + : _b.getTime()) !== referenceTime.atime.getTime() + ) { + postlayout.push(() => + updateTime(destination, referenceTime.atime, referenceTime.mtime) + ) + updated = true + } - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); + if ( + destinationStat === null || + (destinationStat.mode & 0o777) !== (sourceStat.mode & 0o777) + ) { + postlayout.push(() => + destinationFs.chmodPromise(destination, sourceStat.mode & 0o777) + ) + updated = true + } - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); + return updated + } - if (stableSort) { - for (const entry of entries.sort()) { - stack.push(this.pathUtils.join(p, entry)); + async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p) + } catch (e) { + return null } - } else { - throw new Error(`Not supported`); } - } else { - yield p; - } - } - } - - async removePromise(p, { - recursive = true, - maxRetries = 5 - } = {}) { - let stat; - - try { - stat = await this.lstatPromise(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - - if (stat.isDirectory()) { - if (recursive) for (const entry of await this.readdirPromise(p)) await this.removePromise(this.pathUtils.resolve(p, entry)); // 5 gives 1s worth of retries at worst - let t = 0; - - do { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code === `EBUSY` || error.code === `ENOTEMPTY`) { - if (maxRetries === 0) { - break; + async function copyFolder( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + destinationStat, + sourceFs, + source, + sourceStat, + opts + ) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => + destinationFs.removePromise(destination) + ) + destinationStat = null } else { - await new Promise(resolve => setTimeout(resolve, t * 100)); - continue; + return false } - } else { - throw error; } - } - } while (t++ < maxRetries); - } else { - await this.unlinkPromise(p); - } - } - - removeSync(p, { - recursive = true - } = {}) { - let stat; - - try { - stat = this.lstatSync(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) for (const entry of this.readdirSync(p)) this.removeSync(this.pathUtils.resolve(p, entry)); - this.rmdirSync(p); - } else { - this.unlinkSync(p); - } - } - - async mkdirpPromise(p, { - chmod, - utimes - } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) return; - const parts = p.split(this.pathUtils.sep); - - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - - if (!this.existsSync(subPath)) { - try { - await this.mkdirPromise(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; + let updated = false + + if (destinationStat === null) { + prelayout.push(async () => + destinationFs.mkdirPromise(destination, { + mode: sourceStat.mode, + }) + ) + updated = true } - } - if (chmod != null) await this.chmodPromise(subPath, chmod); + const entries = await sourceFs.readdirPromise(source) + + if (opts.stableSort) { + for (const entry of entries.sort()) { + if ( + await copyImpl( + prelayout, + postlayout, + updateTime, + destinationFs, + destinationFs.pathUtils.join(destination, entry), + sourceFs, + sourceFs.pathUtils.join(source, entry), + opts + ) + ) { + updated = true + } + } + } else { + const entriesUpdateStatus = await Promise.all( + entries.map(async (entry) => { + await copyImpl( + prelayout, + postlayout, + updateTime, + destinationFs, + destinationFs.pathUtils.join(destination, entry), + sourceFs, + sourceFs.pathUtils.join(source, entry), + opts + ) + }) + ) + + if (entriesUpdateStatus.some((status) => status)) { + updated = true + } + } - if (utimes != null) { - await this.utimesPromise(subPath, utimes[0], utimes[1]); - } else { - const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); - await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + return updated } - } - } - } - - mkdirpSync(p, { - chmod, - utimes - } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) return; - const parts = p.split(this.pathUtils.sep); - - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - - if (!this.existsSync(subPath)) { - try { - this.mkdirSync(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; + + async function copyFile( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + destinationStat, + sourceFs, + source, + sourceStat, + opts + ) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => + destinationFs.removePromise(destination) + ) + destinationStat = null + } else { + return false + } } + + const op = + destinationFs === sourceFs + ? async () => + destinationFs.copyFilePromise( + source, + destination, + external_fs_default().constants.COPYFILE_FICLONE + ) + : async () => + destinationFs.writeFilePromise( + destination, + await sourceFs.readFilePromise(source) + ) + prelayout.push(async () => op()) + return true } - if (chmod != null) this.chmodSync(subPath, chmod); + async function copySymlink( + prelayout, + postlayout, + updateTime, + destinationFs, + destination, + destinationStat, + sourceFs, + source, + sourceStat, + opts + ) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => + destinationFs.removePromise(destination) + ) + destinationStat = null + } else { + return false + } + } - if (utimes != null) { - this.utimesSync(subPath, utimes[0], utimes[1]); - } else { - const parentStat = this.statSync(this.pathUtils.dirname(subPath)); - this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + prelayout.push(async () => { + await destinationFs.symlinkPromise( + convertPath( + destinationFs.pathUtils, + await sourceFs.readlinkPromise(source) + ), + destination + ) + }) + return true } - } - } - } - - async copyPromise(destination, source, { - baseFs = this, - overwrite = true, - stableSort = false, - stableTime = false - } = {}) { - return await copyPromise(this, destination, baseFs, source, { - overwrite, - stableSort, - stableTime - }); - } - - copySync(destination, source, { - baseFs = this, - overwrite = true - } = {}) { - const stat = baseFs.lstatSync(source); - const exists = this.existsSync(destination); - - if (stat.isDirectory()) { - this.mkdirpSync(destination); - const directoryListing = baseFs.readdirSync(source); - - for (const entry of directoryListing) { - this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { - baseFs, - overwrite - }); - } - } else if (stat.isFile()) { - if (!exists || overwrite) { - if (exists) this.removeSync(destination); - const content = baseFs.readFileSync(source); - this.writeFileSync(destination, content); - } - } else if (stat.isSymbolicLink()) { - if (!exists || overwrite) { - if (exists) this.removeSync(destination); - const target = baseFs.readlinkSync(source); - this.symlinkSync(convertPath(this.pathUtils, target), destination); - } - } else { - throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); - } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/FakeFS.ts - const mode = stat.mode & 0o777; - this.chmodSync(destination, mode); - } + class FakeFS { + constructor(pathUtils) { + this.pathUtils = pathUtils + } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init] - async changeFileBufferPromise(p, content) { - let current = Buffer.alloc(0); + while (stack.length > 0) { + const p = stack.shift() + const entry = await this.lstatPromise(p) - try { - current = await this.readFilePromise(p); - } catch (error) {// ignore errors, no big deal - } + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p) - if (Buffer.compare(current, content) === 0) return; - await this.writeFilePromise(p, content); - } + if (stableSort) { + for (const entry of entries.sort()) { + stack.push(this.pathUtils.join(p, entry)) + } + } else { + throw new Error(`Not supported`) + } + } else { + yield p + } + } + } - async changeFileTextPromise(p, content, { - automaticNewlines - } = {}) { - let current = ``; + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat - try { - current = await this.readFilePromise(p, `utf8`); - } catch (error) {// ignore errors, no big deal - } + try { + stat = await this.lstatPromise(p) + } catch (error) { + if (error.code === `ENOENT`) { + return + } else { + throw error + } + } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) return; - await this.writeFilePromise(p, normalizedContent); - } + if (stat.isDirectory()) { + if (recursive) + for (const entry of await this.readdirPromise(p)) + await this.removePromise(this.pathUtils.resolve(p, entry)) // 5 gives 1s worth of retries at worst + + let t = 0 + + do { + try { + await this.rmdirPromise(p) + break + } catch (error) { + if (error.code === `EBUSY` || error.code === `ENOTEMPTY`) { + if (maxRetries === 0) { + break + } else { + await new Promise((resolve) => + setTimeout(resolve, t * 100) + ) + continue + } + } else { + throw error + } + } + } while (t++ < maxRetries) + } else { + await this.unlinkPromise(p) + } + } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content); - } else { - return this.changeFileTextSync(p, content, opts); - } - } + removeSync(p, { recursive = true } = {}) { + let stat - changeFileBufferSync(p, content) { - let current = Buffer.alloc(0); + try { + stat = this.lstatSync(p) + } catch (error) { + if (error.code === `ENOENT`) { + return + } else { + throw error + } + } - try { - current = this.readFileSync(p); - } catch (error) {// ignore errors, no big deal - } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)) + this.rmdirSync(p) + } else { + this.unlinkSync(p) + } + } - if (Buffer.compare(current, content) === 0) return; - this.writeFileSync(p, content); - } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p) + if (p === this.pathUtils.dirname(p)) return + const parts = p.split(this.pathUtils.sep) + + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep) + + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath) + } catch (error) { + if (error.code === `EEXIST`) { + continue + } else { + throw error + } + } - changeFileTextSync(p, content, { - automaticNewlines = false - } = {}) { - let current = ``; + if (chmod != null) await this.chmodPromise(subPath, chmod) + + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]) + } else { + const parentStat = await this.statPromise( + this.pathUtils.dirname(subPath) + ) + await this.utimesPromise( + subPath, + parentStat.atime, + parentStat.mtime + ) + } + } + } + } - try { - current = this.readFileSync(p, `utf8`); - } catch (error) {// ignore errors, no big deal - } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p) + if (p === this.pathUtils.dirname(p)) return + const parts = p.split(this.pathUtils.sep) + + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep) + + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath) + } catch (error) { + if (error.code === `EEXIST`) { + continue + } else { + throw error + } + } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) return; - this.writeFileSync(p, normalizedContent); - } - - async movePromise(fromP, toP) { - try { - await this.renamePromise(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - await this.copyPromise(toP, fromP); - await this.removePromise(fromP); - } else { - throw error; - } - } - } - - moveSync(fromP, toP) { - try { - this.renameSync(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - this.copySync(toP, fromP); - this.removeSync(fromP); - } else { - throw error; - } - } - } - - async lockPromise(affectedPath, callback) { - const lockPath = `${affectedPath}.flock`; - const interval = 1000 / 60; - const startTime = Date.now(); - let fd = null; // Even when we detect that a lock file exists, we still look inside to see - // whether the pid that created it is still alive. It's not foolproof - // (there are false positive), but there are no false negative and that's - // all that matters in 99% of the cases. - - const isAlive = async () => { - let pid; - - try { - [pid] = await this.readJsonPromise(lockPath); - } catch (error) { - // If we can't read the file repeatedly, we assume the process was - // aborted before even writing finishing writing the payload. - return Date.now() - startTime < 500; - } + if (chmod != null) this.chmodSync(subPath, chmod) - try { - // "As a special case, a signal of 0 can be used to test for the - // existence of a process" - so we check whether it's alive. - process.kill(pid, 0); - return true; - } catch (error) { - return false; - } - }; - - while (fd === null) { - try { - fd = await this.openPromise(lockPath, `wx`); - } catch (error) { - if (error.code === `EEXIST`) { - if (!(await isAlive())) { - try { - await this.unlinkPromise(lockPath); - continue; - } catch (error) {// No big deal if we can't remove it. Just fallback to wait for - // it to be eventually released by its owner. + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]) + } else { + const parentStat = this.statSync( + this.pathUtils.dirname(subPath) + ) + this.utimesSync(subPath, parentStat.atime, parentStat.mtime) + } + } } } - if (Date.now() - startTime < 60 * 1000) { - await new Promise(resolve => setTimeout(resolve, interval)); - } else { - throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + async copyPromise( + destination, + source, + { + baseFs = this, + overwrite = true, + stableSort = false, + stableTime = false, + } = {} + ) { + return await copyPromise(this, destination, baseFs, source, { + overwrite, + stableSort, + stableTime, + }) } - } else { - throw error; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - - try { - return await callback(); - } finally { - try { - // closePromise needs to come before unlinkPromise otherwise another process can attempt - // to get the file handle after the unlink but before close resuling in - // EPERM: operation not permitted, open - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch (error) {// noop - } - } - } + copySync( + destination, + source, + { baseFs = this, overwrite = true } = {} + ) { + const stat = baseFs.lstatSync(source) + const exists = this.existsSync(destination) + + if (stat.isDirectory()) { + this.mkdirpSync(destination) + const directoryListing = baseFs.readdirSync(source) + + for (const entry of directoryListing) { + this.copySync( + this.pathUtils.join(destination, entry), + baseFs.pathUtils.join(source, entry), + { + baseFs, + overwrite, + } + ) + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) this.removeSync(destination) + const content = baseFs.readFileSync(source) + this.writeFileSync(destination, content) + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) this.removeSync(destination) + const target = baseFs.readlinkSync(source) + this.symlinkSync( + convertPath(this.pathUtils, target), + destination + ) + } + } else { + throw new Error( + `Unsupported file type (file: ${source}, mode: 0o${stat.mode + .toString(8) + .padStart(6, `0`)})` + ) + } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); + const mode = stat.mode & 0o777 + this.chmodSync(destination, mode) + } - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content) + } else { + return this.changeFileTextPromise(p, content, opts) + } + } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); + async changeFileBufferPromise(p, content) { + let current = Buffer.alloc(0) - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } + try { + current = await this.readFilePromise(p) + } catch (error) { + // ignore errors, no big deal + } - async writeJsonPromise(p, data) { - return await this.writeFilePromise(p, `${JSON.stringify(data, null, 2)}\n`); - } + if (Buffer.compare(current, content) === 0) return + await this.writeFilePromise(p, content) + } - writeJsonSync(p, data) { - return this.writeFileSync(p, `${JSON.stringify(data, null, 2)}\n`); - } + async changeFileTextPromise(p, content, { automaticNewlines } = {}) { + let current = `` - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) p = result; + try { + current = await this.readFilePromise(p, `utf8`) + } catch (error) { + // ignore errors, no big deal + } - if (this.lutimesPromise) { - await this.lutimesPromise(p, stat.atime, stat.mtime); - } else if (!stat.isSymbolicLink()) { - await this.utimesPromise(p, stat.atime, stat.mtime); - } - } + const normalizedContent = automaticNewlines + ? normalizeLineEndings(current, content) + : content + if (current === normalizedContent) return + await this.writeFilePromise(p, normalizedContent) + } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) p = result; + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content) + } else { + return this.changeFileTextSync(p, content, opts) + } + } - if (this.lutimesSync) { - this.lutimesSync(p, stat.atime, stat.mtime); - } else if (!stat.isSymbolicLink()) { - this.utimesSync(p, stat.atime, stat.mtime); - } - } + changeFileBufferSync(p, content) { + let current = Buffer.alloc(0) -} -FakeFS.DEFAULT_TIME = 315532800; -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } + try { + current = this.readFileSync(p) + } catch (error) { + // ignore errors, no big deal + } -} + if (Buffer.compare(current, content) === 0) return + this.writeFileSync(p, content) + } -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) return external_os_namespaceObject.EOL; - const crlf = matches.filter(nl => nl === `\r\n`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r\n` : `\n`; -} + changeFileTextSync(p, content, { automaticNewlines = false } = {}) { + let current = `` -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/errors.ts -function makeError(code, message) { - return Object.assign(new Error(`${code}: ${message}`), { - code - }); -} + try { + current = this.readFileSync(p, `utf8`) + } catch (error) { + // ignore errors, no big deal + } -function EBUSY(message) { - return makeError(`EBUSY`, message); -} -function ENOSYS(message, reason) { - return makeError(`ENOSYS`, `${message}, ${reason}`); -} -function EINVAL(reason) { - return makeError(`EINVAL`, `invalid argument, ${reason}`); -} -function EBADF(reason) { - return makeError(`EBADF`, `bad file descriptor, ${reason}`); -} -function ENOENT(reason) { - return makeError(`ENOENT`, `no such file or directory, ${reason}`); -} -function ENOTDIR(reason) { - return makeError(`ENOTDIR`, `not a directory, ${reason}`); -} -function EISDIR(reason) { - return makeError(`EISDIR`, `illegal operation on a directory, ${reason}`); -} -function EEXIST(reason) { - return makeError(`EEXIST`, `file already exists, ${reason}`); -} -function EROFS(reason) { - return makeError(`EROFS`, `read-only filesystem, ${reason}`); -} -function ENOTEMPTY(reason) { - return makeError(`ENOTEMPTY`, `directory not empty, ${reason}`); -} -function EOPNOTSUPP(reason) { - return makeError(`EOPNOTSUPP`, `operation not supported, ${reason}`); -} // ------------------------------------------------------------------------ + const normalizedContent = automaticNewlines + ? normalizeLineEndings(current, content) + : content + if (current === normalizedContent) return + this.writeFileSync(p, normalizedContent) + } -function ERR_DIR_CLOSED() { - return makeError(`ERR_DIR_CLOSED`, `Directory handle was closed`); -} // ------------------------------------------------------------------------ + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP) + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP) + await this.removePromise(fromP) + } else { + throw error + } + } + } -class LibzipError extends Error { - constructor(message, code) { - super(message); - this.name = `Libzip Error`; - this.code = code; - } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP) + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP) + this.removeSync(fromP) + } else { + throw error + } + } + } -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/NodeFS.ts + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock` + const interval = 1000 / 60 + const startTime = Date.now() + let fd = null // Even when we detect that a lock file exists, we still look inside to see + // whether the pid that created it is still alive. It's not foolproof + // (there are false positive), but there are no false negative and that's + // all that matters in 99% of the cases. + + const isAlive = async () => { + let pid + + try { + ;[pid] = await this.readJsonPromise(lockPath) + } catch (error) { + // If we can't read the file repeatedly, we assume the process was + // aborted before even writing finishing writing the payload. + return Date.now() - startTime < 500 + } + try { + // "As a special case, a signal of 0 can be used to test for the + // existence of a process" - so we check whether it's alive. + process.kill(pid, 0) + return true + } catch (error) { + return false + } + } + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`) + } catch (error) { + if (error.code === `EEXIST`) { + if (!(await isAlive())) { + try { + await this.unlinkPromise(lockPath) + continue + } catch (error) { + // No big deal if we can't remove it. Just fallback to wait for + // it to be eventually released by its owner. + } + } + if (Date.now() - startTime < 60 * 1000) { + await new Promise((resolve) => + setTimeout(resolve, interval) + ) + } else { + throw new Error( + `Couldn't acquire a lock in a reasonable time (via ${lockPath})` + ) + } + } else { + throw error + } + } + } -class NodeFS extends BasePortableFakeFS { - constructor(realFs = (external_fs_default())) { - super(); - this.realFs = realFs; // @ts-expect-error + await this.writePromise(fd, JSON.stringify([process.pid])) - if (typeof this.realFs.lutimes !== `undefined`) { - this.lutimesPromise = this.lutimesPromiseImpl; - this.lutimesSync = this.lutimesSyncImpl; - } - } - - getExtractHint() { - return false; - } - - getRealPath() { - return PortablePath.root; - } - - resolve(p) { - return ppath.resolve(p); - } - - async openPromise(p, flags, mode) { - return await new Promise((resolve, reject) => { - this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); - }); - } - - openSync(p, flags, mode) { - return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); - } - - async opendirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (typeof opts !== `undefined`) { - this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }).then(dir => { - return Object.defineProperty(dir, `path`, { - value: p, - configurable: true, - writable: true - }); - }); - } - - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - return Object.defineProperty(dir, `path`, { - value: p, - configurable: true, - writable: true - }); - } - - async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { - return await new Promise((resolve, reject) => { - this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { - if (error) { - reject(error); - } else { - resolve(bytesRead); - } - }); - }); - } - - readSync(fd, buffer, offset, length, position) { - return this.realFs.readSync(fd, buffer, offset, length, position); - } - - async writePromise(fd, buffer, offset, length, position) { - return await new Promise((resolve, reject) => { - if (typeof buffer === `string`) { - return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); - } else { - return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); - } - }); - } - - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.realFs.writeSync(fd, buffer, offset); - } else { - return this.realFs.writeSync(fd, buffer, offset, length, position); - } - } - - async closePromise(fd) { - await new Promise((resolve, reject) => { - this.realFs.close(fd, this.makeCallback(resolve, reject)); - }); - } - - closeSync(fd) { - this.realFs.closeSync(fd); - } - - createReadStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createReadStream(realPath, opts); - } - - createWriteStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createWriteStream(realPath, opts); - } - - async realpathPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); - }).then(path => { - return npath.toPortablePath(path); - }); - } - - realpathSync(p) { - return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); - } - - async existsPromise(p) { - return await new Promise(resolve => { - this.realFs.exists(npath.fromPortablePath(p), resolve); - }); - } - - accessSync(p, mode) { - return this.realFs.accessSync(npath.fromPortablePath(p), mode); - } - - async accessPromise(p, mode) { - return await new Promise((resolve, reject) => { - this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); - }); - } - - existsSync(p) { - return this.realFs.existsSync(npath.fromPortablePath(p)); - } - - async statPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - - statSync(p) { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - - async lstatPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - - lstatSync(p) { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - - async chmodPromise(p, mask) { - return await new Promise((resolve, reject) => { - this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); - }); - } - - chmodSync(p, mask) { - return this.realFs.chmodSync(npath.fromPortablePath(p), mask); - } - - async chownPromise(p, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); - }); - } - - chownSync(p, uid, gid) { - return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); - } - - async renamePromise(oldP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - - renameSync(oldP, newP) { - return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); - } - - async copyFilePromise(sourceP, destP, flags = 0) { - return await new Promise((resolve, reject) => { - this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); - }); - } - - copyFileSync(sourceP, destP, flags = 0) { - return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); - } - - async appendFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - - if (opts) { - this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } + try { + return await callback() + } finally { + try { + // closePromise needs to come before unlinkPromise otherwise another process can attempt + // to get the file handle after the unlink but before close resuling in + // EPERM: operation not permitted, open + await this.closePromise(fd) + await this.unlinkPromise(lockPath) + } catch (error) { + // noop + } + } + } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`) - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } + try { + return JSON.parse(content) + } catch (error) { + error.message += ` (in ${p})` + throw error + } + } - async writeFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`) - if (opts) { - this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } + try { + return JSON.parse(content) + } catch (error) { + error.message += ` (in ${p})` + throw error + } + } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + async writeJsonPromise(p, data) { + return await this.writeFilePromise( + p, + `${JSON.stringify(data, null, 2)}\n` + ) + } - if (opts) { - this.realFs.writeFileSync(fsNativePath, content, opts); - } else { - this.realFs.writeFileSync(fsNativePath, content); - } - } - - async unlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - - unlinkSync(p) { - return this.realFs.unlinkSync(npath.fromPortablePath(p)); - } - - async utimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - - utimesSync(p, atime, mtime) { - this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); - } - - async lutimesPromiseImpl(p, atime, mtime) { - // @ts-expect-error: Not yet in DefinitelyTyped - const lutimes = this.realFs.lutimes; - if (typeof lutimes === `undefined`) throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`); - return await new Promise((resolve, reject) => { - lutimes.call(this.realFs, npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - - lutimesSyncImpl(p, atime, mtime) { - // @ts-expect-error: Not yet in DefinitelyTyped - const lutimesSync = this.realFs.lutimesSync; - if (typeof lutimesSync === `undefined`) throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`); - lutimesSync.call(this.realFs, npath.fromPortablePath(p), atime, mtime); - } - - async mkdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - }); - } - - mkdirSync(p, opts) { - return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); - } - - async rmdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - // TODO: always pass opts when min node version is 12.10+ - if (opts) { - this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - - rmdirSync(p, opts) { - return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); - } - - async linkPromise(existingP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - - linkSync(existingP, newP) { - return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); - } - - async symlinkPromise(target, p, type) { - const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`); - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), symlinkType, this.makeCallback(resolve, reject)); - }); - } - - symlinkSync(target, p, type) { - const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`); - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), symlinkType); - } - - async readFilePromise(p, encoding) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); - }); - } - - readFileSync(p, encoding) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - return this.realFs.readFileSync(fsNativePath, encoding); - } - - async readdirPromise(p, { - withFileTypes - } = {}) { - return await new Promise((resolve, reject) => { - if (withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), { - withFileTypes: true - }, this.makeCallback(resolve, reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(value => resolve(value), reject)); - } - }); - } - - readdirSync(p, { - withFileTypes - } = {}) { - if (withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), { - withFileTypes: true - }); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p)); - } - } - - async readlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }).then(path => { - return npath.toPortablePath(path); - }); - } - - readlinkSync(p) { - return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); - } - - async truncatePromise(p, len) { - return await new Promise((resolve, reject) => { - this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); - }); - } - - truncateSync(p, len) { - return this.realFs.truncateSync(npath.fromPortablePath(p), len); - } - - watch(p, a, b) { - return this.realFs.watch(npath.fromPortablePath(p), // @ts-expect-error - a, b); - } - - watchFile(p, a, b) { - return this.realFs.watchFile(npath.fromPortablePath(p), // @ts-expect-error - a, b); - } - - unwatchFile(p, cb) { - return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); - } - - makeCallback(resolve, reject) { - return (err, result) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }; - } + writeJsonSync(p, data) { + return this.writeFileSync(p, `${JSON.stringify(data, null, 2)}\n`) + } -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ProxiedFS.ts - -class ProxiedFS extends FakeFS { - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - - resolve(path) { - return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); - } - - getRealPath() { - return this.mapFromBase(this.baseFs.getRealPath()); - } - - async openPromise(p, flags, mode) { - return this.baseFs.openPromise(this.mapToBase(p), flags, mode); - } - - openSync(p, flags, mode) { - return this.baseFs.openSync(this.mapToBase(p), flags, mode); - } - - async opendirPromise(p, opts) { - return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { - path: p - }); - } - - opendirSync(p, opts) { - return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { - path: p - }); - } - - async readPromise(fd, buffer, offset, length, position) { - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - } - - readSync(fd, buffer, offset, length, position) { - return this.baseFs.readSync(fd, buffer, offset, length, position); - } - - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p) + const result = await cb() + if (typeof result !== `undefined`) p = result - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } + if (this.lutimesPromise) { + await this.lutimesPromise(p, stat.atime, stat.mtime) + } else if (!stat.isSymbolicLink()) { + await this.utimesPromise(p, stat.atime, stat.mtime) + } + } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p) + const result = cb() + if (typeof result !== `undefined`) p = result - closeSync(fd) { - this.baseFs.closeSync(fd); - } + if (this.lutimesSync) { + this.lutimesSync(p, stat.atime, stat.mtime) + } else if (!stat.isSymbolicLink()) { + this.utimesSync(p, stat.atime, stat.mtime) + } + } + } + FakeFS.DEFAULT_TIME = 315532800 + class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath) + } + } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } + function getEndOfLine(content) { + const matches = content.match(/\r?\n/g) + if (matches === null) return external_os_namespaceObject.EOL + const crlf = matches.filter((nl) => nl === `\r\n`).length + const lf = matches.length - crlf + return crlf > lf ? `\r\n` : `\n` + } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } + function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)) + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/errors.ts + function makeError(code, message) { + return Object.assign(new Error(`${code}: ${message}`), { + code, + }) + } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } + function EBUSY(message) { + return makeError(`EBUSY`, message) + } + function ENOSYS(message, reason) { + return makeError(`ENOSYS`, `${message}, ${reason}`) + } + function EINVAL(reason) { + return makeError(`EINVAL`, `invalid argument, ${reason}`) + } + function EBADF(reason) { + return makeError(`EBADF`, `bad file descriptor, ${reason}`) + } + function ENOENT(reason) { + return makeError(`ENOENT`, `no such file or directory, ${reason}`) + } + function ENOTDIR(reason) { + return makeError(`ENOTDIR`, `not a directory, ${reason}`) + } + function EISDIR(reason) { + return makeError( + `EISDIR`, + `illegal operation on a directory, ${reason}` + ) + } + function EEXIST(reason) { + return makeError(`EEXIST`, `file already exists, ${reason}`) + } + function EROFS(reason) { + return makeError(`EROFS`, `read-only filesystem, ${reason}`) + } + function ENOTEMPTY(reason) { + return makeError(`ENOTEMPTY`, `directory not empty, ${reason}`) + } + function EOPNOTSUPP(reason) { + return makeError(`EOPNOTSUPP`, `operation not supported, ${reason}`) + } // ------------------------------------------------------------------------ + + function ERR_DIR_CLOSED() { + return makeError(`ERR_DIR_CLOSED`, `Directory handle was closed`) + } // ------------------------------------------------------------------------ + + class LibzipError extends Error { + constructor(message, code) { + super(message) + this.name = `Libzip Error` + this.code = code + } + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/NodeFS.ts - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } + class NodeFS extends BasePortableFakeFS { + constructor(realFs = external_fs_default()) { + super() + this.realFs = realFs // @ts-expect-error - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } + if (typeof this.realFs.lutimes !== `undefined`) { + this.lutimesPromise = this.lutimesPromiseImpl + this.lutimesSync = this.lutimesSyncImpl + } + } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } + getExtractHint() { + return false + } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } + getRealPath() { + return PortablePath.root + } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } + resolve(p) { + return ppath.resolve(p) + } - async statPromise(p) { - return this.baseFs.statPromise(this.mapToBase(p)); - } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open( + npath.fromPortablePath(p), + flags, + mode, + this.makeCallback(resolve, reject) + ) + }) + } - statSync(p) { - return this.baseFs.statSync(this.mapToBase(p)); - } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode) + } - async lstatPromise(p) { - return this.baseFs.lstatPromise(this.mapToBase(p)); - } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir( + npath.fromPortablePath(p), + opts, + this.makeCallback(resolve, reject) + ) + } else { + this.realFs.opendir( + npath.fromPortablePath(p), + this.makeCallback(resolve, reject) + ) + } + }).then((dir) => { + return Object.defineProperty(dir, `path`, { + value: p, + configurable: true, + writable: true, + }) + }) + } - lstatSync(p) { - return this.baseFs.lstatSync(this.mapToBase(p)); - } + opendirSync(p, opts) { + const dir = + typeof opts !== `undefined` + ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) + : this.realFs.opendirSync(npath.fromPortablePath(p)) + return Object.defineProperty(dir, `path`, { + value: p, + configurable: true, + writable: true, + }) + } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - - async chownPromise(p, uid, gid) { - return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); - } - - chownSync(p, uid, gid) { - return this.baseFs.chownSync(this.mapToBase(p), uid, gid); - } - - async renamePromise(oldP, newP) { - return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); - } - - renameSync(oldP, newP) { - return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); - } - - async copyFilePromise(sourceP, destP, flags = 0) { - return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - - copyFileSync(sourceP, destP, flags = 0) { - return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - - async appendFilePromise(p, content, opts) { - return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); - } - - appendFileSync(p, content, opts) { - return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); - } - - async writeFilePromise(p, content, opts) { - return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); - } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read( + fd, + buffer, + offset, + length, + position, + (error, bytesRead) => { + if (error) { + reject(error) + } else { + resolve(bytesRead) + } + } + ) + }) + } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position) + } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write( + fd, + buffer, + offset, + this.makeCallback(resolve, reject) + ) + } else { + return this.realFs.write( + fd, + buffer, + offset, + length, + position, + this.makeCallback(resolve, reject) + ) + } + }) + } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset) + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position) + } + } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)) + }) + } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } + closeSync(fd) { + this.realFs.closeSync(fd) + } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p + return this.realFs.createReadStream(realPath, opts) + } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p + return this.realFs.createWriteStream(realPath, opts) + } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath( + npath.fromPortablePath(p), + {}, + this.makeCallback(resolve, reject) + ) + }).then((path) => { + return npath.toPortablePath(path) + }) + } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } + realpathSync(p) { + return npath.toPortablePath( + this.realFs.realpathSync(npath.fromPortablePath(p), {}) + ) + } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve) + }) + } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode) + } - async symlinkPromise(target, p, type) { - return this.baseFs.symlinkPromise(this.mapToBase(target), this.mapToBase(p), type); - } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access( + npath.fromPortablePath(p), + mode, + this.makeCallback(resolve, reject) + ) + }) + } - symlinkSync(target, p, type) { - return this.baseFs.symlinkSync(this.mapToBase(target), this.mapToBase(p), type); - } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)) + } - async readFilePromise(p, encoding) { - // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) - if (encoding === `utf8`) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } else { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - } - - readFileSync(p, encoding) { - // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) - if (encoding === `utf8`) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } else { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - } - - async readdirPromise(p, { - withFileTypes - } = {}) { - return this.baseFs.readdirPromise(this.mapToBase(p), { - withFileTypes: withFileTypes - }); - } - - readdirSync(p, { - withFileTypes - } = {}) { - return this.baseFs.readdirSync(this.mapToBase(p), { - withFileTypes: withFileTypes - }); - } - - async readlinkPromise(p) { - return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); - } - - readlinkSync(p) { - return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); - } - - async truncatePromise(p, len) { - return this.baseFs.truncatePromise(this.mapToBase(p), len); - } - - truncateSync(p, len) { - return this.baseFs.truncateSync(this.mapToBase(p), len); - } - - watch(p, a, b) { - return this.baseFs.watch(this.mapToBase(p), // @ts-expect-error - a, b); - } - - watchFile(p, a, b) { - return this.baseFs.watchFile(this.mapToBase(p), // @ts-expect-error - a, b); - } - - unwatchFile(p, cb) { - return this.baseFs.unwatchFile(this.mapToBase(p), cb); - } - - fsMapToBase(p) { - if (typeof p === `number`) { - return p; - } else { - return this.mapToBase(p); - } - } + async statPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.stat( + npath.fromPortablePath(p), + this.makeCallback(resolve, reject) + ) + }) + } -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/VirtualFS.ts - - - -const NUMBER_REGEXP = /^[0-9]+$/; // $0: full path -// $1: virtual folder -// $2: virtual segment -// $3: hash -// $4: depth -// $5: subpath - -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - constructor({ - baseFs = new NodeFS() - } = {}) { - super(ppath); - this.baseFs = baseFs; - } - - static makeVirtualPath(base, component, to) { - if (ppath.basename(base) !== `$$virtual`) throw new Error(`Assertion failed: Virtual folders must be named "$$virtual"`); - if (!ppath.basename(component).match(VALID_COMPONENT)) throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); // Obtains the relative distance between the virtual path and its actual target - - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); // Counts how many levels we need to go back to start applying the rest of the path - - let depth = 0; - - while (depth < segments.length && segments[depth] === `..`) depth += 1; - - const finalSegments = segments.slice(depth); - const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); - return fullVirtualPath; - } - - static resolveVirtual(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match || !match[3] && match[5]) return p; - const target = ppath.dirname(match[1]); - if (!match[3] || !match[4]) return target; - const isnum = NUMBER_REGEXP.test(match[4]); - if (!isnum) return p; - const depth = Number(match[4]); - const backstep = `../`.repeat(depth); - const subpath = match[5] || `.`; - return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); - } - - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - - getRealPath() { - return this.baseFs.getRealPath(); - } - - realpathSync(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) return this.baseFs.realpathSync(p); - if (!match[5]) return p; - const realpath = this.baseFs.realpathSync(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - - async realpathPromise(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) return await this.baseFs.realpathPromise(p); - if (!match[5]) return p; - const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - - mapToBase(p) { - return VirtualFS.resolveVirtual(p); - } - - mapFromBase(p) { - return p; - } + statSync(p) { + return this.realFs.statSync(npath.fromPortablePath(p)) + } -} -// CONCATENATED MODULE: external "stream" -const external_stream_namespaceObject = require("stream");; -// CONCATENATED MODULE: external "util" -const external_util_namespaceObject = require("util");; -// CONCATENATED MODULE: external "zlib" -const external_zlib_namespaceObject = require("zlib");; -var external_zlib_default = /*#__PURE__*/__webpack_require__.n(external_zlib_namespaceObject); - -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/opendir.ts - -class CustomDir { - constructor(path, nextDirent, opts = {}) { - this.path = path; - this.nextDirent = nextDirent; - this.opts = opts; - this.closed = false; - } - - throwIfClosed() { - if (this.closed) { - throw ERR_DIR_CLOSED(); - } - } + async lstatPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.lstat( + npath.fromPortablePath(p), + this.makeCallback(resolve, reject) + ) + }) + } - async *[Symbol.asyncIterator]() { - try { - let dirent; // eslint-disable-next-line no-cond-assign + lstatSync(p) { + return this.realFs.lstatSync(npath.fromPortablePath(p)) + } - while ((dirent = await this.read()) !== null) { - yield dirent; - } - } finally { - await this.close(); - } - } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod( + npath.fromPortablePath(p), + mask, + this.makeCallback(resolve, reject) + ) + }) + } - read(cb) { - const dirent = this.readSync(); - if (typeof cb !== `undefined`) return cb(null, dirent); - return Promise.resolve(dirent); - } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask) + } - readSync() { - this.throwIfClosed(); - return this.nextDirent(); - } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown( + npath.fromPortablePath(p), + uid, + gid, + this.makeCallback(resolve, reject) + ) + }) + } - close(cb) { - this.closeSync(); - if (typeof cb !== `undefined`) return cb(null); - return Promise.resolve(); - } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid) + } - closeSync() { - var _a, _b; + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename( + npath.fromPortablePath(oldP), + npath.fromPortablePath(newP), + this.makeCallback(resolve, reject) + ) + }) + } - this.throwIfClosed(); - (_b = (_a = this.opts).onClose) === null || _b === void 0 ? void 0 : _b.call(_a); - this.closed = true; - } + renameSync(oldP, newP) { + return this.realFs.renameSync( + npath.fromPortablePath(oldP), + npath.fromPortablePath(newP) + ) + } -} -function opendir(fakeFs, path, entries, opts) { - const nextDirent = () => { - const filename = entries.shift(); - if (typeof filename === `undefined`) return null; - return Object.assign(fakeFs.statSync(fakeFs.pathUtils.join(path, filename)), { - name: filename - }); - }; - - return new CustomDir(path, nextDirent, opts); -} -// CONCATENATED MODULE: external "events" -const external_events_namespaceObject = require("events");; -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/constants.ts -const constants_S_IFMT = 0o170000; -const constants_S_IFDIR = 0o040000; -const constants_S_IFREG = 0o100000; -const constants_S_IFLNK = 0o120000; -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/statUtils.ts - -class DirEntry { - constructor() { - this.name = ``; - this.mode = 0; - } - - isBlockDevice() { - return false; - } - - isCharacterDevice() { - return false; - } - - isDirectory() { - return (this.mode & S_IFMT) === S_IFDIR; - } - - isFIFO() { - return false; - } - - isFile() { - return (this.mode & S_IFMT) === S_IFREG; - } - - isSocket() { - return false; - } - - isSymbolicLink() { - return (this.mode & S_IFMT) === S_IFLNK; - } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile( + npath.fromPortablePath(sourceP), + npath.fromPortablePath(destP), + flags, + this.makeCallback(resolve, reject) + ) + }) + } -} -class StatEntry { - constructor() { - this.dev = 0; - this.ino = 0; - this.mode = 0; - this.nlink = 1; - this.rdev = 0; - this.blocks = 1; - } - - isBlockDevice() { - return false; - } - - isCharacterDevice() { - return false; - } - - isDirectory() { - return (this.mode & constants_S_IFMT) === constants_S_IFDIR; - } - - isFIFO() { - return false; - } - - isFile() { - return (this.mode & constants_S_IFMT) === constants_S_IFREG; - } - - isSocket() { - return false; - } - - isSymbolicLink() { - return (this.mode & constants_S_IFMT) === constants_S_IFLNK; - } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync( + npath.fromPortablePath(sourceP), + npath.fromPortablePath(destP), + flags + ) + } -} -function makeDefaultStats() { - return Object.assign(new StatEntry(), { - uid: 0, - gid: 0, - size: 0, - blksize: 0, - atimeMs: 0, - mtimeMs: 0, - ctimeMs: 0, - birthtimeMs: 0, - atime: new Date(0), - mtime: new Date(0), - ctime: new Date(0), - birthtime: new Date(0), - mode: constants_S_IFREG | 0o644 - }); -} -function makeEmptyStats() { - return Object.assign(makeDefaultStats(), { - nlink: 0, - blocks: 0, - mode: 0 - }); -} -function areStatsEqual(a, b) { - if (a.atimeMs !== b.atimeMs) return false; - if (a.birthtimeMs !== b.birthtimeMs) return false; - if (a.blksize !== b.blksize) return false; - if (a.blocks !== b.blocks) return false; - if (a.ctimeMs !== b.ctimeMs) return false; - if (a.dev !== b.dev) return false; - if (a.gid !== b.gid) return false; - if (a.ino !== b.ino) return false; - if (a.isBlockDevice() !== b.isBlockDevice()) return false; - if (a.isCharacterDevice() !== b.isCharacterDevice()) return false; - if (a.isDirectory() !== b.isDirectory()) return false; - if (a.isFIFO() !== b.isFIFO()) return false; - if (a.isFile() !== b.isFile()) return false; - if (a.isSocket() !== b.isSocket()) return false; - if (a.isSymbolicLink() !== b.isSymbolicLink()) return false; - if (a.mode !== b.mode) return false; - if (a.mtimeMs !== b.mtimeMs) return false; - if (a.nlink !== b.nlink) return false; - if (a.rdev !== b.rdev) return false; - if (a.size !== b.size) return false; - if (a.uid !== b.uid) return false; - return true; -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/watchFile/CustomStatWatcher.ts + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = + typeof p === `string` ? npath.fromPortablePath(p) : p + + if (opts) { + this.realFs.appendFile( + fsNativePath, + content, + opts, + this.makeCallback(resolve, reject) + ) + } else { + this.realFs.appendFile( + fsNativePath, + content, + this.makeCallback(resolve, reject) + ) + } + }) + } + appendFileSync(p, content, opts) { + const fsNativePath = + typeof p === `string` ? npath.fromPortablePath(p) : p -var Event; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts) + } else { + this.realFs.appendFileSync(fsNativePath, content) + } + } -(function (Event) { - Event["Change"] = "change"; - Event["Stop"] = "stop"; -})(Event || (Event = {})); + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = + typeof p === `string` ? npath.fromPortablePath(p) : p + + if (opts) { + this.realFs.writeFile( + fsNativePath, + content, + opts, + this.makeCallback(resolve, reject) + ) + } else { + this.realFs.writeFile( + fsNativePath, + content, + this.makeCallback(resolve, reject) + ) + } + }) + } -var Status; + writeFileSync(p, content, opts) { + const fsNativePath = + typeof p === `string` ? npath.fromPortablePath(p) : p -(function (Status) { - Status["Ready"] = "ready"; - Status["Running"] = "running"; - Status["Stopped"] = "stopped"; -})(Status || (Status = {})); + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts) + } else { + this.realFs.writeFileSync(fsNativePath, content) + } + } -function assertStatus(current, expected) { - if (current !== expected) { - throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); - } -} -class CustomStatWatcher extends external_events_namespaceObject.EventEmitter { - constructor(fakeFs, path, { - bigint = false - } = {}) { - super(); - this.status = Status.Ready; - this.changeListeners = new Map(); - this.startTimeout = null; - this.fakeFs = fakeFs; - this.path = path; - this.bigint = bigint; - this.lastStats = this.stat(); - } - - static create(fakeFs, path, opts) { - const statWatcher = new CustomStatWatcher(fakeFs, path, opts); - statWatcher.start(); - return statWatcher; - } - - start() { - assertStatus(this.status, Status.Ready); - this.status = Status.Running; // Node allows other listeners to be registered up to 3 milliseconds - // after the watcher has been started, so that's what we're doing too - - this.startTimeout = setTimeout(() => { - this.startTimeout = null; // Per the Node FS docs: - // "When an fs.watchFile operation results in an ENOENT error, - // it will invoke the listener once, with all the fields zeroed - // (or, for dates, the Unix Epoch)." - - if (!this.fakeFs.existsSync(this.path)) { - this.emit(Event.Change, this.lastStats, this.lastStats); - } - }, 3); - } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink( + npath.fromPortablePath(p), + this.makeCallback(resolve, reject) + ) + }) + } - stop() { - assertStatus(this.status, Status.Running); - this.status = Status.Stopped; + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)) + } - if (this.startTimeout !== null) { - clearTimeout(this.startTimeout); - this.startTimeout = null; - } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes( + npath.fromPortablePath(p), + atime, + mtime, + this.makeCallback(resolve, reject) + ) + }) + } - this.emit(Event.Stop); - } - - stat() { - try { - return this.fakeFs.statSync(this.path); - } catch (error) { - if (error.code === `ENOENT`) { - return makeEmptyStats(); - } else { - throw error; - } - } - } - /** - * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. - * - * @param opts.persistent Decides whether the interval should be immediately unref-ed. - */ - - - makeInterval(opts) { - const interval = setInterval(() => { - const currentStats = this.stat(); - const previousStats = this.lastStats; - if (areStatsEqual(currentStats, previousStats)) return; - this.lastStats = currentStats; - this.emit(Event.Change, currentStats, previousStats); - }, opts.interval); - return opts.persistent ? interval : interval.unref(); - } - /** - * Registers a listener and assigns it an interval. - */ - - - registerChangeListener(listener, opts) { - this.addListener(Event.Change, listener); - this.changeListeners.set(listener, this.makeInterval(opts)); - } - /** - * Unregisters the listener and clears the assigned interval. - */ - - - unregisterChangeListener(listener) { - this.removeListener(Event.Change, listener); - const interval = this.changeListeners.get(listener); - if (typeof interval !== `undefined`) clearInterval(interval); - this.changeListeners.delete(listener); - } - /** - * Unregisters all listeners and clears all assigned intervals. - */ - - - unregisterAllChangeListeners() { - for (const listener of this.changeListeners.keys()) { - this.unregisterChangeListener(listener); - } - } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime) + } - hasChangeListeners() { - return this.changeListeners.size > 0; - } - /** - * Refs all stored intervals. - */ + async lutimesPromiseImpl(p, atime, mtime) { + // @ts-expect-error: Not yet in DefinitelyTyped + const lutimes = this.realFs.lutimes + if (typeof lutimes === `undefined`) + throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`) + return await new Promise((resolve, reject) => { + lutimes.call( + this.realFs, + npath.fromPortablePath(p), + atime, + mtime, + this.makeCallback(resolve, reject) + ) + }) + } + lutimesSyncImpl(p, atime, mtime) { + // @ts-expect-error: Not yet in DefinitelyTyped + const lutimesSync = this.realFs.lutimesSync + if (typeof lutimesSync === `undefined`) + throw ENOSYS(`unavailable Node binding`, `lutimes '${p}'`) + lutimesSync.call( + this.realFs, + npath.fromPortablePath(p), + atime, + mtime + ) + } - ref() { - for (const interval of this.changeListeners.values()) interval.ref(); + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir( + npath.fromPortablePath(p), + opts, + this.makeCallback(resolve, reject) + ) + }) + } - return this; - } - /** - * Unrefs all stored intervals. - */ + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts) + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + // TODO: always pass opts when min node version is 12.10+ + if (opts) { + this.realFs.rmdir( + npath.fromPortablePath(p), + opts, + this.makeCallback(resolve, reject) + ) + } else { + this.realFs.rmdir( + npath.fromPortablePath(p), + this.makeCallback(resolve, reject) + ) + } + }) + } - unref() { - for (const interval of this.changeListeners.values()) interval.unref(); + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts) + } - return this; - } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link( + npath.fromPortablePath(existingP), + npath.fromPortablePath(newP), + this.makeCallback(resolve, reject) + ) + }) + } -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/watchFile.ts - -const statWatchersByFakeFS = new WeakMap(); -function watchFile(fakeFs, path, a, b) { - let bigint; - let persistent; - let interval; - let listener; - - switch (typeof a) { - case `function`: - { - bigint = false; - persistent = true; - interval = 5007; - listener = a; - } - break; - - default: - { - ({ - bigint = false, - persistent = true, - interval = 5007 - } = a); - listener = b; - } - break; - } - - let statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) statWatchersByFakeFS.set(fakeFs, statWatchers = new Map()); - let statWatcher = statWatchers.get(path); - - if (typeof statWatcher === `undefined`) { - statWatcher = CustomStatWatcher.create(fakeFs, path, { - bigint - }); - statWatchers.set(path, statWatcher); - } - - statWatcher.registerChangeListener(listener, { - persistent, - interval - }); - return statWatcher; -} -function unwatchFile(fakeFs, path, cb) { - const statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) return; - const statWatcher = statWatchers.get(path); - if (typeof statWatcher === `undefined`) return; - if (typeof cb === `undefined`) statWatcher.unregisterAllChangeListeners();else statWatcher.unregisterChangeListener(cb); - - if (!statWatcher.hasChangeListeners()) { - statWatcher.stop(); - statWatchers.delete(path); - } -} -function unwatchAllFiles(fakeFs) { - const statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) return; + linkSync(existingP, newP) { + return this.realFs.linkSync( + npath.fromPortablePath(existingP), + npath.fromPortablePath(newP) + ) + } - for (const path of statWatchers.keys()) { - unwatchFile(fakeFs, path); - } -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipFS.ts + async symlinkPromise(target, p, type) { + const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`) + return await new Promise((resolve, reject) => { + this.realFs.symlink( + npath.fromPortablePath(target.replace(/\/+$/, ``)), + npath.fromPortablePath(p), + symlinkType, + this.makeCallback(resolve, reject) + ) + }) + } + symlinkSync(target, p, type) { + const symlinkType = type || (target.endsWith(`/`) ? `dir` : `file`) + return this.realFs.symlinkSync( + npath.fromPortablePath(target.replace(/\/+$/, ``)), + npath.fromPortablePath(p), + symlinkType + ) + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = + typeof p === `string` ? npath.fromPortablePath(p) : p + this.realFs.readFile( + fsNativePath, + encoding, + this.makeCallback(resolve, reject) + ) + }) + } + readFileSync(p, encoding) { + const fsNativePath = + typeof p === `string` ? npath.fromPortablePath(p) : p + return this.realFs.readFileSync(fsNativePath, encoding) + } + async readdirPromise(p, { withFileTypes } = {}) { + return await new Promise((resolve, reject) => { + if (withFileTypes) { + this.realFs.readdir( + npath.fromPortablePath(p), + { + withFileTypes: true, + }, + this.makeCallback(resolve, reject) + ) + } else { + this.realFs.readdir( + npath.fromPortablePath(p), + this.makeCallback((value) => resolve(value), reject) + ) + } + }) + } + readdirSync(p, { withFileTypes } = {}) { + if (withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), { + withFileTypes: true, + }) + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)) + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink( + npath.fromPortablePath(p), + this.makeCallback(resolve, reject) + ) + }).then((path) => { + return npath.toPortablePath(path) + }) + } + readlinkSync(p) { + return npath.toPortablePath( + this.realFs.readlinkSync(npath.fromPortablePath(p)) + ) + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate( + npath.fromPortablePath(p), + len, + this.makeCallback(resolve, reject) + ) + }) + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len) + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), // @ts-expect-error + a, + b + ) + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), // @ts-expect-error + a, + b + ) + } -const DEFAULT_COMPRESSION_LEVEL = `mixed`; + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb) + } -function toUnixTimestamp(time) { - if (typeof time === `string` && String(+time) === time) return +time; + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err) + } else { + resolve(result) + } + } + } + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/ProxiedFS.ts - if (Number.isFinite(time)) { - if (time < 0) { - return Date.now() / 1000; - } else { - return time; - } - } // convert to 123.456 UNIX timestamp + class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints) + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))) + } - if ((0,external_util_namespaceObject.isDate)(time)) return time.getTime() / 1000; - throw new Error(`Invalid time`); -} + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()) + } -class ZipFS extends BasePortableFakeFS { - constructor(source, opts) { - super(); - this.lzSource = null; - this.listings = new Map(); - this.entries = new Map(); - /** - * A cache of indices mapped to file sources. - * Populated by `setFileSource` calls. - * Required for supporting read after write. - */ - - this.fileSources = new Map(); - this.fds = new Map(); - this.nextFd = 0; - this.ready = false; - this.readOnly = false; - this.libzip = opts.libzip; - const pathOptions = opts; - this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; - - if (source === null) { - source = Buffer.from([0x50, 0x4B, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); - } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode) + } - if (typeof source === `string`) { - const { - baseFs = new NodeFS() - } = pathOptions; - this.baseFs = baseFs; - this.path = source; - } else { - this.path = null; - this.baseFs = null; - } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode) + } - if (opts.stats) { - this.stats = opts.stats; - } else { - if (typeof source === `string`) { - try { - this.stats = this.baseFs.statSync(source); - } catch (error) { - if (error.code === `ENOENT` && pathOptions.create) { - this.stats = makeDefaultStats(); - } else { - throw error; + async opendirPromise(p, opts) { + return Object.assign( + await this.baseFs.opendirPromise(this.mapToBase(p), opts), + { + path: p, + } + ) } - } - } else { - this.stats = makeDefaultStats(); - } - } - const errPtr = this.libzip.malloc(4); + opendirSync(p, opts) { + return Object.assign( + this.baseFs.opendirSync(this.mapToBase(p), opts), + { + path: p, + } + ) + } - try { - let flags = 0; - if (typeof source === `string` && pathOptions.create) flags |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE; + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise( + fd, + buffer, + offset, + length, + position + ) + } - if (opts.readOnly) { - flags |= this.libzip.ZIP_RDONLY; - this.readOnly = true; - } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position) + } - if (typeof source === `string`) { - this.zip = this.libzip.open(npath.fromPortablePath(source), flags, errPtr); - } else { - const lzSource = this.allocateUnattachedSource(source); - - try { - this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); - this.lzSource = lzSource; - } catch (error) { - this.libzip.source.free(lzSource); - throw error; - } - } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset) + } else { + return await this.baseFs.writePromise( + fd, + buffer, + offset, + length, + position + ) + } + } - if (this.zip === 0) { - const error = this.libzip.struct.errorS(); - this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); - throw this.makeLibzipError(error); - } - } finally { - this.libzip.free(errPtr); - } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset) + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position) + } + } - this.listings.set(PortablePath.root, new Set()); - const entryCount = this.libzip.getNumEntries(this.zip, 0); + async closePromise(fd) { + return this.baseFs.closePromise(fd) + } - for (let t = 0; t < entryCount; ++t) { - const raw = this.libzip.getName(this.zip, t, 0); - if (ppath.isAbsolute(raw)) continue; - const p = ppath.resolve(PortablePath.root, raw); - this.registerEntry(p, t); // If the raw path is a directory, register it - // to prevent empty folder being skipped + closeSync(fd) { + this.baseFs.closeSync(fd) + } - if (raw.endsWith(`/`)) { - this.registerListing(p); - } - } + createReadStream(p, opts) { + return this.baseFs.createReadStream( + p !== null ? this.mapToBase(p) : p, + opts + ) + } - this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); - if (this.symlinkCount === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.ready = true; - } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream( + p !== null ? this.mapToBase(p) : p, + opts + ) + } - makeLibzipError(error) { - const errorCode = this.libzip.struct.errorCodeZip(error); - const strerror = this.libzip.error.strerror(error); - const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); // This error should never come up because of the file source cache + async realpathPromise(p) { + return this.mapFromBase( + await this.baseFs.realpathPromise(this.mapToBase(p)) + ) + } - if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); - return libzipError; - } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))) + } - getExtractHint(hints) { - for (const fileName of this.entries.keys()) { - const ext = this.pathUtils.extname(fileName); + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)) + } - if (hints.relevantExtensions.has(ext)) { - return true; - } - } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)) + } - return false; - } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode) + } - getAllFiles() { - return Array.from(this.entries.keys()); - } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode) + } - getRealPath() { - if (!this.path) throw new Error(`ZipFS don't have real paths when loaded from a buffer`); - return this.path; - } + async statPromise(p) { + return this.baseFs.statPromise(this.mapToBase(p)) + } - getBufferAndClose() { - this.prepareClose(); - if (!this.lzSource) throw new Error(`ZipFS was not created from a Buffer`); + statSync(p) { + return this.baseFs.statSync(this.mapToBase(p)) + } - try { - // Prevent close from cleaning up the source - this.libzip.source.keep(this.lzSource); // Close the zip archive + async lstatPromise(p) { + return this.baseFs.lstatPromise(this.mapToBase(p)) + } - if (this.libzip.close(this.zip) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); // Open the source for reading + lstatSync(p) { + return this.baseFs.lstatSync(this.mapToBase(p)) + } - if (this.libzip.source.open(this.lzSource) === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); // Move to the end of source + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask) + } - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); // Get the size of source + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask) + } - const size = this.libzip.source.tell(this.lzSource); - if (size === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); // Move to the start of source + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid) + } - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - const buffer = this.libzip.malloc(size); - if (!buffer) throw new Error(`Couldn't allocate enough memory`); + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid) + } - try { - const rc = this.libzip.source.read(this.lzSource, buffer, size); - if (rc === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource));else if (rc < size) throw new Error(`Incomplete read`);else if (rc > size) throw new Error(`Overread`); - const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); - return Buffer.from(memory); - } finally { - this.libzip.free(buffer); - } - } finally { - this.libzip.source.close(this.lzSource); - this.libzip.source.free(this.lzSource); - this.ready = false; - } - } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise( + this.mapToBase(oldP), + this.mapToBase(newP) + ) + } - prepareClose() { - if (!this.ready) throw EBUSY(`archive closed, close`); - unwatchAllFiles(this); - } + renameSync(oldP, newP) { + return this.baseFs.renameSync( + this.mapToBase(oldP), + this.mapToBase(newP) + ) + } - saveAndClose() { - if (!this.path || !this.baseFs) throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); - this.prepareClose(); + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise( + this.mapToBase(sourceP), + this.mapToBase(destP), + flags + ) + } - if (this.readOnly) { - this.discardAndClose(); - return; - } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync( + this.mapToBase(sourceP), + this.mapToBase(destP), + flags + ) + } - const previousMod = this.baseFs.existsSync(this.path) ? this.baseFs.statSync(this.path).mode & 0o777 : null; - const rc = this.libzip.close(this.zip); - if (rc === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); // this.libzip overrides the chmod when writing the archive, which is a weird - // behavior I don't totally understand (plus the umask seems bogus in some - // weird cases - maybe related to emscripten?) - // - // See also https://github.com/nih-at/libzip/issues/77 - - if (previousMod === null) this.baseFs.chmodSync(this.path, this.stats.mode);else if (previousMod !== (this.baseFs.statSync(this.path).mode & 0o777)) this.baseFs.chmodSync(this.path, previousMod); - this.ready = false; - } - - discardAndClose() { - this.prepareClose(); - this.libzip.discard(this.zip); - this.ready = false; - } - - resolve(p) { - return ppath.resolve(PortablePath.root, p); - } - - async openPromise(p, flags, mode) { - return this.openSync(p, flags, mode); - } - - openSync(p, flags, mode) { - const fd = this.nextFd++; - this.fds.set(fd, { - cursor: 0, - p - }); - return fd; - } - - hasOpenFileHandles() { - return !!this.fds.size; - } - - async opendirPromise(p, opts) { - return this.opendirSync(p, opts); - } - - opendirSync(p, opts = {}) { - const resolvedP = this.resolveFilename(`opendir '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`opendir '${p}'`); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) throw ENOTDIR(`opendir '${p}'`); - const entries = [...directoryListing]; - const fd = this.openSync(resolvedP, `r`); - - const onClose = () => { - this.closeSync(fd); - }; - - return opendir(this, resolvedP, entries, { - onClose - }); - } - - async readPromise(fd, buffer, offset, length, position) { - return this.readSync(fd, buffer, offset, length, position); - } - - readSync(fd, buffer, offset = 0, length = 0, position = -1) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) throw EBADF(`read`); - let realPosition; - if (position === -1 || position === null) realPosition = entry.cursor;else realPosition = position; - const source = this.readFileSync(entry.p); - source.copy(buffer, offset, realPosition, realPosition + length); - const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); - if (position === -1 || position === null) entry.cursor += bytesRead; - return bytesRead; - } - - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.writeSync(fd, buffer, position); - } else { - return this.writeSync(fd, buffer, offset, length, position); - } - } - - writeSync(fd, buffer, offset, length, position) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) throw EBADF(`read`); - throw new Error(`Unimplemented`); - } - - async closePromise(fd) { - return this.closeSync(fd); - } - - closeSync(fd) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) throw EBADF(`read`); - this.fds.delete(fd); - } - - createReadStream(p, { - encoding - } = {}) { - if (p === null) throw new Error(`Unimplemented`); - const fd = this.openSync(p, `r`); - const stream = Object.assign(new external_stream_namespaceObject.PassThrough({ - emitClose: true, - autoDestroy: true, - destroy: (error, callback) => { - clearImmediate(immediate); - this.closeSync(fd); - callback(error); - } - }), { - close() { - stream.destroy(); - }, + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise( + this.fsMapToBase(p), + content, + opts + ) + } - bytesRead: 0, - path: p - }); - const immediate = setImmediate(async () => { - try { - const data = await this.readFilePromise(p, encoding); - stream.bytesRead = data.length; - stream.end(data); - } catch (error) { - stream.destroy(error); - } - }); - return stream; - } - - createWriteStream(p, { - encoding - } = {}) { - if (this.readOnly) throw EROFS(`open '${p}'`); - if (p === null) throw new Error(`Unimplemented`); - const chunks = []; - const fd = this.openSync(p, `w`); - const stream = Object.assign(new external_stream_namespaceObject.PassThrough({ - autoDestroy: true, - emitClose: true, - destroy: (error, callback) => { - try { - if (error) { - callback(error); - } else { - this.writeFileSync(p, Buffer.concat(chunks), encoding); - callback(null); + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync( + this.fsMapToBase(p), + content, + opts + ) } - } catch (err) { - callback(err); - } finally { - this.closeSync(fd); - } - } - }), { - bytesWritten: 0, - path: p, - close() { - stream.destroy(); - } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise( + this.fsMapToBase(p), + content, + opts + ) + } - }); - stream.on(`data`, chunk => { - const chunkBuffer = Buffer.from(chunk); - stream.bytesWritten += chunkBuffer.length; - chunks.push(chunkBuffer); - }); - return stream; - } - - async realpathPromise(p) { - return this.realpathSync(p); - } - - realpathSync(p) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`lstat '${p}'`); - return resolvedP; - } - - async existsPromise(p) { - return this.existsSync(p); - } - - existsSync(p) { - if (!this.ready) throw EBUSY(`archive closed, existsSync '${p}'`); - - if (this.symlinkCount === 0) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return this.entries.has(resolvedP) || this.listings.has(resolvedP); - } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts) + } - let resolvedP; + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)) + } - try { - resolvedP = this.resolveFilename(`stat '${p}'`, p); - } catch (error) { - return false; - } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)) + } - return this.entries.has(resolvedP) || this.listings.has(resolvedP); - } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime) + } - async accessPromise(p, mode) { - return this.accessSync(p, mode); - } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime) + } - accessSync(p, mode = external_fs_.constants.F_OK) { - const resolvedP = this.resolveFilename(`access '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`access '${p}'`); + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts) + } - if (this.readOnly && mode & external_fs_.constants.W_OK) { - throw EROFS(`access '${p}'`); - } - } - - async statPromise(p) { - return this.statSync(p); - } - - statSync(p) { - const resolvedP = this.resolveFilename(`stat '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`stat '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`stat '${p}'`); - return this.statImpl(`stat '${p}'`, resolvedP); - } - - async lstatPromise(p) { - return this.lstatSync(p); - } - - lstatSync(p) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`lstat '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`lstat '${p}'`); - return this.statImpl(`lstat '${p}'`, resolvedP); - } - - statImpl(reason, p) { - const entry = this.entries.get(p); // File, or explicit directory - - if (typeof entry !== `undefined`) { - const stat = this.libzip.struct.statS(); - const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); - if (rc === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - const uid = this.stats.uid; - const gid = this.stats.gid; - const size = this.libzip.struct.statSize(stat) >>> 0; - const blksize = 512; - const blocks = Math.ceil(size / blksize); - const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1000; - const atimeMs = mtimeMs; - const birthtimeMs = mtimeMs; - const ctimeMs = mtimeMs; - const atime = new Date(atimeMs); - const birthtime = new Date(birthtimeMs); - const ctime = new Date(ctimeMs); - const mtime = new Date(mtimeMs); - const type = this.listings.has(p) ? constants_S_IFDIR : this.isSymbolicLink(entry) ? constants_S_IFLNK : constants_S_IFREG; - const defaultMode = type === constants_S_IFDIR ? 0o755 : 0o644; - const mode = type | this.getUnixMode(entry, defaultMode) & 0o777; - return Object.assign(new StatEntry(), { - uid, - gid, - size, - blksize, - blocks, - atime, - birthtime, - ctime, - mtime, - atimeMs, - birthtimeMs, - ctimeMs, - mtimeMs, - mode - }); - } // Implicit directory - - - if (this.listings.has(p)) { - const uid = this.stats.uid; - const gid = this.stats.gid; - const size = 0; - const blksize = 512; - const blocks = 0; - const atimeMs = this.stats.mtimeMs; - const birthtimeMs = this.stats.mtimeMs; - const ctimeMs = this.stats.mtimeMs; - const mtimeMs = this.stats.mtimeMs; - const atime = new Date(atimeMs); - const birthtime = new Date(birthtimeMs); - const ctime = new Date(ctimeMs); - const mtime = new Date(mtimeMs); - const mode = constants_S_IFDIR | 0o755; - return Object.assign(new StatEntry(), { - uid, - gid, - size, - blksize, - blocks, - atime, - birthtime, - ctime, - mtime, - atimeMs, - birthtimeMs, - ctimeMs, - mtimeMs, - mode - }); - } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts) + } - throw new Error(`Unreachable`); - } - - getUnixMode(index, defaultMode) { - const rc = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); - if (rc === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; - if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return defaultMode; - return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; - } - - registerListing(p) { - let listing = this.listings.get(p); - if (listing) return listing; - const parentListing = this.registerListing(ppath.dirname(p)); - listing = new Set(); - parentListing.add(ppath.basename(p)); - this.listings.set(p, listing); - return listing; - } - - registerEntry(p, index) { - const parentListing = this.registerListing(ppath.dirname(p)); - parentListing.add(ppath.basename(p)); - this.entries.set(p, index); - } - - unregisterListing(p) { - this.listings.delete(p); - const parentListing = this.listings.get(ppath.dirname(p)); - parentListing === null || parentListing === void 0 ? void 0 : parentListing.delete(ppath.basename(p)); - } - - unregisterEntry(p) { - this.unregisterListing(p); - const entry = this.entries.get(p); - this.entries.delete(p); - if (typeof entry === `undefined`) return; - this.fileSources.delete(entry); - - if (this.isSymbolicLink(entry)) { - this.symlinkCount--; - } - } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts) + } - deleteEntry(p, index) { - this.unregisterEntry(p); - const rc = this.libzip.delete(this.zip, index); + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts) + } - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - - resolveFilename(reason, p, resolveLastComponent = true) { - if (!this.ready) throw EBUSY(`archive closed, ${reason}`); - let resolvedP = ppath.resolve(PortablePath.root, p); - if (resolvedP === `/`) return PortablePath.root; - const fileIndex = this.entries.get(resolvedP); - - if (resolveLastComponent && fileIndex !== undefined) { - if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { - const target = this.getFileSource(fileIndex).toString(); - return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true); - } else { - return resolvedP; - } - } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise( + this.mapToBase(existingP), + this.mapToBase(newP) + ) + } - while (true) { - const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true); - const isDir = this.listings.has(parentP); - const doesExist = this.entries.has(parentP); - if (!isDir && !doesExist) throw ENOENT(reason); - if (!isDir) throw ENOTDIR(reason); - resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); - if (!resolveLastComponent || this.symlinkCount === 0) break; - const index = this.libzip.name.locate(this.zip, resolvedP.slice(1)); - if (index === -1) break; - - if (this.isSymbolicLink(index)) { - const target = this.getFileSource(index).toString(); - resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); - } else { - break; - } - } + linkSync(existingP, newP) { + return this.baseFs.linkSync( + this.mapToBase(existingP), + this.mapToBase(newP) + ) + } - return resolvedP; - } - - allocateBuffer(content) { - if (!Buffer.isBuffer(content)) content = Buffer.from(content); - const buffer = this.libzip.malloc(content.byteLength); - if (!buffer) throw new Error(`Couldn't allocate enough memory`); // Copy the file into the Emscripten heap - - const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); - heap.set(content); - return { - buffer, - byteLength: content.byteLength - }; - } - - allocateUnattachedSource(content) { - const error = this.libzip.struct.errorS(); - const { - buffer, - byteLength - } = this.allocateBuffer(content); - const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, true, error); - - if (source === 0) { - this.libzip.free(error); - throw this.makeLibzipError(error); - } + async symlinkPromise(target, p, type) { + return this.baseFs.symlinkPromise( + this.mapToBase(target), + this.mapToBase(p), + type + ) + } - return source; - } + symlinkSync(target, p, type) { + return this.baseFs.symlinkSync( + this.mapToBase(target), + this.mapToBase(p), + type + ) + } - allocateSource(content) { - const { - buffer, - byteLength - } = this.allocateBuffer(content); - const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, true); + async readFilePromise(p, encoding) { + // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) + if (encoding === `utf8`) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding) + } else { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding) + } + } - if (source === 0) { - this.libzip.free(buffer); - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } + readFileSync(p, encoding) { + // This weird condition is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) + if (encoding === `utf8`) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding) + } else { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding) + } + } - return source; - } + async readdirPromise(p, { withFileTypes } = {}) { + return this.baseFs.readdirPromise(this.mapToBase(p), { + withFileTypes: withFileTypes, + }) + } - setFileSource(p, content) { - const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); - const target = ppath.relative(PortablePath.root, p); - const lzSource = this.allocateSource(content); + readdirSync(p, { withFileTypes } = {}) { + return this.baseFs.readdirSync(this.mapToBase(p), { + withFileTypes: withFileTypes, + }) + } - try { - const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); - if (newIndex === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); + async readlinkPromise(p) { + return this.mapFromBase( + await this.baseFs.readlinkPromise(this.mapToBase(p)) + ) + } - if (this.level !== `mixed`) { - // Use store for level 0, and deflate for 1..9 - let method; - if (this.level === 0) method = this.libzip.ZIP_CM_STORE;else method = this.libzip.ZIP_CM_DEFLATE; - const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, method, this.level); + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))) + } - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len) + } - this.fileSources.set(newIndex, buffer); - return newIndex; - } catch (error) { - this.libzip.source.free(lzSource); - throw error; - } - } - - isSymbolicLink(index) { - if (this.symlinkCount === 0) return false; - const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); - if (attrs === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; - if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return false; - const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16; - return (attributes & constants_S_IFMT) === constants_S_IFLNK; - } - - getFileSource(index, opts = { - asyncDecompress: false - }) { - const cachedFileSource = this.fileSources.get(index); - if (typeof cachedFileSource !== `undefined`) return cachedFileSource; - const stat = this.libzip.struct.statS(); - const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); - if (rc === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - const size = this.libzip.struct.statCompSize(stat); - const compressionMethod = this.libzip.struct.statCompMethod(stat); - const buffer = this.libzip.malloc(size); - - try { - const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); - if (file === 0) throw this.makeLibzipError(this.libzip.getError(this.zip)); - - try { - const rc = this.libzip.fread(file, buffer, size, 0); - if (rc === -1) throw this.makeLibzipError(this.libzip.file.getError(file));else if (rc < size) throw new Error(`Incomplete read`);else if (rc > size) throw new Error(`Overread`); - const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); - const data = Buffer.from(memory); - - if (compressionMethod === 0) { - this.fileSources.set(index, data); - return data; - } else if (opts.asyncDecompress) { - return new Promise((resolve, reject) => { - external_zlib_default().inflateRaw(data, (error, result) => { - if (error) { - reject(error); - } else { - this.fileSources.set(index, result); - resolve(result); - } - }); - }); - } else { - const decompressedData = external_zlib_default().inflateRawSync(data); - this.fileSources.set(index, decompressedData); - return decompressedData; - } - } finally { - this.libzip.fclose(file); - } - } finally { - this.libzip.free(buffer); - } - } - - async chmodPromise(p, mask) { - return this.chmodSync(p, mask); - } - - chmodSync(p, mask) { - if (this.readOnly) throw EROFS(`chmod '${p}'`); // We don't allow to make the extracted entries group-writable + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len) + } - mask &= 0o755; - const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); - const entry = this.entries.get(resolvedP); - if (typeof entry === `undefined`) throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); - const oldMod = this.getUnixMode(entry, constants_S_IFREG | 0o000); - const newMod = oldMod & ~0o777 | mask; - const rc = this.libzip.file.setExternalAttributes(this.zip, entry, 0, 0, this.libzip.ZIP_OPSYS_UNIX, newMod << 16); + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), // @ts-expect-error + a, + b + ) + } - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - - async chownPromise(p, uid, gid) { - return this.chownSync(p, uid, gid); - } - - chownSync(p, uid, gid) { - throw new Error(`Unimplemented`); - } - - async renamePromise(oldP, newP) { - return this.renameSync(oldP, newP); - } - - renameSync(oldP, newP) { - throw new Error(`Unimplemented`); - } - - async copyFilePromise(sourceP, destP, flags) { - const { - indexSource, - indexDest, - resolvedDestP - } = this.prepareCopyFile(sourceP, destP, flags); - const source = await this.getFileSource(indexSource, { - asyncDecompress: true - }); - const newIndex = this.setFileSource(resolvedDestP, source); - - if (newIndex !== indexDest) { - this.registerEntry(resolvedDestP, newIndex); - } - } - - copyFileSync(sourceP, destP, flags = 0) { - const { - indexSource, - indexDest, - resolvedDestP - } = this.prepareCopyFile(sourceP, destP, flags); - const source = this.getFileSource(indexSource); - const newIndex = this.setFileSource(resolvedDestP, source); - - if (newIndex !== indexDest) { - this.registerEntry(resolvedDestP, newIndex); - } - } - - prepareCopyFile(sourceP, destP, flags = 0) { - if (this.readOnly) throw EROFS(`copyfile '${sourceP} -> '${destP}'`); - if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); - const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); - const indexSource = this.entries.get(resolvedSourceP); - if (typeof indexSource === `undefined`) throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); - const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); - const indexDest = this.entries.get(resolvedDestP); - if ((flags & (external_fs_.constants.COPYFILE_EXCL | external_fs_.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); - return { - indexSource, - resolvedDestP, - indexDest - }; - } - - async appendFilePromise(p, content, opts) { - if (this.readOnly) throw EROFS(`open '${p}'`); - if (typeof opts === `undefined`) opts = { - flag: `a` - };else if (typeof opts === `string`) opts = { - flag: `a`, - encoding: opts - };else if (typeof opts.flag === `undefined`) opts = { - flag: `a`, - ...opts - }; - return this.writeFilePromise(p, content, opts); - } - - appendFileSync(p, content, opts = {}) { - if (this.readOnly) throw EROFS(`open '${p}'`); - if (typeof opts === `undefined`) opts = { - flag: `a` - };else if (typeof opts === `string`) opts = { - flag: `a`, - encoding: opts - };else if (typeof opts.flag === `undefined`) opts = { - flag: `a`, - ...opts - }; - return this.writeFileSync(p, content, opts); - } - - async writeFilePromise(p, content, opts) { - const { - encoding, - index, - resolvedP - } = this.prepareWriteFile(p, opts); - if (index !== undefined && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) content = Buffer.concat([await this.getFileSource(index, { - asyncDecompress: true - }), Buffer.from(content)]); - if (encoding !== null) content = content.toString(encoding); - const newIndex = this.setFileSource(resolvedP, content); - - if (newIndex !== index) { - this.registerEntry(resolvedP, newIndex); - } - } - - writeFileSync(p, content, opts) { - const { - encoding, - index, - resolvedP - } = this.prepareWriteFile(p, opts); - if (index !== undefined && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); - if (encoding !== null) content = content.toString(encoding); - const newIndex = this.setFileSource(resolvedP, content); - - if (newIndex !== index) { - this.registerEntry(resolvedP, newIndex); - } - } - - prepareWriteFile(p, opts) { - if (typeof p !== `string`) throw EBADF(`read`); - if (this.readOnly) throw EROFS(`open '${p}'`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (this.listings.has(resolvedP)) throw EISDIR(`open '${p}'`); - let encoding = null; - if (typeof opts === `string`) encoding = opts;else if (typeof opts === `object` && opts.encoding) encoding = opts.encoding; - const index = this.entries.get(resolvedP); - return { - encoding, - resolvedP, - index - }; - } - - async unlinkPromise(p) { - return this.unlinkSync(p); - } - - unlinkSync(p) { - if (this.readOnly) throw EROFS(`unlink '${p}'`); - const resolvedP = this.resolveFilename(`unlink '${p}'`, p); - if (this.listings.has(resolvedP)) throw EISDIR(`unlink '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) throw EINVAL(`unlink '${p}'`); - this.deleteEntry(resolvedP, index); - } - - async utimesPromise(p, atime, mtime) { - return this.utimesSync(p, atime, mtime); - } - - utimesSync(p, atime, mtime) { - if (this.readOnly) throw EROFS(`utimes '${p}'`); - const resolvedP = this.resolveFilename(`utimes '${p}'`, p); - this.utimesImpl(resolvedP, mtime); - } - - async lutimesPromise(p, atime, mtime) { - return this.lutimesSync(p, atime, mtime); - } - - lutimesSync(p, atime, mtime) { - if (this.readOnly) throw EROFS(`lutimes '${p}'`); - const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); - this.utimesImpl(resolvedP, mtime); - } - - utimesImpl(resolvedP, mtime) { - if (this.listings.has(resolvedP)) if (!this.entries.has(resolvedP)) this.hydrateDirectory(resolvedP); - const entry = this.entries.get(resolvedP); - if (entry === undefined) throw new Error(`Unreachable`); - const rc = this.libzip.file.setMtime(this.zip, entry, 0, toUnixTimestamp(mtime), 0); - - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - - async mkdirPromise(p, opts) { - return this.mkdirSync(p, opts); - } - - mkdirSync(p, { - mode = 0o755, - recursive = false - } = {}) { - if (recursive) { - this.mkdirpSync(p, { - chmod: mode - }); - return; - } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), // @ts-expect-error + a, + b + ) + } - if (this.readOnly) throw EROFS(`mkdir '${p}'`); - const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); - if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) throw EEXIST(`mkdir '${p}'`); - this.hydrateDirectory(resolvedP); - this.chmodSync(resolvedP, mode); - } - - async rmdirPromise(p, opts) { - return this.rmdirSync(p, opts); - } - - rmdirSync(p, { - recursive = false - } = {}) { - if (this.readOnly) throw EROFS(`rmdir '${p}'`); - - if (recursive) { - this.removeSync(p); - return; - } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb) + } - const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) throw ENOTDIR(`rmdir '${p}'`); - if (directoryListing.size > 0) throw ENOTEMPTY(`rmdir '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) throw EINVAL(`rmdir '${p}'`); - this.deleteEntry(p, index); - } - - hydrateDirectory(resolvedP) { - const index = this.libzip.dir.add(this.zip, ppath.relative(PortablePath.root, resolvedP)); - if (index === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.registerListing(resolvedP); - this.registerEntry(resolvedP, index); - return index; - } - - async linkPromise(existingP, newP) { - return this.linkSync(existingP, newP); - } - - linkSync(existingP, newP) { - // Zip archives don't support hard links: - // https://stackoverflow.com/questions/8859616/are-hard-links-possible-within-a-zip-archive - throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); - } - - async symlinkPromise(target, p) { - return this.symlinkSync(target, p); - } - - symlinkSync(target, p) { - if (this.readOnly) throw EROFS(`symlink '${target}' -> '${p}'`); - const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); - if (this.listings.has(resolvedP)) throw EISDIR(`symlink '${target}' -> '${p}'`); - if (this.entries.has(resolvedP)) throw EEXIST(`symlink '${target}' -> '${p}'`); - const index = this.setFileSource(resolvedP, target); - this.registerEntry(resolvedP, index); - const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (constants_S_IFLNK | 0o777) << 16); - if (rc === -1) throw this.makeLibzipError(this.libzip.getError(this.zip)); - this.symlinkCount += 1; - } - - async readFilePromise(p, encoding) { - // This is messed up regarding the TS signatures - if (typeof encoding === `object`) // @ts-expect-error - encoding = encoding ? encoding.encoding : undefined; - const data = await this.readFileBuffer(p, { - asyncDecompress: true - }); - return encoding ? data.toString(encoding) : data; - } - - readFileSync(p, encoding) { - // This is messed up regarding the TS signatures - if (typeof encoding === `object`) // @ts-expect-error - encoding = encoding ? encoding.encoding : undefined; - const data = this.readFileBuffer(p); - return encoding ? data.toString(encoding) : data; - } - - readFileBuffer(p, opts = { - asyncDecompress: false - }) { - if (typeof p !== `string`) throw EBADF(`read`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`open '${p}'`); // Ensures that the last component is a directory, if the user said so (even if it is we'll throw right after with EISDIR anyway) - - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`open '${p}'`); - if (this.listings.has(resolvedP)) throw EISDIR(`read`); - const entry = this.entries.get(resolvedP); - if (entry === undefined) throw new Error(`Unreachable`); - return this.getFileSource(entry, opts); - } - - async readdirPromise(p, { - withFileTypes - } = {}) { - return this.readdirSync(p, { - withFileTypes: withFileTypes - }); - } - - readdirSync(p, { - withFileTypes - } = {}) { - const resolvedP = this.resolveFilename(`scandir '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`scandir '${p}'`); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) throw ENOTDIR(`scandir '${p}'`); - const entries = [...directoryListing]; - if (!withFileTypes) return entries; - return entries.map(name => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name - }); - }); - } - - async readlinkPromise(p) { - const entry = this.prepareReadlink(p); - return (await this.getFileSource(entry, { - asyncDecompress: true - })).toString(); - } - - readlinkSync(p) { - const entry = this.prepareReadlink(p); - return this.getFileSource(entry).toString(); - } - - prepareReadlink(p) { - const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) throw ENOENT(`readlink '${p}'`); // Ensure that the last component is a directory (if it is we'll throw right after with EISDIR anyway) - - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) throw ENOTDIR(`open '${p}'`); - if (this.listings.has(resolvedP)) throw EINVAL(`readlink '${p}'`); - const entry = this.entries.get(resolvedP); - if (entry === undefined) throw new Error(`Unreachable`); - if (!this.isSymbolicLink(entry)) throw EINVAL(`readlink '${p}'`); - return entry; - } - - async truncatePromise(p, len = 0) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) throw EINVAL(`open '${p}'`); - const source = await this.getFileSource(index, { - asyncDecompress: true - }); - const truncated = Buffer.alloc(len, 0x00); - source.copy(truncated); - return await this.writeFilePromise(p, truncated); - } - - truncateSync(p, len = 0) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) throw EINVAL(`open '${p}'`); - const source = this.getFileSource(index); - const truncated = Buffer.alloc(len, 0x00); - source.copy(truncated); - return this.writeFileSync(p, truncated); - } - - watch(p, a, b) { - let persistent; - - switch (typeof a) { - case `function`: - case `string`: - case `undefined`: - { - persistent = true; + fsMapToBase(p) { + if (typeof p === `number`) { + return p + } else { + return this.mapToBase(p) + } + } } - break; + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/VirtualFS.ts + + const NUMBER_REGEXP = /^[0-9]+$/ // $0: full path + // $1: virtual folder + // $2: virtual segment + // $3: hash + // $4: depth + // $5: subpath + + const VIRTUAL_REGEXP = + /^(\/(?:[^/]+\/)*?\$\$virtual)((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/ + const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/ + class VirtualFS extends ProxiedFS { + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath) + this.baseFs = baseFs + } - default: - { - ({ - persistent = true - } = a); - } - break; - } + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `$$virtual`) + throw new Error( + `Assertion failed: Virtual folders must be named "$$virtual"` + ) + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error( + `Assertion failed: Virtual components must be ended by an hexadecimal hash` + ) // Obtains the relative distance between the virtual path and its actual target + + const target = ppath.relative(ppath.dirname(base), to) + const segments = target.split(`/`) // Counts how many levels we need to go back to start applying the rest of the path + + let depth = 0 + + while (depth < segments.length && segments[depth] === `..`) + depth += 1 + + const finalSegments = segments.slice(depth) + const fullVirtualPath = ppath.join( + base, + component, + String(depth), + ...finalSegments + ) + return fullVirtualPath + } - if (!persistent) return { - on: () => {}, - close: () => {} - }; - const interval = setInterval(() => {}, 24 * 60 * 60 * 1000); - return { - on: () => {}, - close: () => { - clearInterval(interval); - } - }; - } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP) + if (!match || (!match[3] && match[5])) return p + const target = ppath.dirname(match[1]) + if (!match[3] || !match[4]) return target + const isnum = NUMBER_REGEXP.test(match[4]) + if (!isnum) return p + const depth = Number(match[4]) + const backstep = `../`.repeat(depth) + const subpath = match[5] || `.` + return VirtualFS.resolveVirtual( + ppath.join(target, backstep, subpath) + ) + } - watchFile(p, a, b) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - return watchFile(this, resolvedP, a, b); - } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints) + } - unwatchFile(p, cb) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - return unwatchFile(this, resolvedP, cb); - } + getRealPath() { + return this.baseFs.getRealPath() + } -} -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipOpenFS.ts - - - - - - -const ZIP_FD = 0x80000000; -const FILE_PARTS_REGEX = /.*?(? { - return await this.baseFs.openPromise(p, flags, mode); - }, async (zipFs, { - subPath - }) => { - return this.remapFd(zipFs, await zipFs.openPromise(subPath, flags, mode)); - }); - } - - openSync(p, flags, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.openSync(p, flags, mode); - }, (zipFs, { - subPath - }) => { - return this.remapFd(zipFs, zipFs.openSync(subPath, flags, mode)); - }); - } - - async opendirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.opendirPromise(p, opts); - }, async (zipFs, { - subPath - }) => { - return await zipFs.opendirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - - opendirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.opendirSync(p, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.opendirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - - async readPromise(fd, buffer, offset, length, position) { - if ((fd & ZIP_FD) === 0) return await this.baseFs.readPromise(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, read`), { - code: `EBADF` - }); - const [zipFs, realFd] = entry; - return await zipFs.readPromise(realFd, buffer, offset, length, position); - } - - readSync(fd, buffer, offset, length, position) { - if ((fd & ZIP_FD) === 0) return this.baseFs.readSync(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, read`), { - code: `EBADF` - }); - const [zipFs, realFd] = entry; - return zipFs.readSync(realFd, buffer, offset, length, position); - } - - async writePromise(fd, buffer, offset, length, position) { - if ((fd & ZIP_FD) === 0) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } + throwIfClosed() { + if (this.closed) { + throw ERR_DIR_CLOSED() + } + } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, write`), { - code: `EBADF` - }); - const [zipFs, realFd] = entry; + async *[Symbol.asyncIterator]() { + try { + let dirent // eslint-disable-next-line no-cond-assign - if (typeof buffer === `string`) { - return await zipFs.writePromise(realFd, buffer, offset); - } else { - return await zipFs.writePromise(realFd, buffer, offset, length, position); - } - } - - writeSync(fd, buffer, offset, length, position) { - if ((fd & ZIP_FD) === 0) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } + while ((dirent = await this.read()) !== null) { + yield dirent + } + } finally { + await this.close() + } + } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, write`), { - code: `EBADF` - }); - const [zipFs, realFd] = entry; + read(cb) { + const dirent = this.readSync() + if (typeof cb !== `undefined`) return cb(null, dirent) + return Promise.resolve(dirent) + } - if (typeof buffer === `string`) { - return zipFs.writeSync(realFd, buffer, offset); - } else { - return zipFs.writeSync(realFd, buffer, offset, length, position); - } - } - - async closePromise(fd) { - if ((fd & ZIP_FD) === 0) return await this.baseFs.closePromise(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, close`), { - code: `EBADF` - }); - this.fdMap.delete(fd); - const [zipFs, realFd] = entry; - return await zipFs.closePromise(realFd); - } - - closeSync(fd) { - if ((fd & ZIP_FD) === 0) return this.baseFs.closeSync(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) throw Object.assign(new Error(`EBADF: bad file descriptor, close`), { - code: `EBADF` - }); - this.fdMap.delete(fd); - const [zipFs, realFd] = entry; - return zipFs.closeSync(realFd); - } - - createReadStream(p, opts) { - if (p === null) return this.baseFs.createReadStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createReadStream(p, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.createReadStream(subPath, opts); - }); - } - - createWriteStream(p, opts) { - if (p === null) return this.baseFs.createWriteStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createWriteStream(p, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.createWriteStream(subPath, opts); - }); - } - - async realpathPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.realpathPromise(p); - }, async (zipFs, { - archivePath, - subPath - }) => { - let realArchivePath = this.realPaths.get(archivePath); - - if (typeof realArchivePath === `undefined`) { - realArchivePath = await this.baseFs.realpathPromise(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } + readSync() { + this.throwIfClosed() + return this.nextDirent() + } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await zipFs.realpathPromise(subPath))); - }); - } - - realpathSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.realpathSync(p); - }, (zipFs, { - archivePath, - subPath - }) => { - let realArchivePath = this.realPaths.get(archivePath); - - if (typeof realArchivePath === `undefined`) { - realArchivePath = this.baseFs.realpathSync(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } + close(cb) { + this.closeSync() + if (typeof cb !== `undefined`) return cb(null) + return Promise.resolve() + } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, zipFs.realpathSync(subPath))); - }); - } - - async existsPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.existsPromise(p); - }, async (zipFs, { - subPath - }) => { - return await zipFs.existsPromise(subPath); - }); - } - - existsSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.existsSync(p); - }, (zipFs, { - subPath - }) => { - return zipFs.existsSync(subPath); - }); - } - - async accessPromise(p, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.accessPromise(p, mode); - }, async (zipFs, { - subPath - }) => { - return await zipFs.accessPromise(subPath, mode); - }); - } - - accessSync(p, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.accessSync(p, mode); - }, (zipFs, { - subPath - }) => { - return zipFs.accessSync(subPath, mode); - }); - } - - async statPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.statPromise(p); - }, async (zipFs, { - subPath - }) => { - return await zipFs.statPromise(subPath); - }); - } - - statSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.statSync(p); - }, (zipFs, { - subPath - }) => { - return zipFs.statSync(subPath); - }); - } - - async lstatPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lstatPromise(p); - }, async (zipFs, { - subPath - }) => { - return await zipFs.lstatPromise(subPath); - }); - } - - lstatSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.lstatSync(p); - }, (zipFs, { - subPath - }) => { - return zipFs.lstatSync(subPath); - }); - } - - async chmodPromise(p, mask) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chmodPromise(p, mask); - }, async (zipFs, { - subPath - }) => { - return await zipFs.chmodPromise(subPath, mask); - }); - } - - chmodSync(p, mask) { - return this.makeCallSync(p, () => { - return this.baseFs.chmodSync(p, mask); - }, (zipFs, { - subPath - }) => { - return zipFs.chmodSync(subPath, mask); - }); - } - - async chownPromise(p, uid, gid) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chownPromise(p, uid, gid); - }, async (zipFs, { - subPath - }) => { - return await zipFs.chownPromise(subPath, uid, gid); - }); - } - - chownSync(p, uid, gid) { - return this.makeCallSync(p, () => { - return this.baseFs.chownSync(p, uid, gid); - }, (zipFs, { - subPath - }) => { - return zipFs.chownSync(subPath, uid, gid); - }); - } - - async renamePromise(oldP, newP) { - return await this.makeCallPromise(oldP, async () => { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.renamePromise(oldP, newP); - }, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { - code: `EEXDEV` - }); - }); - }, async (zipFsO, { - subPath: subPathO - }) => { - return await this.makeCallPromise(newP, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { - code: `EEXDEV` - }); - }, async (zipFsN, { - subPath: subPathN - }) => { - if (zipFsO !== zipFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { - code: `EEXDEV` - }); - } else { - return await zipFsO.renamePromise(subPathO, subPathN); - } - }); - }); - } - - renameSync(oldP, newP) { - return this.makeCallSync(oldP, () => { - return this.makeCallSync(newP, () => { - return this.baseFs.renameSync(oldP, newP); - }, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { - code: `EEXDEV` - }); - }); - }, (zipFsO, { - subPath: subPathO - }) => { - return this.makeCallSync(newP, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { - code: `EEXDEV` - }); - }, (zipFsN, { - subPath: subPathN - }) => { - if (zipFsO !== zipFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { - code: `EEXDEV` - }); - } else { - return zipFsO.renameSync(subPathO, subPathN); - } - }); - }); - } - - async copyFilePromise(sourceP, destP, flags = 0) { - const fallback = async (sourceFs, sourceP, destFs, destP) => { - if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'`), { - code: `EXDEV` - }); - if (flags & external_fs_.constants.COPYFILE_EXCL && (await this.existsPromise(sourceP))) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'`), { - code: `EEXIST` - }); - let content; - - try { - content = await sourceFs.readFilePromise(sourceP); - } catch (error) { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'`), { - code: `EINVAL` - }); - } + closeSync() { + var _a, _b - await destFs.writeFilePromise(destP, content); - }; - - return await this.makeCallPromise(sourceP, async () => { - return await this.makeCallPromise(destP, async () => { - return await this.baseFs.copyFilePromise(sourceP, destP, flags); - }, async (zipFsD, { - subPath: subPathD - }) => { - return await fallback(this.baseFs, sourceP, zipFsD, subPathD); - }); - }, async (zipFsS, { - subPath: subPathS - }) => { - return await this.makeCallPromise(destP, async () => { - return await fallback(zipFsS, subPathS, this.baseFs, destP); - }, async (zipFsD, { - subPath: subPathD - }) => { - if (zipFsS !== zipFsD) { - return await fallback(zipFsS, subPathS, zipFsD, subPathD); - } else { - return await zipFsS.copyFilePromise(subPathS, subPathD, flags); + this.throwIfClosed() + ;(_b = (_a = this.opts).onClose) === null || _b === void 0 + ? void 0 + : _b.call(_a) + this.closed = true + } } - }); - }); - } - - copyFileSync(sourceP, destP, flags = 0) { - const fallback = (sourceFs, sourceP, destFs, destP) => { - if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'`), { - code: `EXDEV` - }); - if (flags & external_fs_.constants.COPYFILE_EXCL && this.existsSync(sourceP)) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'`), { - code: `EEXIST` - }); - let content; - - try { - content = sourceFs.readFileSync(sourceP); - } catch (error) { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'`), { - code: `EINVAL` - }); - } + function opendir(fakeFs, path, entries, opts) { + const nextDirent = () => { + const filename = entries.shift() + if (typeof filename === `undefined`) return null + return Object.assign( + fakeFs.statSync(fakeFs.pathUtils.join(path, filename)), + { + name: filename, + } + ) + } - destFs.writeFileSync(destP, content); - }; - - return this.makeCallSync(sourceP, () => { - return this.makeCallSync(destP, () => { - return this.baseFs.copyFileSync(sourceP, destP, flags); - }, (zipFsD, { - subPath: subPathD - }) => { - return fallback(this.baseFs, sourceP, zipFsD, subPathD); - }); - }, (zipFsS, { - subPath: subPathS - }) => { - return this.makeCallSync(destP, () => { - return fallback(zipFsS, subPathS, this.baseFs, destP); - }, (zipFsD, { - subPath: subPathD - }) => { - if (zipFsS !== zipFsD) { - return fallback(zipFsS, subPathS, zipFsD, subPathD); - } else { - return zipFsS.copyFileSync(subPathS, subPathD, flags); - } - }); - }); - } - - async appendFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.appendFilePromise(p, content, opts); - }, async (zipFs, { - subPath - }) => { - return await zipFs.appendFilePromise(subPath, content, opts); - }); - } - - appendFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.appendFileSync(p, content, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.appendFileSync(subPath, content, opts); - }); - } - - async writeFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.writeFilePromise(p, content, opts); - }, async (zipFs, { - subPath - }) => { - return await zipFs.writeFilePromise(subPath, content, opts); - }); - } - - writeFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.writeFileSync(p, content, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.writeFileSync(subPath, content, opts); - }); - } - - async unlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.unlinkPromise(p); - }, async (zipFs, { - subPath - }) => { - return await zipFs.unlinkPromise(subPath); - }); - } - - unlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.unlinkSync(p); - }, (zipFs, { - subPath - }) => { - return zipFs.unlinkSync(subPath); - }); - } - - async utimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.utimesPromise(p, atime, mtime); - }, async (zipFs, { - subPath - }) => { - return await zipFs.utimesPromise(subPath, atime, mtime); - }); - } - - utimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.utimesSync(p, atime, mtime); - }, (zipFs, { - subPath - }) => { - return zipFs.utimesSync(subPath, atime, mtime); - }); - } - - async mkdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.mkdirPromise(p, opts); - }, async (zipFs, { - subPath - }) => { - return await zipFs.mkdirPromise(subPath, opts); - }); - } - - mkdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.mkdirSync(p, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.mkdirSync(subPath, opts); - }); - } - - async rmdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmdirPromise(p, opts); - }, async (zipFs, { - subPath - }) => { - return await zipFs.rmdirPromise(subPath, opts); - }); - } - - rmdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmdirSync(p, opts); - }, (zipFs, { - subPath - }) => { - return zipFs.rmdirSync(subPath, opts); - }); - } - - async linkPromise(existingP, newP) { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.linkPromise(existingP, newP); - }, async (zipFs, { - subPath - }) => { - return await zipFs.linkPromise(existingP, subPath); - }); - } - - linkSync(existingP, newP) { - return this.makeCallSync(newP, () => { - return this.baseFs.linkSync(existingP, newP); - }, (zipFs, { - subPath - }) => { - return zipFs.linkSync(existingP, subPath); - }); - } - - async symlinkPromise(target, p, type) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.symlinkPromise(target, p, type); - }, async (zipFs, { - subPath - }) => { - return await zipFs.symlinkPromise(target, subPath); - }); - } - - symlinkSync(target, p, type) { - return this.makeCallSync(p, () => { - return this.baseFs.symlinkSync(target, p, type); - }, (zipFs, { - subPath - }) => { - return zipFs.symlinkSync(target, subPath); - }); - } - - async readFilePromise(p, encoding) { - return this.makeCallPromise(p, async () => { - // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) - switch (encoding) { - case `utf8`: - return await this.baseFs.readFilePromise(p, encoding); - - default: - return await this.baseFs.readFilePromise(p, encoding); - } - }, async (zipFs, { - subPath - }) => { - return await zipFs.readFilePromise(subPath, encoding); - }); - } - - readFileSync(p, encoding) { - return this.makeCallSync(p, () => { - // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) - switch (encoding) { - case `utf8`: - return this.baseFs.readFileSync(p, encoding); - - default: - return this.baseFs.readFileSync(p, encoding); - } - }, (zipFs, { - subPath - }) => { - return zipFs.readFileSync(subPath, encoding); - }); - } - - async readdirPromise(p, { - withFileTypes - } = {}) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readdirPromise(p, { - withFileTypes: withFileTypes - }); - }, async (zipFs, { - subPath - }) => { - return await zipFs.readdirPromise(subPath, { - withFileTypes: withFileTypes - }); - }, { - requireSubpath: false - }); - } - - readdirSync(p, { - withFileTypes - } = {}) { - return this.makeCallSync(p, () => { - return this.baseFs.readdirSync(p, { - withFileTypes: withFileTypes - }); - }, (zipFs, { - subPath - }) => { - return zipFs.readdirSync(subPath, { - withFileTypes: withFileTypes - }); - }, { - requireSubpath: false - }); - } - - async readlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readlinkPromise(p); - }, async (zipFs, { - subPath - }) => { - return await zipFs.readlinkPromise(subPath); - }); - } - - readlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.readlinkSync(p); - }, (zipFs, { - subPath - }) => { - return zipFs.readlinkSync(subPath); - }); - } - - async truncatePromise(p, len) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.truncatePromise(p, len); - }, async (zipFs, { - subPath - }) => { - return await zipFs.truncatePromise(subPath, len); - }); - } - - truncateSync(p, len) { - return this.makeCallSync(p, () => { - return this.baseFs.truncateSync(p, len); - }, (zipFs, { - subPath - }) => { - return zipFs.truncateSync(subPath, len); - }); - } - - watch(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watch(p, // @ts-expect-error - a, b); - }, (zipFs, { - subPath - }) => { - return zipFs.watch(subPath, // @ts-expect-error - a, b); - }); - } - - watchFile(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watchFile(p, // @ts-expect-error - a, b); - }, () => { - return watchFile(this, p, a, b); - }); - } - - unwatchFile(p, cb) { - return this.makeCallSync(p, () => { - return this.baseFs.unwatchFile(p, cb); - }, () => { - return unwatchFile(this, p, cb); - }); - } - - async makeCallPromise(p, discard, accept, { - requireSubpath = true - } = {}) { - if (typeof p !== `string`) return await discard(); - const normalizedP = this.resolve(p); - const zipInfo = this.findZip(normalizedP); - if (!zipInfo) return await discard(); - if (requireSubpath && zipInfo.subPath === `/`) return await discard(); - return await this.getZipPromise(zipInfo.archivePath, async zipFs => await accept(zipFs, zipInfo)); - } - - makeCallSync(p, discard, accept, { - requireSubpath = true - } = {}) { - if (typeof p !== `string`) return discard(); - const normalizedP = this.resolve(p); - const zipInfo = this.findZip(normalizedP); - if (!zipInfo) return discard(); - if (requireSubpath && zipInfo.subPath === `/`) return discard(); - return this.getZipSync(zipInfo.archivePath, zipFs => accept(zipFs, zipInfo)); - } - - findZip(p) { - if (this.filter && !this.filter.test(p)) return null; - let filePath = ``; - - while (true) { - const parts = FILE_PARTS_REGEX.exec(p.substr(filePath.length)); - if (!parts) return null; - filePath = this.pathUtils.join(filePath, parts[0]); - - if (this.isZip.has(filePath) === false) { - if (this.notZip.has(filePath)) continue; - - try { - if (!this.baseFs.lstatSync(filePath).isFile()) { - this.notZip.add(filePath); - continue; - } - } catch (_a) { - return null; + return new CustomDir(path, nextDirent, opts) } + // CONCATENATED MODULE: external "events" + const external_events_namespaceObject = require('events') + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/constants.ts + const constants_S_IFMT = 0o170000 + const constants_S_IFDIR = 0o040000 + const constants_S_IFREG = 0o100000 + const constants_S_IFLNK = 0o120000 + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/statUtils.ts + + class DirEntry { + constructor() { + this.name = `` + this.mode = 0 + } - this.isZip.add(filePath); - } + isBlockDevice() { + return false + } - return { - archivePath: filePath, - subPath: this.pathUtils.join(PortablePath.root, p.substr(filePath.length)) - }; - } - } - - limitOpenFiles(max) { - if (this.zipInstances === null) return; - const now = Date.now(); - let nextExpiresAt = now + this.maxAge; - let closeCount = max === null ? 0 : this.zipInstances.size - max; - - for (const [path, { - zipFs, - expiresAt, - refCount - }] of this.zipInstances.entries()) { - if (refCount !== 0 || zipFs.hasOpenFileHandles()) { - continue; - } else if (now >= expiresAt) { - zipFs.saveAndClose(); - this.zipInstances.delete(path); - closeCount -= 1; - continue; - } else if (max === null || closeCount <= 0) { - nextExpiresAt = expiresAt; - break; - } + isCharacterDevice() { + return false + } - zipFs.saveAndClose(); - this.zipInstances.delete(path); - closeCount -= 1; - } + isDirectory() { + return (this.mode & S_IFMT) === S_IFDIR + } - if (this.limitOpenFilesTimeout === null && (max === null && this.zipInstances.size > 0 || max !== null)) { - this.limitOpenFilesTimeout = setTimeout(() => { - this.limitOpenFilesTimeout = null; - this.limitOpenFiles(null); - }, nextExpiresAt - now).unref(); - } - } - - async getZipPromise(p, accept) { - const getZipOptions = async () => ({ - baseFs: this.baseFs, - libzip: this.libzip, - readOnly: this.readOnlyArchives, - stats: await this.baseFs.statPromise(p) - }); - - if (this.zipInstances) { - let cachedZipFs = this.zipInstances.get(p); - - if (!cachedZipFs) { - const zipOptions = await getZipOptions(); // We need to recheck because concurrent getZipPromise calls may - // have instantiated the zip archive while we were waiting - - cachedZipFs = this.zipInstances.get(p); - - if (!cachedZipFs) { - cachedZipFs = { - zipFs: new ZipFS(p, zipOptions), - expiresAt: 0, - refCount: 0 - }; - } - } // Removing then re-adding the field allows us to easily implement - // a basic LRU garbage collection strategy + isFIFO() { + return false + } + isFile() { + return (this.mode & S_IFMT) === S_IFREG + } - this.zipInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.zipInstances.set(p, cachedZipFs); - cachedZipFs.expiresAt = Date.now() + this.maxAge; - cachedZipFs.refCount += 1; + isSocket() { + return false + } - try { - return await accept(cachedZipFs.zipFs); - } finally { - cachedZipFs.refCount -= 1; - } - } else { - const zipFs = new ZipFS(p, await getZipOptions()); + isSymbolicLink() { + return (this.mode & S_IFMT) === S_IFLNK + } + } + class StatEntry { + constructor() { + this.dev = 0 + this.ino = 0 + this.mode = 0 + this.nlink = 1 + this.rdev = 0 + this.blocks = 1 + } - try { - return await accept(zipFs); - } finally { - zipFs.saveAndClose(); - } - } - } - - getZipSync(p, accept) { - const getZipOptions = () => ({ - baseFs: this.baseFs, - libzip: this.libzip, - readOnly: this.readOnlyArchives, - stats: this.baseFs.statSync(p) - }); - - if (this.zipInstances) { - let cachedZipFs = this.zipInstances.get(p); - - if (!cachedZipFs) { - cachedZipFs = { - zipFs: new ZipFS(p, getZipOptions()), - expiresAt: 0, - refCount: 0 - }; - } // Removing then re-adding the field allows us to easily implement - // a basic LRU garbage collection strategy - - - this.zipInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.zipInstances.set(p, cachedZipFs); - cachedZipFs.expiresAt = Date.now() + this.maxAge; - return accept(cachedZipFs.zipFs); - } else { - const zipFs = new ZipFS(p, getZipOptions()); - - try { - return accept(zipFs); - } finally { - zipFs.saveAndClose(); - } - } - } + isBlockDevice() { + return false + } -} -// CONCATENATED MODULE: ../yarnpkg-libzip/sources/makeInterface.ts -const number64 = [`number`, `number`]; -var Errors; - -(function (Errors) { - Errors[Errors["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; - Errors[Errors["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; - Errors[Errors["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; - Errors[Errors["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; - Errors[Errors["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; - Errors[Errors["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; - Errors[Errors["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; - Errors[Errors["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; - Errors[Errors["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; - Errors[Errors["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; - Errors[Errors["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; - Errors[Errors["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; - Errors[Errors["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; - Errors[Errors["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; - Errors[Errors["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; - Errors[Errors["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; - Errors[Errors["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; - Errors[Errors["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; - Errors[Errors["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; - Errors[Errors["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; - Errors[Errors["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; - Errors[Errors["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; - Errors[Errors["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; - Errors[Errors["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; - Errors[Errors["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; - Errors[Errors["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; - Errors[Errors["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; - Errors[Errors["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; - Errors[Errors["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; - Errors[Errors["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; - Errors[Errors["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; - Errors[Errors["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; -})(Errors || (Errors = {})); - -const makeInterface = libzip => ({ - // Those are getters because they can change after memory growth - get HEAP8() { - return libzip.HEAP8; - }, - - get HEAPU8() { - return libzip.HEAPU8; - }, - - errors: Errors, - SEEK_SET: 0, - SEEK_CUR: 1, - SEEK_END: 2, - ZIP_CHECKCONS: 4, - ZIP_CREATE: 1, - ZIP_EXCL: 2, - ZIP_TRUNCATE: 8, - ZIP_RDONLY: 16, - ZIP_FL_OVERWRITE: 8192, - ZIP_FL_COMPRESSED: 4, - ZIP_OPSYS_DOS: 0x00, - ZIP_OPSYS_AMIGA: 0x01, - ZIP_OPSYS_OPENVMS: 0x02, - ZIP_OPSYS_UNIX: 0x03, - ZIP_OPSYS_VM_CMS: 0x04, - ZIP_OPSYS_ATARI_ST: 0x05, - ZIP_OPSYS_OS_2: 0x06, - ZIP_OPSYS_MACINTOSH: 0x07, - ZIP_OPSYS_Z_SYSTEM: 0x08, - ZIP_OPSYS_CPM: 0x09, - ZIP_OPSYS_WINDOWS_NTFS: 0x0a, - ZIP_OPSYS_MVS: 0x0b, - ZIP_OPSYS_VSE: 0x0c, - ZIP_OPSYS_ACORN_RISC: 0x0d, - ZIP_OPSYS_VFAT: 0x0e, - ZIP_OPSYS_ALTERNATE_MVS: 0x0f, - ZIP_OPSYS_BEOS: 0x10, - ZIP_OPSYS_TANDEM: 0x11, - ZIP_OPSYS_OS_400: 0x12, - ZIP_OPSYS_OS_X: 0x13, - ZIP_CM_DEFAULT: -1, - ZIP_CM_STORE: 0, - ZIP_CM_DEFLATE: 8, - uint08S: libzip._malloc(1), - uint16S: libzip._malloc(2), - uint32S: libzip._malloc(4), - uint64S: libzip._malloc(8), - malloc: libzip._malloc, - free: libzip._free, - getValue: libzip.getValue, - open: libzip.cwrap(`zip_open`, `number`, [`string`, `number`, `number`]), - openFromSource: libzip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), - close: libzip.cwrap(`zip_close`, `number`, [`number`]), - discard: libzip.cwrap(`zip_discard`, null, [`number`]), - getError: libzip.cwrap(`zip_get_error`, `number`, [`number`]), - getName: libzip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), - getNumEntries: libzip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), - delete: libzip.cwrap(`zip_delete`, `number`, [`number`, `number`]), - stat: libzip.cwrap(`zip_stat`, `number`, [`number`, `string`, `number`, `number`]), - statIndex: libzip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), - fopen: libzip.cwrap(`zip_fopen`, `number`, [`number`, `string`, `number`]), - fopenIndex: libzip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), - fread: libzip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), - fclose: libzip.cwrap(`zip_fclose`, `number`, [`number`]), - dir: { - add: libzip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) - }, - file: { - add: libzip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), - getError: libzip.cwrap(`zip_file_get_error`, `number`, [`number`]), - getExternalAttributes: libzip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setExternalAttributes: libzip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setMtime: libzip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), - setCompression: libzip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) - }, - ext: { - countSymlinks: libzip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) - }, - error: { - initWithCode: libzip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), - strerror: libzip.cwrap(`zip_error_strerror`, `string`, [`number`]) - }, - name: { - locate: libzip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) - }, - source: { - fromUnattachedBuffer: libzip.cwrap(`zip_source_buffer_create`, `number`, [`number`, `number`, `number`, `number`]), - fromBuffer: libzip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), - free: libzip.cwrap(`zip_source_free`, null, [`number`]), - keep: libzip.cwrap(`zip_source_keep`, null, [`number`]), - open: libzip.cwrap(`zip_source_open`, `number`, [`number`]), - close: libzip.cwrap(`zip_source_close`, `number`, [`number`]), - seek: libzip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), - tell: libzip.cwrap(`zip_source_tell`, `number`, [`number`]), - read: libzip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), - error: libzip.cwrap(`zip_source_error`, `number`, [`number`]), - setMtime: libzip.cwrap(`zip_source_set_mtime`, `number`, [`number`, `number`]) - }, - struct: { - stat: libzip.cwrap(`zipstruct_stat`, `number`, []), - statS: libzip.cwrap(`zipstruct_statS`, `number`, []), - statName: libzip.cwrap(`zipstruct_stat_name`, `string`, [`number`]), - statIndex: libzip.cwrap(`zipstruct_stat_index`, `number`, [`number`]), - statSize: libzip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), - statCompSize: libzip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), - statCompMethod: libzip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), - statMtime: libzip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), - error: libzip.cwrap(`zipstruct_error`, `number`, []), - errorS: libzip.cwrap(`zipstruct_errorS`, `number`, []), - errorCodeZip: libzip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) - } -}); -// CONCATENATED MODULE: ../yarnpkg-libzip/sources/sync.ts - -let mod = null; -function getLibzipSync() { - if (mod === null) mod = makeInterface(__webpack_require__(368)); - return mod; -} -async function getLibzipPromise() { - return getLibzipSync(); -} -// EXTERNAL MODULE: external "module" -var external_module_ = __webpack_require__(282); -var external_module_default = /*#__PURE__*/__webpack_require__.n(external_module_); + isCharacterDevice() { + return false + } + + isDirectory() { + return (this.mode & constants_S_IFMT) === constants_S_IFDIR + } -// CONCATENATED MODULE: external "string_decoder" -const external_string_decoder_namespaceObject = require("string_decoder");; -var external_string_decoder_default = /*#__PURE__*/__webpack_require__.n(external_string_decoder_namespaceObject); + isFIFO() { + return false + } -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/index.ts + isFile() { + return (this.mode & constants_S_IFMT) === constants_S_IFREG + } + isSocket() { + return false + } + isSymbolicLink() { + return (this.mode & constants_S_IFMT) === constants_S_IFLNK + } + } + function makeDefaultStats() { + return Object.assign(new StatEntry(), { + uid: 0, + gid: 0, + size: 0, + blksize: 0, + atimeMs: 0, + mtimeMs: 0, + ctimeMs: 0, + birthtimeMs: 0, + atime: new Date(0), + mtime: new Date(0), + ctime: new Date(0), + birthtime: new Date(0), + mode: constants_S_IFREG | 0o644, + }) + } + function makeEmptyStats() { + return Object.assign(makeDefaultStats(), { + nlink: 0, + blocks: 0, + mode: 0, + }) + } + function areStatsEqual(a, b) { + if (a.atimeMs !== b.atimeMs) return false + if (a.birthtimeMs !== b.birthtimeMs) return false + if (a.blksize !== b.blksize) return false + if (a.blocks !== b.blocks) return false + if (a.ctimeMs !== b.ctimeMs) return false + if (a.dev !== b.dev) return false + if (a.gid !== b.gid) return false + if (a.ino !== b.ino) return false + if (a.isBlockDevice() !== b.isBlockDevice()) return false + if (a.isCharacterDevice() !== b.isCharacterDevice()) return false + if (a.isDirectory() !== b.isDirectory()) return false + if (a.isFIFO() !== b.isFIFO()) return false + if (a.isFile() !== b.isFile()) return false + if (a.isSocket() !== b.isSocket()) return false + if (a.isSymbolicLink() !== b.isSymbolicLink()) return false + if (a.mode !== b.mode) return false + if (a.mtimeMs !== b.mtimeMs) return false + if (a.nlink !== b.nlink) return false + if (a.rdev !== b.rdev) return false + if (a.size !== b.size) return false + if (a.uid !== b.uid) return false + return true + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/watchFile/CustomStatWatcher.ts + + var Event + ;(function (Event) { + Event['Change'] = 'change' + Event['Stop'] = 'stop' + })(Event || (Event = {})) + + var Status + ;(function (Status) { + Status['Ready'] = 'ready' + Status['Running'] = 'running' + Status['Stopped'] = 'stopped' + })(Status || (Status = {})) + + function assertStatus(current, expected) { + if (current !== expected) { + throw new Error( + `Invalid StatWatcher status: expected '${expected}', got '${current}'` + ) + } + } + class CustomStatWatcher extends external_events_namespaceObject.EventEmitter { + constructor(fakeFs, path, { bigint = false } = {}) { + super() + this.status = Status.Ready + this.changeListeners = new Map() + this.startTimeout = null + this.fakeFs = fakeFs + this.path = path + this.bigint = bigint + this.lastStats = this.stat() + } + static create(fakeFs, path, opts) { + const statWatcher = new CustomStatWatcher(fakeFs, path, opts) + statWatcher.start() + return statWatcher + } + start() { + assertStatus(this.status, Status.Ready) + this.status = Status.Running // Node allows other listeners to be registered up to 3 milliseconds + // after the watcher has been started, so that's what we're doing too + this.startTimeout = setTimeout(() => { + this.startTimeout = null // Per the Node FS docs: + // "When an fs.watchFile operation results in an ENOENT error, + // it will invoke the listener once, with all the fields zeroed + // (or, for dates, the Unix Epoch)." + if (!this.fakeFs.existsSync(this.path)) { + this.emit(Event.Change, this.lastStats, this.lastStats) + } + }, 3) + } + stop() { + assertStatus(this.status, Status.Running) + this.status = Status.Stopped + if (this.startTimeout !== null) { + clearTimeout(this.startTimeout) + this.startTimeout = null + } + this.emit(Event.Stop) + } + stat() { + try { + return this.fakeFs.statSync(this.path) + } catch (error) { + if (error.code === `ENOENT`) { + return makeEmptyStats() + } else { + throw error + } + } + } + /** + * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. + * + * @param opts.persistent Decides whether the interval should be immediately unref-ed. + */ + + makeInterval(opts) { + const interval = setInterval(() => { + const currentStats = this.stat() + const previousStats = this.lastStats + if (areStatsEqual(currentStats, previousStats)) return + this.lastStats = currentStats + this.emit(Event.Change, currentStats, previousStats) + }, opts.interval) + return opts.persistent ? interval : interval.unref() + } + /** + * Registers a listener and assigns it an interval. + */ + registerChangeListener(listener, opts) { + this.addListener(Event.Change, listener) + this.changeListeners.set(listener, this.makeInterval(opts)) + } + /** + * Unregisters the listener and clears the assigned interval. + */ + + unregisterChangeListener(listener) { + this.removeListener(Event.Change, listener) + const interval = this.changeListeners.get(listener) + if (typeof interval !== `undefined`) clearInterval(interval) + this.changeListeners.delete(listener) + } + /** + * Unregisters all listeners and clears all assigned intervals. + */ + unregisterAllChangeListeners() { + for (const listener of this.changeListeners.keys()) { + this.unregisterChangeListener(listener) + } + } + hasChangeListeners() { + return this.changeListeners.size > 0 + } + /** + * Refs all stored intervals. + */ + ref() { + for (const interval of this.changeListeners.values()) interval.ref() + return this + } + /** + * Unrefs all stored intervals. + */ + unref() { + for (const interval of this.changeListeners.values()) + interval.unref() + return this + } + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/algorithms/watchFile.ts + + const statWatchersByFakeFS = new WeakMap() + function watchFile(fakeFs, path, a, b) { + let bigint + let persistent + let interval + let listener + + switch (typeof a) { + case `function`: + { + bigint = false + persistent = true + interval = 5007 + listener = a + } + break + default: + { + ;({ bigint = false, persistent = true, interval = 5007 } = a) + listener = b + } + break + } + let statWatchers = statWatchersByFakeFS.get(fakeFs) + if (typeof statWatchers === `undefined`) + statWatchersByFakeFS.set(fakeFs, (statWatchers = new Map())) + let statWatcher = statWatchers.get(path) + if (typeof statWatcher === `undefined`) { + statWatcher = CustomStatWatcher.create(fakeFs, path, { + bigint, + }) + statWatchers.set(path, statWatcher) + } + statWatcher.registerChangeListener(listener, { + persistent, + interval, + }) + return statWatcher + } + function unwatchFile(fakeFs, path, cb) { + const statWatchers = statWatchersByFakeFS.get(fakeFs) + if (typeof statWatchers === `undefined`) return + const statWatcher = statWatchers.get(path) + if (typeof statWatcher === `undefined`) return + if (typeof cb === `undefined`) + statWatcher.unregisterAllChangeListeners() + else statWatcher.unregisterChangeListener(cb) + + if (!statWatcher.hasChangeListeners()) { + statWatcher.stop() + statWatchers.delete(path) + } + } + function unwatchAllFiles(fakeFs) { + const statWatchers = statWatchersByFakeFS.get(fakeFs) + if (typeof statWatchers === `undefined`) return + for (const path of statWatchers.keys()) { + unwatchFile(fakeFs, path) + } + } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipFS.ts + const DEFAULT_COMPRESSION_LEVEL = `mixed` -function getTempName(prefix) { - const tmpdir = npath.toPortablePath(external_os_default().tmpdir()); - const hash = Math.ceil(Math.random() * 0x100000000).toString(16).padStart(8, `0`); - return ppath.join(tmpdir, `${prefix}${hash}`); -} + function toUnixTimestamp(time) { + if (typeof time === `string` && String(+time) === time) return +time -function patchFs(patchedFs, fakeFs) { - const SYNC_IMPLEMENTATIONS = new Set([`accessSync`, `appendFileSync`, `createReadStream`, `chmodSync`, `chownSync`, `closeSync`, `copyFileSync`, `linkSync`, `lstatSync`, `lutimesSync`, `mkdirSync`, `openSync`, `opendirSync`, `readSync`, `readlinkSync`, `readFileSync`, `readdirSync`, `readlinkSync`, `realpathSync`, `renameSync`, `rmdirSync`, `statSync`, `symlinkSync`, `truncateSync`, `unlinkSync`, `unwatchFile`, `utimesSync`, `watch`, `watchFile`, `writeFileSync`, `writeSync`]); - const ASYNC_IMPLEMENTATIONS = new Set([`accessPromise`, `appendFilePromise`, `chmodPromise`, `chownPromise`, `closePromise`, `copyFilePromise`, `linkPromise`, `lstatPromise`, `lutimesPromise`, `mkdirPromise`, `openPromise`, `opendirPromise`, `readdirPromise`, `realpathPromise`, `readFilePromise`, `readdirPromise`, `readlinkPromise`, `renamePromise`, `rmdirPromise`, `statPromise`, `symlinkPromise`, `truncatePromise`, `unlinkPromise`, `utimesPromise`, `writeFilePromise`, `writeSync`]); - const FILEHANDLE_IMPLEMENTATIONS = new Set([`appendFilePromise`, `chmodPromise`, `chownPromise`, `closePromise`, `readPromise`, `readFilePromise`, `statPromise`, `truncatePromise`, `utimesPromise`, `writePromise`, `writeFilePromise`]); + if (Number.isFinite(time)) { + if (time < 0) { + return Date.now() / 1000 + } else { + return time + } + } // convert to 123.456 UNIX timestamp - const setupFn = (target, name, replacement) => { - const orig = target[name]; - target[name] = replacement; // Preserve any util.promisify implementations + if ((0, external_util_namespaceObject.isDate)(time)) + return time.getTime() / 1000 + throw new Error(`Invalid time`) + } - if (typeof (orig === null || orig === void 0 ? void 0 : orig[external_util_namespaceObject.promisify.custom]) !== `undefined`) { - replacement[external_util_namespaceObject.promisify.custom] = orig[external_util_namespaceObject.promisify.custom]; - } - }; - /** Callback implementations */ - - - { - setupFn(patchedFs, `exists`, (p, ...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => {}; - process.nextTick(() => { - fakeFs.existsPromise(p).then(exists => { - callback(exists); - }, () => { - callback(false); - }); - }); - }); - setupFn(patchedFs, `read`, (p, buffer, ...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => {}; - process.nextTick(() => { - fakeFs.readPromise(p, buffer, ...args).then(bytesRead => { - callback(null, bytesRead, buffer); - }, error => { - callback(error); - }); - }); - }); - - for (const fnName of ASYNC_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - if (typeof patchedFs[origName] === `undefined`) continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) continue; - - const wrapper = (...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => {}; - process.nextTick(() => { - fakeImpl.apply(fakeFs, args).then(result => { - callback(null, result); - }, error => { - callback(error); - }); - }); - }; - - setupFn(patchedFs, origName, wrapper); - } + class ZipFS extends BasePortableFakeFS { + constructor(source, opts) { + super() + this.lzSource = null + this.listings = new Map() + this.entries = new Map() + /** + * A cache of indices mapped to file sources. + * Populated by `setFileSource` calls. + * Required for supporting read after write. + */ + + this.fileSources = new Map() + this.fds = new Map() + this.nextFd = 0 + this.ready = false + this.readOnly = false + this.libzip = opts.libzip + const pathOptions = opts + this.level = + typeof pathOptions.level !== `undefined` + ? pathOptions.level + : DEFAULT_COMPRESSION_LEVEL + + if (source === null) { + source = Buffer.from([ + 0x50, 0x4b, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + ]) + } - patchedFs.realpath.native = patchedFs.realpath; - } - /** Sync implementations */ + if (typeof source === `string`) { + const { baseFs = new NodeFS() } = pathOptions + this.baseFs = baseFs + this.path = source + } else { + this.path = null + this.baseFs = null + } - { - setupFn(patchedFs, `existsSync`, p => { - try { - return fakeFs.existsSync(p); - } catch (error) { - return false; - } - }); - - for (const fnName of SYNC_IMPLEMENTATIONS) { - const origName = fnName; - if (typeof patchedFs[origName] === `undefined`) continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) continue; - setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); - } + if (opts.stats) { + this.stats = opts.stats + } else { + if (typeof source === `string`) { + try { + this.stats = this.baseFs.statSync(source) + } catch (error) { + if (error.code === `ENOENT` && pathOptions.create) { + this.stats = makeDefaultStats() + } else { + throw error + } + } + } else { + this.stats = makeDefaultStats() + } + } - patchedFs.realpathSync.native = patchedFs.realpathSync; - } - /** Promise implementations */ + const errPtr = this.libzip.malloc(4) - { - // `fs.promises` is a getter that returns a reference to require(`fs/promises`), - // so we can just patch `fs.promises` and both will be updated - const origEmitWarning = process.emitWarning; + try { + let flags = 0 + if (typeof source === `string` && pathOptions.create) + flags |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE - process.emitWarning = () => {}; + if (opts.readOnly) { + flags |= this.libzip.ZIP_RDONLY + this.readOnly = true + } - let patchedFsPromises; + if (typeof source === `string`) { + this.zip = this.libzip.open( + npath.fromPortablePath(source), + flags, + errPtr + ) + } else { + const lzSource = this.allocateUnattachedSource(source) + + try { + this.zip = this.libzip.openFromSource(lzSource, flags, errPtr) + this.lzSource = lzSource + } catch (error) { + this.libzip.source.free(lzSource) + throw error + } + } - try { - patchedFsPromises = patchedFs.promises; - } finally { - process.emitWarning = origEmitWarning; - } + if (this.zip === 0) { + const error = this.libzip.struct.errorS() + this.libzip.error.initWithCode( + error, + this.libzip.getValue(errPtr, `i32`) + ) + throw this.makeLibzipError(error) + } + } finally { + this.libzip.free(errPtr) + } - if (typeof patchedFsPromises !== `undefined`) { - // `fs.promises.exists` doesn't exist - for (const fnName of ASYNC_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - if (typeof patchedFsPromises[origName] === `undefined`) continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) continue; // Open is a bit particular with fs.promises: it returns a file handle - // instance instead of the traditional file descriptor number - - if (fnName === `open`) continue; - setupFn(patchedFsPromises, origName, fakeImpl.bind(fakeFs)); - } + this.listings.set(PortablePath.root, new Set()) + const entryCount = this.libzip.getNumEntries(this.zip, 0) - class FileHandle { - constructor(fd) { - this.fd = fd; - } + for (let t = 0; t < entryCount; ++t) { + const raw = this.libzip.getName(this.zip, t, 0) + if (ppath.isAbsolute(raw)) continue + const p = ppath.resolve(PortablePath.root, raw) + this.registerEntry(p, t) // If the raw path is a directory, register it + // to prevent empty folder being skipped - } + if (raw.endsWith(`/`)) { + this.registerListing(p) + } + } - for (const fnName of FILEHANDLE_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) continue; - setupFn(FileHandle.prototype, origName, function (...args) { - return fakeImpl.call(fakeFs, this.fd, ...args); - }); - } + this.symlinkCount = this.libzip.ext.countSymlinks(this.zip) + if (this.symlinkCount === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + this.ready = true + } - setupFn(patchedFsPromises, `open`, async (...args) => { - // @ts-expect-error - const fd = await fakeFs.openPromise(...args); - return new FileHandle(fd); - }); // `fs.promises.realpath` doesn't have a `native` property - } - } - /** util.promisify implementations */ - - { - // Override the promisified version of `fs.read` to return an object as per - // https://github.com/nodejs/node/blob/dc79f3f37caf6f25b8efee4623bec31e2c20f595/lib/fs.js#L559-L560 - // and - // https://github.com/nodejs/node/blob/ba684805b6c0eded76e5cd89ee00328ac7a59365/lib/internal/util.js#L293 - // @ts-expect-error - patchedFs.read[external_util_namespaceObject.promisify.custom] = async (p, buffer, ...args) => { - const res = fakeFs.readPromise(p, buffer, ...args); - return { - bytesRead: await res, - buffer - }; - }; - } -} -function extendFs(realFs, fakeFs) { - const patchedFs = Object.create(realFs); - patchFs(patchedFs, fakeFs); - return patchedFs; -} -const tmpdirs = new Set(); -let cleanExitRegistered = false; - -function registerCleanExit() { - if (cleanExitRegistered) return; - cleanExitRegistered = true; - process.once(`exit`, () => { - xfs.rmtempSync(); - }); -} + makeLibzipError(error) { + const errorCode = this.libzip.struct.errorCodeZip(error) + const strerror = this.libzip.error.strerror(error) + const libzipError = new LibzipError( + strerror, + this.libzip.errors[errorCode] + ) // This error should never come up because of the file source cache + + if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) + throw new Error( + `Assertion failed: Unexpected libzip error: ${libzipError.message}` + ) + return libzipError + } -const xfs = Object.assign(new NodeFS(), { - detachTemp(p) { - tmpdirs.delete(p); - }, + getExtractHint(hints) { + for (const fileName of this.entries.keys()) { + const ext = this.pathUtils.extname(fileName) - mktempSync(cb) { - registerCleanExit(); + if (hints.relevantExtensions.has(ext)) { + return true + } + } - while (true) { - const p = getTempName(`xfs-`); + return false + } - try { - this.mkdirSync(p); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } + getAllFiles() { + return Array.from(this.entries.keys()) + } - const realP = this.realpathSync(p); - tmpdirs.add(realP); + getRealPath() { + if (!this.path) + throw new Error( + `ZipFS don't have real paths when loaded from a buffer` + ) + return this.path + } - if (typeof cb !== `undefined`) { - try { - return cb(realP); - } finally { - if (tmpdirs.has(realP)) { - tmpdirs.delete(realP); + getBufferAndClose() { + this.prepareClose() + if (!this.lzSource) + throw new Error(`ZipFS was not created from a Buffer`) try { - this.removeSync(realP); - } catch (_a) {// Too bad if there's an error + // Prevent close from cleaning up the source + this.libzip.source.keep(this.lzSource) // Close the zip archive + + if (this.libzip.close(this.zip) === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) // Open the source for reading + + if (this.libzip.source.open(this.lzSource) === -1) + throw this.makeLibzipError( + this.libzip.source.error(this.lzSource) + ) // Move to the end of source + + if ( + this.libzip.source.seek( + this.lzSource, + 0, + 0, + this.libzip.SEEK_END + ) === -1 + ) + throw this.makeLibzipError( + this.libzip.source.error(this.lzSource) + ) // Get the size of source + + const size = this.libzip.source.tell(this.lzSource) + if (size === -1) + throw this.makeLibzipError( + this.libzip.source.error(this.lzSource) + ) // Move to the start of source + + if ( + this.libzip.source.seek( + this.lzSource, + 0, + 0, + this.libzip.SEEK_SET + ) === -1 + ) + throw this.makeLibzipError( + this.libzip.source.error(this.lzSource) + ) + const buffer = this.libzip.malloc(size) + if (!buffer) throw new Error(`Couldn't allocate enough memory`) + + try { + const rc = this.libzip.source.read(this.lzSource, buffer, size) + if (rc === -1) + throw this.makeLibzipError( + this.libzip.source.error(this.lzSource) + ) + else if (rc < size) throw new Error(`Incomplete read`) + else if (rc > size) throw new Error(`Overread`) + const memory = this.libzip.HEAPU8.subarray( + buffer, + buffer + size + ) + return Buffer.from(memory) + } finally { + this.libzip.free(buffer) + } + } finally { + this.libzip.source.close(this.lzSource) + this.libzip.source.free(this.lzSource) + this.ready = false } } - } - } else { - return p; - } - } - }, - - async mktempPromise(cb) { - registerCleanExit(); - - while (true) { - const p = getTempName(`xfs-`); - - try { - await this.mkdirPromise(p); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - const realP = await this.realpathPromise(p); - tmpdirs.add(realP); + prepareClose() { + if (!this.ready) throw EBUSY(`archive closed, close`) + unwatchAllFiles(this) + } - if (typeof cb !== `undefined`) { - try { - return await cb(realP); - } finally { - if (tmpdirs.has(realP)) { - tmpdirs.delete(realP); + saveAndClose() { + if (!this.path || !this.baseFs) + throw new Error( + `ZipFS cannot be saved and must be discarded when loaded from a buffer` + ) + this.prepareClose() - try { - await this.removePromise(realP); - } catch (_a) {// Too bad if there's an error + if (this.readOnly) { + this.discardAndClose() + return } + + const previousMod = this.baseFs.existsSync(this.path) + ? this.baseFs.statSync(this.path).mode & 0o777 + : null + const rc = this.libzip.close(this.zip) + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) // this.libzip overrides the chmod when writing the archive, which is a weird + // behavior I don't totally understand (plus the umask seems bogus in some + // weird cases - maybe related to emscripten?) + // + // See also https://github.com/nih-at/libzip/issues/77 + + if (previousMod === null) + this.baseFs.chmodSync(this.path, this.stats.mode) + else if ( + previousMod !== + (this.baseFs.statSync(this.path).mode & 0o777) + ) + this.baseFs.chmodSync(this.path, previousMod) + this.ready = false } - } - } else { - return realP; - } - } - }, - - async rmtempPromise() { - await Promise.all(Array.from(tmpdirs.values()).map(async p => { - try { - await xfs.removePromise(p, { - maxRetries: 0 - }); - tmpdirs.delete(p); - } catch (_a) {// Too bad if there's an error - } - })); - }, - - rmtempSync() { - for (const p of tmpdirs) { - try { - xfs.removeSync(p); - tmpdirs.delete(p); - } catch (_a) {// Too bad if there's an error - } - } - } -}); -// CONCATENATED MODULE: ../yarnpkg-fslib/sources/PosixFS.ts + discardAndClose() { + this.prepareClose() + this.libzip.discard(this.zip) + this.ready = false + } + resolve(p) { + return ppath.resolve(PortablePath.root, p) + } -class PosixFS extends ProxiedFS { - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } + async openPromise(p, flags, mode) { + return this.openSync(p, flags, mode) + } - mapFromBase(path) { - return npath.fromPortablePath(path); - } + openSync(p, flags, mode) { + const fd = this.nextFd++ + this.fds.set(fd, { + cursor: 0, + p, + }) + return fd + } - mapToBase(path) { - return npath.toPortablePath(path); - } + hasOpenFileHandles() { + return !!this.fds.size + } -} -// CONCATENATED MODULE: external "url" -const external_url_namespaceObject = require("url");; -// CONCATENATED MODULE: ./sources/loader/internalTools.ts - -var ErrorCode; - -(function (ErrorCode) { - ErrorCode["API_ERROR"] = "API_ERROR"; - ErrorCode["BLACKLISTED"] = "BLACKLISTED"; - ErrorCode["BUILTIN_NODE_RESOLUTION_FAILED"] = "BUILTIN_NODE_RESOLUTION_FAILED"; - ErrorCode["MISSING_DEPENDENCY"] = "MISSING_DEPENDENCY"; - ErrorCode["MISSING_PEER_DEPENDENCY"] = "MISSING_PEER_DEPENDENCY"; - ErrorCode["QUALIFIED_PATH_RESOLUTION_FAILED"] = "QUALIFIED_PATH_RESOLUTION_FAILED"; - ErrorCode["INTERNAL"] = "INTERNAL"; - ErrorCode["UNDECLARED_DEPENDENCY"] = "UNDECLARED_DEPENDENCY"; - ErrorCode["UNSUPPORTED"] = "UNSUPPORTED"; -})(ErrorCode || (ErrorCode = {})); // Some errors are exposed as MODULE_NOT_FOUND for compatibility with packages -// that expect this umbrella error when the resolution fails - - -const MODULE_NOT_FOUND_ERRORS = new Set([ErrorCode.BLACKLISTED, ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, ErrorCode.MISSING_DEPENDENCY, ErrorCode.MISSING_PEER_DEPENDENCY, ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, ErrorCode.UNDECLARED_DEPENDENCY]); -/** - * Simple helper function that assign an error code to an error, so that it can more easily be caught and used - * by third-parties. - */ - -function internalTools_makeError(pnpCode, message, data = {}) { - const code = MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; - const propertySpec = { - configurable: true, - writable: true, - enumerable: false - }; - return Object.defineProperties(new Error(message), { - code: { ...propertySpec, - value: code - }, - pnpCode: { ...propertySpec, - value: pnpCode - }, - data: { ...propertySpec, - value: data - } - }); -} -/** - * Returns the module that should be used to resolve require calls. It's usually the direct parent, except if we're - * inside an eval expression. - */ + async opendirPromise(p, opts) { + return this.opendirSync(p, opts) + } -function getIssuerModule(parent) { - let issuer = parent; + opendirSync(p, opts = {}) { + const resolvedP = this.resolveFilename(`opendir '${p}'`, p) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`opendir '${p}'`) + const directoryListing = this.listings.get(resolvedP) + if (!directoryListing) throw ENOTDIR(`opendir '${p}'`) + const entries = [...directoryListing] + const fd = this.openSync(resolvedP, `r`) + + const onClose = () => { + this.closeSync(fd) + } - while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) issuer = issuer.parent; + return opendir(this, resolvedP, entries, { + onClose, + }) + } - return issuer || null; -} -function getPathForDisplay(p) { - return npath.normalize(npath.fromPortablePath(p)); -} -// CONCATENATED MODULE: ./sources/loader/applyPatch.ts + async readPromise(fd, buffer, offset, length, position) { + return this.readSync(fd, buffer, offset, length, position) + } + readSync(fd, buffer, offset = 0, length = 0, position = -1) { + const entry = this.fds.get(fd) + if (typeof entry === `undefined`) throw EBADF(`read`) + let realPosition + if (position === -1 || position === null) + realPosition = entry.cursor + else realPosition = position + const source = this.readFileSync(entry.p) + source.copy(buffer, offset, realPosition, realPosition + length) + const bytesRead = Math.max( + 0, + Math.min(source.length - realPosition, length) + ) + if (position === -1 || position === null) entry.cursor += bytesRead + return bytesRead + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.writeSync(fd, buffer, position) + } else { + return this.writeSync(fd, buffer, offset, length, position) + } + } + writeSync(fd, buffer, offset, length, position) { + const entry = this.fds.get(fd) + if (typeof entry === `undefined`) throw EBADF(`read`) + throw new Error(`Unimplemented`) + } + async closePromise(fd) { + return this.closeSync(fd) + } -function applyPatch(pnpapi, opts) { - // @ts-expect-error - const builtinModules = new Set(external_module_.Module.builtinModules || Object.keys(process.binding(`natives`))); - /** - * The cache that will be used for all accesses occuring outside of a PnP context. - */ + closeSync(fd) { + const entry = this.fds.get(fd) + if (typeof entry === `undefined`) throw EBADF(`read`) + this.fds.delete(fd) + } - const defaultCache = {}; - /** - * Used to disable the resolution hooks (for when we want to fallback to the previous resolution - we then need - * a way to "reset" the environment temporarily) - */ + createReadStream(p, { encoding } = {}) { + if (p === null) throw new Error(`Unimplemented`) + const fd = this.openSync(p, `r`) + const stream = Object.assign( + new external_stream_namespaceObject.PassThrough({ + emitClose: true, + autoDestroy: true, + destroy: (error, callback) => { + clearImmediate(immediate) + this.closeSync(fd) + callback(error) + }, + }), + { + close() { + stream.destroy() + }, + + bytesRead: 0, + path: p, + } + ) + const immediate = setImmediate(async () => { + try { + const data = await this.readFilePromise(p, encoding) + stream.bytesRead = data.length + stream.end(data) + } catch (error) { + stream.destroy(error) + } + }) + return stream + } - let enableNativeHooks = true; // @ts-expect-error + createWriteStream(p, { encoding } = {}) { + if (this.readOnly) throw EROFS(`open '${p}'`) + if (p === null) throw new Error(`Unimplemented`) + const chunks = [] + const fd = this.openSync(p, `w`) + const stream = Object.assign( + new external_stream_namespaceObject.PassThrough({ + autoDestroy: true, + emitClose: true, + destroy: (error, callback) => { + try { + if (error) { + callback(error) + } else { + this.writeFileSync(p, Buffer.concat(chunks), encoding) + callback(null) + } + } catch (err) { + callback(err) + } finally { + this.closeSync(fd) + } + }, + }), + { + bytesWritten: 0, + path: p, + + close() { + stream.destroy() + }, + } + ) + stream.on(`data`, (chunk) => { + const chunkBuffer = Buffer.from(chunk) + stream.bytesWritten += chunkBuffer.length + chunks.push(chunkBuffer) + }) + return stream + } - process.versions.pnp = String(pnpapi.VERSIONS.std); + async realpathPromise(p) { + return this.realpathSync(p) + } - const moduleExports = __webpack_require__(282); + realpathSync(p) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`lstat '${p}'`) + return resolvedP + } - moduleExports.findPnpApi = lookupSource => { - const lookupPath = lookupSource instanceof external_url_namespaceObject.URL ? (0,external_url_namespaceObject.fileURLToPath)(lookupSource) : lookupSource; - const apiPath = opts.manager.findApiPathFor(lookupPath); - if (apiPath === null) return null; - const apiEntry = opts.manager.getApiEntry(apiPath, true); - return apiEntry.instance; - }; + async existsPromise(p) { + return this.existsSync(p) + } - function getRequireStack(parent) { - const requireStack = []; + existsSync(p) { + if (!this.ready) throw EBUSY(`archive closed, existsSync '${p}'`) - for (let cursor = parent; cursor; cursor = cursor.parent) requireStack.push(cursor.filename || cursor.id); + if (this.symlinkCount === 0) { + const resolvedP = ppath.resolve(PortablePath.root, p) + return this.entries.has(resolvedP) || this.listings.has(resolvedP) + } - return requireStack; - } // A small note: we don't replace the cache here (and instead use the native one). This is an effort to not - // break code similar to "delete require.cache[require.resolve(FOO)]", where FOO is a package located outside - // of the Yarn dependency tree. In this case, we defer the load to the native loader. If we were to replace the - // cache by our own, the native loader would populate its own cache, which wouldn't be exposed anymore, so the - // delete call would be broken. + let resolvedP + try { + resolvedP = this.resolveFilename(`stat '${p}'`, p) + } catch (error) { + return false + } - const originalModuleLoad = external_module_.Module._load; + return this.entries.has(resolvedP) || this.listings.has(resolvedP) + } - external_module_.Module._load = function (request, parent, isMain) { - if (!enableNativeHooks) return originalModuleLoad.call(external_module_.Module, request, parent, isMain); // Builtins are managed by the regular Node loader + async accessPromise(p, mode) { + return this.accessSync(p, mode) + } - if (builtinModules.has(request)) { - try { - enableNativeHooks = false; - return originalModuleLoad.call(external_module_.Module, request, parent, isMain); - } finally { - enableNativeHooks = true; - } - } + accessSync(p, mode = external_fs_.constants.F_OK) { + const resolvedP = this.resolveFilename(`access '${p}'`, p) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`access '${p}'`) - const parentApiPath = opts.manager.getApiPathFromParent(parent); - const parentApi = parentApiPath !== null ? opts.manager.getApiEntry(parentApiPath, true).instance : null; // Requests that aren't covered by the PnP runtime goes through the - // parent `_load` implementation. This is required for VSCode, for example, - // which override `_load` to provide additional builtins to its extensions. + if (this.readOnly && mode & external_fs_.constants.W_OK) { + throw EROFS(`access '${p}'`) + } + } - if (parentApi === null) return originalModuleLoad(request, parent, isMain); // The 'pnpapi' name is reserved to return the PnP api currently in use - // by the program + async statPromise(p) { + return this.statSync(p) + } - if (request === `pnpapi`) return parentApi; // Request `Module._resolveFilename` (ie. `resolveRequest`) to tell us - // which file we should load + statSync(p) { + const resolvedP = this.resolveFilename(`stat '${p}'`, p) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`stat '${p}'`) + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`) + return this.statImpl(`stat '${p}'`, resolvedP) + } - const modulePath = external_module_.Module._resolveFilename(request, parent, isMain); // We check whether the module is owned by the dependency tree of the - // module that required it. If it isn't, then we need to create a new - // store and possibly load its sandboxed PnP runtime. + async lstatPromise(p) { + return this.lstatSync(p) + } + lstatSync(p) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`lstat '${p}'`) + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`lstat '${p}'`) + return this.statImpl(`lstat '${p}'`, resolvedP) + } - const isOwnedByRuntime = parentApi !== null ? parentApi.findPackageLocator(modulePath) !== null : false; - const moduleApiPath = isOwnedByRuntime ? parentApiPath : opts.manager.findApiPathFor(npath.dirname(modulePath)); - const entry = moduleApiPath !== null ? opts.manager.getApiEntry(moduleApiPath) : { - instance: null, - cache: defaultCache - }; // Check if the module has already been created for the given file + statImpl(reason, p) { + const entry = this.entries.get(p) // File, or explicit directory + + if (typeof entry !== `undefined`) { + const stat = this.libzip.struct.statS() + const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat) + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + const uid = this.stats.uid + const gid = this.stats.gid + const size = this.libzip.struct.statSize(stat) >>> 0 + const blksize = 512 + const blocks = Math.ceil(size / blksize) + const mtimeMs = (this.libzip.struct.statMtime(stat) >>> 0) * 1000 + const atimeMs = mtimeMs + const birthtimeMs = mtimeMs + const ctimeMs = mtimeMs + const atime = new Date(atimeMs) + const birthtime = new Date(birthtimeMs) + const ctime = new Date(ctimeMs) + const mtime = new Date(mtimeMs) + const type = this.listings.has(p) + ? constants_S_IFDIR + : this.isSymbolicLink(entry) + ? constants_S_IFLNK + : constants_S_IFREG + const defaultMode = type === constants_S_IFDIR ? 0o755 : 0o644 + const mode = type | (this.getUnixMode(entry, defaultMode) & 0o777) + return Object.assign(new StatEntry(), { + uid, + gid, + size, + blksize, + blocks, + atime, + birthtime, + ctime, + mtime, + atimeMs, + birthtimeMs, + ctimeMs, + mtimeMs, + mode, + }) + } // Implicit directory + + if (this.listings.has(p)) { + const uid = this.stats.uid + const gid = this.stats.gid + const size = 0 + const blksize = 512 + const blocks = 0 + const atimeMs = this.stats.mtimeMs + const birthtimeMs = this.stats.mtimeMs + const ctimeMs = this.stats.mtimeMs + const mtimeMs = this.stats.mtimeMs + const atime = new Date(atimeMs) + const birthtime = new Date(birthtimeMs) + const ctime = new Date(ctimeMs) + const mtime = new Date(mtimeMs) + const mode = constants_S_IFDIR | 0o755 + return Object.assign(new StatEntry(), { + uid, + gid, + size, + blksize, + blocks, + atime, + birthtime, + ctime, + mtime, + atimeMs, + birthtimeMs, + ctimeMs, + mtimeMs, + mode, + }) + } - const cacheEntry = entry.cache[modulePath]; - if (cacheEntry) return cacheEntry.exports; // Create a new module and store it into the cache - // @ts-expect-error + throw new Error(`Unreachable`) + } - const module = new external_module_.Module(modulePath, parent); // @ts-expect-error + getUnixMode(index, defaultMode) { + const rc = this.libzip.file.getExternalAttributes( + this.zip, + index, + 0, + 0, + this.libzip.uint08S, + this.libzip.uint32S + ) + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0 + if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return defaultMode + return this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16 + } - module.pnpApiPath = moduleApiPath; - entry.cache[modulePath] = module; // The main module is exposed as global variable + registerListing(p) { + let listing = this.listings.get(p) + if (listing) return listing + const parentListing = this.registerListing(ppath.dirname(p)) + listing = new Set() + parentListing.add(ppath.basename(p)) + this.listings.set(p, listing) + return listing + } - if (isMain) { - process.mainModule = module; - module.id = `.`; - } // Try to load the module, and remove it from the cache if it fails + registerEntry(p, index) { + const parentListing = this.registerListing(ppath.dirname(p)) + parentListing.add(ppath.basename(p)) + this.entries.set(p, index) + } + unregisterListing(p) { + this.listings.delete(p) + const parentListing = this.listings.get(ppath.dirname(p)) + parentListing === null || parentListing === void 0 + ? void 0 + : parentListing.delete(ppath.basename(p)) + } - let hasThrown = true; + unregisterEntry(p) { + this.unregisterListing(p) + const entry = this.entries.get(p) + this.entries.delete(p) + if (typeof entry === `undefined`) return + this.fileSources.delete(entry) - try { - // @ts-expect-error - module.load(modulePath); - hasThrown = false; - } finally { - if (hasThrown) { - delete external_module_.Module._cache[modulePath]; - } - } + if (this.isSymbolicLink(entry)) { + this.symlinkCount-- + } + } - return module.exports; - }; - - function getIssuerSpecsFromPaths(paths) { - return paths.map(path => ({ - apiPath: opts.manager.findApiPathFor(path), - path, - module: null - })); - } - - function getIssuerSpecsFromModule(module) { - const issuer = getIssuerModule(module); - const issuerPath = issuer !== null ? npath.dirname(issuer.filename) : process.cwd(); - return [{ - apiPath: opts.manager.getApiPathFromParent(issuer), - path: issuerPath, - module - }]; - } - - function makeFakeParent(path) { - const fakeParent = new external_module_.Module(``); - const fakeFilePath = npath.join(path, `[file]`); - fakeParent.paths = external_module_.Module._nodeModulePaths(fakeFilePath); - return fakeParent; - } // Splits a require request into its components, or return null if the request is a file path - - - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const originalModuleResolveFilename = external_module_.Module._resolveFilename; - - external_module_.Module._resolveFilename = function (request, parent, isMain, options) { - if (builtinModules.has(request)) return request; - if (!enableNativeHooks) return originalModuleResolveFilename.call(external_module_.Module, request, parent, isMain, options); - - if (options && options.plugnplay === false) { - const { - plugnplay, - ...rest - } = options; // Workaround a bug present in some version of Node (now fixed) - // https://github.com/nodejs/node/pull/28078 - - const forwardedOptions = Object.keys(rest).length > 0 ? rest : undefined; - - try { - enableNativeHooks = false; - return originalModuleResolveFilename.call(external_module_.Module, request, parent, isMain, forwardedOptions); - } finally { - enableNativeHooks = true; - } - } // We check that all the options present here are supported; better - // to fail fast than to introduce subtle bugs in the runtime. + deleteEntry(p, index) { + this.unregisterEntry(p) + const rc = this.libzip.delete(this.zip, index) + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)) + } + } - if (options) { - const optionNames = new Set(Object.keys(options)); - optionNames.delete(`paths`); - optionNames.delete(`plugnplay`); + resolveFilename(reason, p, resolveLastComponent = true) { + if (!this.ready) throw EBUSY(`archive closed, ${reason}`) + let resolvedP = ppath.resolve(PortablePath.root, p) + if (resolvedP === `/`) return PortablePath.root + const fileIndex = this.entries.get(resolvedP) + + if (resolveLastComponent && fileIndex !== undefined) { + if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { + const target = this.getFileSource(fileIndex).toString() + return this.resolveFilename( + reason, + ppath.resolve(ppath.dirname(resolvedP), target), + true + ) + } else { + return resolvedP + } + } - if (optionNames.size > 0) { - throw internalTools_makeError(ErrorCode.UNSUPPORTED, `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})`); - } - } + while (true) { + const parentP = this.resolveFilename( + reason, + ppath.dirname(resolvedP), + true + ) + const isDir = this.listings.has(parentP) + const doesExist = this.entries.has(parentP) + if (!isDir && !doesExist) throw ENOENT(reason) + if (!isDir) throw ENOTDIR(reason) + resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)) + if (!resolveLastComponent || this.symlinkCount === 0) break + const index = this.libzip.name.locate( + this.zip, + resolvedP.slice(1) + ) + if (index === -1) break + + if (this.isSymbolicLink(index)) { + const target = this.getFileSource(index).toString() + resolvedP = ppath.resolve(ppath.dirname(resolvedP), target) + } else { + break + } + } - const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); + return resolvedP + } - if (request.match(pathRegExp) === null) { - const parentDirectory = (parent === null || parent === void 0 ? void 0 : parent.filename) != null ? npath.dirname(parent.filename) : null; - const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; + allocateBuffer(content) { + if (!Buffer.isBuffer(content)) content = Buffer.from(content) + const buffer = this.libzip.malloc(content.byteLength) + if (!buffer) throw new Error(`Couldn't allocate enough memory`) // Copy the file into the Emscripten heap + + const heap = new Uint8Array( + this.libzip.HEAPU8.buffer, + buffer, + content.byteLength + ) + heap.set(content) + return { + buffer, + byteLength: content.byteLength, + } + } - if (absoluteRequest !== null) { - const apiPath = parentDirectory === npath.dirname(absoluteRequest) && (parent === null || parent === void 0 ? void 0 : parent.pnpApiPath) ? parent.pnpApiPath : opts.manager.findApiPathFor(absoluteRequest); + allocateUnattachedSource(content) { + const error = this.libzip.struct.errorS() + const { buffer, byteLength } = this.allocateBuffer(content) + const source = this.libzip.source.fromUnattachedBuffer( + buffer, + byteLength, + 0, + true, + error + ) - if (apiPath !== null) { - issuerSpecs.unshift({ - apiPath, - path: parentDirectory, - module: null - }); - } - } - } + if (source === 0) { + this.libzip.free(error) + throw this.makeLibzipError(error) + } - let firstError; + return source + } - for (const { - apiPath, - path, - module - } of issuerSpecs) { - let resolution; - const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; + allocateSource(content) { + const { buffer, byteLength } = this.allocateBuffer(content) + const source = this.libzip.source.fromBuffer( + this.zip, + buffer, + byteLength, + 0, + true + ) - try { - if (issuerApi !== null) { - resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); - } else { - if (path === null) throw new Error(`Assertion failed: Expected the path to be set`); - resolution = originalModuleResolveFilename.call(external_module_.Module, request, module || makeFakeParent(path), isMain); - } - } catch (error) { - firstError = firstError || error; - continue; - } + if (source === 0) { + this.libzip.free(buffer) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + } - if (resolution !== null) { - return resolution; - } - } + return source + } - const requireStack = getRequireStack(parent); - Object.defineProperty(firstError, `requireStack`, { - configurable: true, - writable: true, - enumerable: false, - value: requireStack - }); - if (requireStack.length > 0) firstError.message += `\nRequire stack:\n- ${requireStack.join(`\n- `)}`; - throw firstError; - }; - - const originalFindPath = external_module_.Module._findPath; - - external_module_.Module._findPath = function (request, paths, isMain) { - if (request === `pnpapi`) return false; // Node sometimes call this function with an absolute path and a `null` set - // of paths. This would cause the resolution to fail. To avoid that, we - // fallback on the regular resolution. We only do this when `isMain` is - // true because the Node default resolution doesn't handle well in-zip - // paths, even absolute, so we try to use it as little as possible. - - if (!enableNativeHooks || isMain && npath.isAbsolute(request)) return originalFindPath.call(external_module_.Module, request, paths, isMain); - - for (const path of paths || []) { - let resolution; - - try { - const pnpApiPath = opts.manager.findApiPathFor(path); - - if (pnpApiPath !== null) { - const api = opts.manager.getApiEntry(pnpApiPath, true).instance; - resolution = api.resolveRequest(request, path) || false; - } else { - resolution = originalFindPath.call(external_module_.Module, request, [path], isMain); - } - } catch (error) { - continue; - } + setFileSource(p, content) { + const buffer = Buffer.isBuffer(content) + ? content + : Buffer.from(content) + const target = ppath.relative(PortablePath.root, p) + const lzSource = this.allocateSource(content) - if (resolution) { - return resolution; - } - } + try { + const newIndex = this.libzip.file.add( + this.zip, + target, + lzSource, + this.libzip.ZIP_FL_OVERWRITE + ) + if (newIndex === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + + if (this.level !== `mixed`) { + // Use store for level 0, and deflate for 1..9 + let method + if (this.level === 0) method = this.libzip.ZIP_CM_STORE + else method = this.libzip.ZIP_CM_DEFLATE + const rc = this.libzip.file.setCompression( + this.zip, + newIndex, + 0, + method, + this.level + ) + + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)) + } + } - return false; - }; + this.fileSources.set(newIndex, buffer) + return newIndex + } catch (error) { + this.libzip.source.free(lzSource) + throw error + } + } - patchFs((external_fs_default()), new PosixFS(opts.fakeFs)); -} -// CONCATENATED MODULE: ./sources/loader/hydrateRuntimeState.ts - -function hydrateRuntimeState(data, { - basePath -}) { - const portablePath = npath.toPortablePath(basePath); - const absolutePortablePath = ppath.resolve(portablePath); - const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; - const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { - return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { - return [packageReference, { - // We use ppath.join instead of ppath.resolve because: - // 1) packageInformationData.packageLocation is a relative path when part of the SerializedState - // 2) ppath.join preserves trailing slashes - packageLocation: ppath.join(absolutePortablePath, packageInformationData.packageLocation), - packageDependencies: new Map(packageInformationData.packageDependencies), - packagePeers: new Set(packageInformationData.packagePeers), - linkType: packageInformationData.linkType, - discardFromLookup: packageInformationData.discardFromLookup || false - }]; - }))]; - })); - const packageLocatorsByLocations = new Map(); - const packageLocationLengths = new Set(); - - for (const [packageName, storeData] of data.packageRegistryData) { - for (const [packageReference, packageInformationData] of storeData) { - if (packageName === null !== (packageReference === null)) throw new Error(`Assertion failed: The name and reference should be null, or neither should`); - if (packageInformationData.discardFromLookup) continue; // @ts-expect-error: TypeScript isn't smart enough to understand the type assertion - - const packageLocator = { - name: packageName, - reference: packageReference - }; - packageLocatorsByLocations.set(packageInformationData.packageLocation, packageLocator); - packageLocationLengths.add(packageInformationData.packageLocation.length); - } - } - - for (const location of data.locationBlacklistData) packageLocatorsByLocations.set(location, null); - - const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { - return [packageName, new Set(packageReferences)]; - })); - const fallbackPool = new Map(data.fallbackPool); - const dependencyTreeRoots = data.dependencyTreeRoots; - const enableTopLevelFallback = data.enableTopLevelFallback; - return { - basePath: portablePath, - dependencyTreeRoots, - enableTopLevelFallback, - fallbackExclusionList, - fallbackPool, - ignorePattern, - packageLocationLengths: [...packageLocationLengths].sort((a, b) => b - a), - packageLocatorsByLocations, - packageRegistry - }; -} -// CONCATENATED MODULE: ./sources/loader/makeApi.ts + isSymbolicLink(index) { + if (this.symlinkCount === 0) return false + const attrs = this.libzip.file.getExternalAttributes( + this.zip, + index, + 0, + 0, + this.libzip.uint08S, + this.libzip.uint32S + ) + if (attrs === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0 + if (opsys !== this.libzip.ZIP_OPSYS_UNIX) return false + const attributes = + this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 16 + return (attributes & constants_S_IFMT) === constants_S_IFLNK + } + getFileSource( + index, + opts = { + asyncDecompress: false, + } + ) { + const cachedFileSource = this.fileSources.get(index) + if (typeof cachedFileSource !== `undefined`) return cachedFileSource + const stat = this.libzip.struct.statS() + const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat) + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + const size = this.libzip.struct.statCompSize(stat) + const compressionMethod = this.libzip.struct.statCompMethod(stat) + const buffer = this.libzip.malloc(size) + try { + const file = this.libzip.fopenIndex( + this.zip, + index, + 0, + this.libzip.ZIP_FL_COMPRESSED + ) + if (file === 0) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + + try { + const rc = this.libzip.fread(file, buffer, size, 0) + if (rc === -1) + throw this.makeLibzipError(this.libzip.file.getError(file)) + else if (rc < size) throw new Error(`Incomplete read`) + else if (rc > size) throw new Error(`Overread`) + const memory = this.libzip.HEAPU8.subarray( + buffer, + buffer + size + ) + const data = Buffer.from(memory) + + if (compressionMethod === 0) { + this.fileSources.set(index, data) + return data + } else if (opts.asyncDecompress) { + return new Promise((resolve, reject) => { + external_zlib_default().inflateRaw( + data, + (error, result) => { + if (error) { + reject(error) + } else { + this.fileSources.set(index, result) + resolve(result) + } + } + ) + }) + } else { + const decompressedData = + external_zlib_default().inflateRawSync(data) + this.fileSources.set(index, decompressedData) + return decompressedData + } + } finally { + this.libzip.fclose(file) + } + } finally { + this.libzip.free(buffer) + } + } + async chmodPromise(p, mask) { + return this.chmodSync(p, mask) + } -function makeApi(runtimeState, opts) { - const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; - const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); // @ts-expect-error + chmodSync(p, mask) { + if (this.readOnly) throw EROFS(`chmod '${p}'`) // We don't allow to make the extracted entries group-writable + + mask &= 0o755 + const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false) + const entry = this.entries.get(resolvedP) + if (typeof entry === `undefined`) + throw new Error( + `Assertion failed: The entry should have been registered (${resolvedP})` + ) + const oldMod = this.getUnixMode(entry, constants_S_IFREG | 0o000) + const newMod = (oldMod & ~0o777) | mask + const rc = this.libzip.file.setExternalAttributes( + this.zip, + entry, + 0, + 0, + this.libzip.ZIP_OPSYS_UNIX, + newMod << 16 + ) - const builtinModules = new Set(external_module_.Module.builtinModules || Object.keys(process.binding(`natives`))); // Splits a require request into its components, or return null if the request is a file path + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)) + } + } - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; // Matches if the path starts with a valid path qualifier (./, ../, /) - // eslint-disable-next-line no-unused-vars + async chownPromise(p, uid, gid) { + return this.chownSync(p, uid, gid) + } - const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; // Matches if the path must point to a directory (ie ends with /) + chownSync(p, uid, gid) { + throw new Error(`Unimplemented`) + } - const isDirRegExp = /\/$/; // We only instantiate one of those so that we can use strict-equal comparisons + async renamePromise(oldP, newP) { + return this.renameSync(oldP, newP) + } - const topLevelLocator = { - name: null, - reference: null - }; // Used for compatibility purposes - cf setupCompatibilityLayer + renameSync(oldP, newP) { + throw new Error(`Unimplemented`) + } - const fallbackLocators = []; // To avoid emitting the same warning multiple times + async copyFilePromise(sourceP, destP, flags) { + const { indexSource, indexDest, resolvedDestP } = + this.prepareCopyFile(sourceP, destP, flags) + const source = await this.getFileSource(indexSource, { + asyncDecompress: true, + }) + const newIndex = this.setFileSource(resolvedDestP, source) - const emittedWarnings = new Set(); - if (runtimeState.enableTopLevelFallback === true) fallbackLocators.push(topLevelLocator); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex) + } + } - if (opts.compatibilityMode !== false) { - // ESLint currently doesn't have any portable way for shared configs to - // specify their own plugins that should be used (cf issue #10125). This - // will likely get fixed at some point but it'll take time, so in the - // meantime we'll just add additional fallback entries for common shared - // configs. - // Similarly, Gatsby generates files within the `public` folder located - // within the project, but doesn't pre-resolve the `require` calls to use - // its own dependencies. Meaning that when PnP see a file from the `public` - // folder making a require, it thinks that your project forgot to list one - // of your dependencies. - for (const name of [`react-scripts`, `gatsby`]) { - const packageStore = runtimeState.packageRegistry.get(name); + copyFileSync(sourceP, destP, flags = 0) { + const { indexSource, indexDest, resolvedDestP } = + this.prepareCopyFile(sourceP, destP, flags) + const source = this.getFileSource(indexSource) + const newIndex = this.setFileSource(resolvedDestP, source) - if (packageStore) { - for (const reference of packageStore.keys()) { - if (reference === null) { - throw new Error(`Assertion failed: This reference shouldn't be null`); - } else { - fallbackLocators.push({ - name, - reference - }); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex) + } } - } - } - } - } - /** - * The setup code will be injected here. The tables listed below are guaranteed to be filled after the call to - * the $$DYNAMICALLY_GENERATED_CODE function. - */ - - - const { - ignorePattern, - packageRegistry, - packageLocatorsByLocations, - packageLocationLengths - } = runtimeState; - /** - * Allows to print useful logs just be setting a value in the environment - */ - - function makeLogEntry(name, args) { - return { - fn: name, - args, - error: null, - result: null - }; - } - - function maybeLog(name, fn) { - if (opts.allowDebug === false) return fn; - - if (Number.isFinite(debugLevel)) { - if (debugLevel >= 2) { - return (...args) => { - const logEntry = makeLogEntry(name, args); - try { - return logEntry.result = fn(...args); - } catch (error) { - throw logEntry.error = error; - } finally { - console.trace(logEntry); - } - }; - } else if (debugLevel >= 1) { - return (...args) => { - try { - return fn(...args); - } catch (error) { - const logEntry = makeLogEntry(name, args); - logEntry.error = error; - console.trace(logEntry); - throw error; - } - }; - } - } + prepareCopyFile(sourceP, destP, flags = 0) { + if (this.readOnly) throw EROFS(`copyfile '${sourceP} -> '${destP}'`) + if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw ENOSYS( + `unsupported clone operation`, + `copyfile '${sourceP}' -> ${destP}'` + ) + const resolvedSourceP = this.resolveFilename( + `copyfile '${sourceP} -> ${destP}'`, + sourceP + ) + const indexSource = this.entries.get(resolvedSourceP) + if (typeof indexSource === `undefined`) + throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`) + const resolvedDestP = this.resolveFilename( + `copyfile '${sourceP}' -> ${destP}'`, + destP + ) + const indexDest = this.entries.get(resolvedDestP) + if ( + (flags & + (external_fs_.constants.COPYFILE_EXCL | + external_fs_.constants.COPYFILE_FICLONE_FORCE)) !== + 0 && + typeof indexDest !== `undefined` + ) + throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`) + return { + indexSource, + resolvedDestP, + indexDest, + } + } - return fn; - } - /** - * Returns information about a package in a safe way (will throw if they cannot be retrieved) - */ + async appendFilePromise(p, content, opts) { + if (this.readOnly) throw EROFS(`open '${p}'`) + if (typeof opts === `undefined`) + opts = { + flag: `a`, + } + else if (typeof opts === `string`) + opts = { + flag: `a`, + encoding: opts, + } + else if (typeof opts.flag === `undefined`) + opts = { + flag: `a`, + ...opts, + } + return this.writeFilePromise(p, content, opts) + } + appendFileSync(p, content, opts = {}) { + if (this.readOnly) throw EROFS(`open '${p}'`) + if (typeof opts === `undefined`) + opts = { + flag: `a`, + } + else if (typeof opts === `string`) + opts = { + flag: `a`, + encoding: opts, + } + else if (typeof opts.flag === `undefined`) + opts = { + flag: `a`, + ...opts, + } + return this.writeFileSync(p, content, opts) + } - function getPackageInformationSafe(packageLocator) { - const packageInformation = getPackageInformation(packageLocator); + async writeFilePromise(p, content, opts) { + const { encoding, index, resolvedP } = this.prepareWriteFile( + p, + opts + ) + if ( + index !== undefined && + typeof opts === `object` && + opts.flag && + opts.flag.includes(`a`) + ) + content = Buffer.concat([ + await this.getFileSource(index, { + asyncDecompress: true, + }), + Buffer.from(content), + ]) + if (encoding !== null) content = content.toString(encoding) + const newIndex = this.setFileSource(resolvedP, content) + + if (newIndex !== index) { + this.registerEntry(resolvedP, newIndex) + } + } - if (!packageInformation) { - throw internalTools_makeError(ErrorCode.INTERNAL, `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)`); - } + writeFileSync(p, content, opts) { + const { encoding, index, resolvedP } = this.prepareWriteFile( + p, + opts + ) + if ( + index !== undefined && + typeof opts === `object` && + opts.flag && + opts.flag.includes(`a`) + ) + content = Buffer.concat([ + this.getFileSource(index), + Buffer.from(content), + ]) + if (encoding !== null) content = content.toString(encoding) + const newIndex = this.setFileSource(resolvedP, content) + + if (newIndex !== index) { + this.registerEntry(resolvedP, newIndex) + } + } - return packageInformation; - } - /** - * Returns whether the specified locator is a dependency tree root (in which case it's part of the project) or not - */ + prepareWriteFile(p, opts) { + if (typeof p !== `string`) throw EBADF(`read`) + if (this.readOnly) throw EROFS(`open '${p}'`) + const resolvedP = this.resolveFilename(`open '${p}'`, p) + if (this.listings.has(resolvedP)) throw EISDIR(`open '${p}'`) + let encoding = null + if (typeof opts === `string`) encoding = opts + else if (typeof opts === `object` && opts.encoding) + encoding = opts.encoding + const index = this.entries.get(resolvedP) + return { + encoding, + resolvedP, + index, + } + } + async unlinkPromise(p) { + return this.unlinkSync(p) + } - function isDependencyTreeRoot(packageLocator) { - if (packageLocator.name === null) return true; + unlinkSync(p) { + if (this.readOnly) throw EROFS(`unlink '${p}'`) + const resolvedP = this.resolveFilename(`unlink '${p}'`, p) + if (this.listings.has(resolvedP)) throw EISDIR(`unlink '${p}'`) + const index = this.entries.get(resolvedP) + if (typeof index === `undefined`) throw EINVAL(`unlink '${p}'`) + this.deleteEntry(resolvedP, index) + } - for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) return true; + async utimesPromise(p, atime, mtime) { + return this.utimesSync(p, atime, mtime) + } - return false; - } - /** - * Implements the node resolution for folder access and extension selection - */ + utimesSync(p, atime, mtime) { + if (this.readOnly) throw EROFS(`utimes '${p}'`) + const resolvedP = this.resolveFilename(`utimes '${p}'`, p) + this.utimesImpl(resolvedP, mtime) + } + async lutimesPromise(p, atime, mtime) { + return this.lutimesSync(p, atime, mtime) + } - function applyNodeExtensionResolution(unqualifiedPath, candidates, { - extensions - }) { - let stat; + lutimesSync(p, atime, mtime) { + if (this.readOnly) throw EROFS(`lutimes '${p}'`) + const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false) + this.utimesImpl(resolvedP, mtime) + } - try { - candidates.push(unqualifiedPath); - stat = opts.fakeFs.statSync(unqualifiedPath); - } catch (error) {} // If the file exists and is a file, we can stop right there + utimesImpl(resolvedP, mtime) { + if (this.listings.has(resolvedP)) + if (!this.entries.has(resolvedP)) this.hydrateDirectory(resolvedP) + const entry = this.entries.get(resolvedP) + if (entry === undefined) throw new Error(`Unreachable`) + const rc = this.libzip.file.setMtime( + this.zip, + entry, + 0, + toUnixTimestamp(mtime), + 0 + ) + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)) + } + } - if (stat && !stat.isDirectory()) return opts.fakeFs.realpathSync(unqualifiedPath); // If the file is a directory, we must check if it contains a package.json with a "main" entry + async mkdirPromise(p, opts) { + return this.mkdirSync(p, opts) + } - if (stat && stat.isDirectory()) { - let pkgJson; + mkdirSync(p, { mode = 0o755, recursive = false } = {}) { + if (recursive) { + this.mkdirpSync(p, { + chmod: mode, + }) + return + } - try { - pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, `package.json`), `utf8`)); - } catch (error) {} + if (this.readOnly) throw EROFS(`mkdir '${p}'`) + const resolvedP = this.resolveFilename(`mkdir '${p}'`, p) + if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) + throw EEXIST(`mkdir '${p}'`) + this.hydrateDirectory(resolvedP) + this.chmodSync(resolvedP, mode) + } - let nextUnqualifiedPath; - if (pkgJson && pkgJson.main) nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); // If the "main" field changed the path, we start again from this new location + async rmdirPromise(p, opts) { + return this.rmdirSync(p, opts) + } - if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { - const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { - extensions - }); + rmdirSync(p, { recursive = false } = {}) { + if (this.readOnly) throw EROFS(`rmdir '${p}'`) - if (resolution !== null) { - return resolution; - } - } - } // Otherwise we check if we find a file that match one of the supported extensions + if (recursive) { + this.removeSync(p) + return + } + const resolvedP = this.resolveFilename(`rmdir '${p}'`, p) + const directoryListing = this.listings.get(resolvedP) + if (!directoryListing) throw ENOTDIR(`rmdir '${p}'`) + if (directoryListing.size > 0) throw ENOTEMPTY(`rmdir '${p}'`) + const index = this.entries.get(resolvedP) + if (typeof index === `undefined`) throw EINVAL(`rmdir '${p}'`) + this.deleteEntry(p, index) + } - for (let i = 0, length = extensions.length; i < length; i++) { - const candidateFile = `${unqualifiedPath}${extensions[i]}`; - candidates.push(candidateFile); + hydrateDirectory(resolvedP) { + const index = this.libzip.dir.add( + this.zip, + ppath.relative(PortablePath.root, resolvedP) + ) + if (index === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + this.registerListing(resolvedP) + this.registerEntry(resolvedP, index) + return index + } - if (opts.fakeFs.existsSync(candidateFile)) { - return candidateFile; - } - } // Otherwise, we check if the path is a folder - in such a case, we try to use its index + async linkPromise(existingP, newP) { + return this.linkSync(existingP, newP) + } + linkSync(existingP, newP) { + // Zip archives don't support hard links: + // https://stackoverflow.com/questions/8859616/are-hard-links-possible-within-a-zip-archive + throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`) + } - if (stat && stat.isDirectory()) { - for (let i = 0, length = extensions.length; i < length; i++) { - const candidateFile = ppath.format({ - dir: unqualifiedPath, - name: `index`, - ext: extensions[i] - }); - candidates.push(candidateFile); + async symlinkPromise(target, p) { + return this.symlinkSync(target, p) + } - if (opts.fakeFs.existsSync(candidateFile)) { - return candidateFile; - } - } - } // Otherwise there's nothing else we can do :( - - - return null; - } - /** - * This function creates fake modules that can be used with the _resolveFilename function. - * Ideally it would be nice to be able to avoid this, since it causes useless allocations - * and cannot be cached efficiently (we recompute the nodeModulePaths every time). - * - * Fortunately, this should only affect the fallback, and there hopefully shouldn't have a - * lot of them. - */ - - - function makeFakeModule(path) { - // @ts-expect-error - const fakeModule = new external_module_.Module(path, null); - fakeModule.filename = path; - fakeModule.paths = external_module_.Module._nodeModulePaths(path); - return fakeModule; - } - /** - * Normalize path to posix format. - */ - - - function normalizePath(p) { - return npath.toPortablePath(p); - } - /** - * Forward the resolution to the next resolver (usually the native one) - */ - - - function callNativeResolution(request, issuer) { - if (issuer.endsWith(`/`)) issuer = ppath.join(issuer, `internal.js`); // Since we would need to create a fake module anyway (to call _resolveLookupPath that - // would give us the paths to give to _resolveFilename), we can as well not use - // the {paths} option at all, since it internally makes _resolveFilename create another - // fake module anyway. - - return external_module_.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { - plugnplay: false - }); - } - /** - * - */ - - - function isPathIgnored(path) { - if (ignorePattern === null) return false; - const subPath = ppath.contains(runtimeState.basePath, path); - if (subPath === null) return false; - - if (ignorePattern.test(subPath.replace(/\/$/, ``))) { - return true; - } else { - return false; - } - } - /** - * This key indicates which version of the standard is implemented by this resolver. The `std` key is the - * Plug'n'Play standard, and any other key are third-party extensions. Third-party extensions are not allowed - * to override the standard, and can only offer new methods. - * - * If a new version of the Plug'n'Play standard is released and some extensions conflict with newly added - * functions, they'll just have to fix the conflicts and bump their own version number. - */ - - - const VERSIONS = { - std: 3, - resolveVirtual: 1, - getAllLocators: 1 - }; - /** - * We export a special symbol for easy access to the top level locator. - */ - - const topLevel = topLevelLocator; - /** - * Gets the package information for a given locator. Returns null if they cannot be retrieved. - */ - - function getPackageInformation({ - name, - reference - }) { - const packageInformationStore = packageRegistry.get(name); - if (!packageInformationStore) return null; - const packageInformation = packageInformationStore.get(reference); - if (!packageInformation) return null; - return packageInformation; - } - /** - * Find all packages that depend on the specified one. - * - * Note: This is a private function; we expect consumers to implement it - * themselves. We keep it that way because this implementation isn't - * optimized at all, since we only need it when printing errors. - */ - - - function findPackageDependents({ - name, - reference - }) { - const dependents = []; - - for (const [dependentName, packageInformationStore] of packageRegistry) { - if (dependentName === null) continue; - - for (const [dependentReference, packageInformation] of packageInformationStore) { - if (dependentReference === null) continue; - const dependencyReference = packageInformation.packageDependencies.get(name); - if (dependencyReference !== reference) continue; // Don't forget that all packages depend on themselves - - if (dependentName === name && dependentReference === reference) continue; - dependents.push({ - name: dependentName, - reference: dependentReference - }); - } - } + symlinkSync(target, p) { + if (this.readOnly) throw EROFS(`symlink '${target}' -> '${p}'`) + const resolvedP = this.resolveFilename( + `symlink '${target}' -> '${p}'`, + p + ) + if (this.listings.has(resolvedP)) + throw EISDIR(`symlink '${target}' -> '${p}'`) + if (this.entries.has(resolvedP)) + throw EEXIST(`symlink '${target}' -> '${p}'`) + const index = this.setFileSource(resolvedP, target) + this.registerEntry(resolvedP, index) + const rc = this.libzip.file.setExternalAttributes( + this.zip, + index, + 0, + 0, + this.libzip.ZIP_OPSYS_UNIX, + (constants_S_IFLNK | 0o777) << 16 + ) + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)) + this.symlinkCount += 1 + } - return dependents; - } - /** - * Find all packages that broke the peer dependency on X, starting from Y. - * - * Note: This is a private function; we expect consumers to implement it - * themselves. We keep it that way because this implementation isn't - * optimized at all, since we only need it when printing errors. - */ + async readFilePromise(p, encoding) { + // This is messed up regarding the TS signatures + if (typeof encoding === `object`) + // @ts-expect-error + encoding = encoding ? encoding.encoding : undefined + const data = await this.readFileBuffer(p, { + asyncDecompress: true, + }) + return encoding ? data.toString(encoding) : data + } + readFileSync(p, encoding) { + // This is messed up regarding the TS signatures + if (typeof encoding === `object`) + // @ts-expect-error + encoding = encoding ? encoding.encoding : undefined + const data = this.readFileBuffer(p) + return encoding ? data.toString(encoding) : data + } - function findBrokenPeerDependencies(dependency, initialPackage) { - const brokenPackages = new Map(); - const alreadyVisited = new Set(); + readFileBuffer( + p, + opts = { + asyncDecompress: false, + } + ) { + if (typeof p !== `string`) throw EBADF(`read`) + const resolvedP = this.resolveFilename(`open '${p}'`, p) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`open '${p}'`) // Ensures that the last component is a directory, if the user said so (even if it is we'll throw right after with EISDIR anyway) + + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`) + if (this.listings.has(resolvedP)) throw EISDIR(`read`) + const entry = this.entries.get(resolvedP) + if (entry === undefined) throw new Error(`Unreachable`) + return this.getFileSource(entry, opts) + } - const traversal = currentPackage => { - const identifier = JSON.stringify(currentPackage.name); - if (alreadyVisited.has(identifier)) return; - alreadyVisited.add(identifier); - const dependents = findPackageDependents(currentPackage); + async readdirPromise(p, { withFileTypes } = {}) { + return this.readdirSync(p, { + withFileTypes: withFileTypes, + }) + } - for (const dependent of dependents) { - const dependentInformation = getPackageInformationSafe(dependent); + readdirSync(p, { withFileTypes } = {}) { + const resolvedP = this.resolveFilename(`scandir '${p}'`, p) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`scandir '${p}'`) + const directoryListing = this.listings.get(resolvedP) + if (!directoryListing) throw ENOTDIR(`scandir '${p}'`) + const entries = [...directoryListing] + if (!withFileTypes) return entries + return entries.map((name) => { + return Object.assign( + this.statImpl(`lstat`, ppath.join(p, name)), + { + name, + } + ) + }) + } - if (dependentInformation.packagePeers.has(dependency)) { - traversal(dependent); - } else { - let brokenSet = brokenPackages.get(dependent.name); - if (typeof brokenSet === `undefined`) brokenPackages.set(dependent.name, brokenSet = new Set()); - brokenSet.add(dependent.reference); - } - } - }; - - traversal(initialPackage); - const brokenList = []; - - for (const name of [...brokenPackages.keys()].sort()) for (const reference of [...brokenPackages.get(name)].sort()) brokenList.push({ - name, - reference - }); - - return brokenList; - } - /** - * Finds the package locator that owns the specified path. If none is found, returns null instead. - */ - - - function findPackageLocator(location) { - if (isPathIgnored(location)) return null; - let relativeLocation = normalizePath(ppath.relative(runtimeState.basePath, location)); - if (!relativeLocation.match(isStrictRegExp)) relativeLocation = `./${relativeLocation}`; - if (location.match(isDirRegExp) && !relativeLocation.endsWith(`/`)) relativeLocation = `${relativeLocation}/`; - let from = 0; // If someone wants to use a binary search to go from O(n) to O(log n), be my guest - - while (from < packageLocationLengths.length && packageLocationLengths[from] > relativeLocation.length) from += 1; - - for (let t = from; t < packageLocationLengths.length; ++t) { - const locator = packageLocatorsByLocations.get(relativeLocation.substr(0, packageLocationLengths[t])); - if (typeof locator === `undefined`) continue; // Ensures that the returned locator isn't a blacklisted one. - // - // Blacklisted packages are packages that cannot be used because their dependencies cannot be deduced. This only - // happens with peer dependencies, which effectively have different sets of dependencies depending on their - // parents. - // - // In order to deambiguate those different sets of dependencies, the Yarn implementation of PnP will generate a - // symlink for each combination of // it will find, and will - // blacklist the target of those symlinks. By doing this, we ensure that files loaded through a specific path - // will always have the same set of dependencies, provided the symlinks are correctly preserved. - // - // Unfortunately, some tools do not preserve them, and when it happens PnP isn't able anymore to deduce the set of - // dependencies based on the path of the file that makes the require calls. But since we've blacklisted those - // paths, we're able to print a more helpful error message that points out that a third-party package is doing - // something incompatible! - - if (locator === null) { - const locationForDisplay = getPathForDisplay(location); - throw internalTools_makeError(ErrorCode.BLACKLISTED, `A forbidden path has been used in the package resolution process - this is usually caused by one of your tools calling 'fs.realpath' on the return value of 'require.resolve'. Since we need to use symlinks to simultaneously provide valid filesystem paths and disambiguate peer dependencies, they must be passed untransformed to 'require'.\n\nForbidden path: ${locationForDisplay}`, { - location: locationForDisplay - }); - } + async readlinkPromise(p) { + const entry = this.prepareReadlink(p) + return ( + await this.getFileSource(entry, { + asyncDecompress: true, + }) + ).toString() + } - return locator; - } + readlinkSync(p) { + const entry = this.prepareReadlink(p) + return this.getFileSource(entry).toString() + } - return null; - } - /** - * Transforms a request (what's typically passed as argument to the require function) into an unqualified path. - * This path is called "unqualified" because it only changes the package name to the package location on the disk, - * which means that the end result still cannot be directly accessed (for example, it doesn't try to resolve the - * file extension, or to resolve directories to their "index.js" content). Use the "resolveUnqualified" function - * to convert them to fully-qualified paths, or just use "resolveRequest" that do both operations in one go. - * - * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be - * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative - * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/"). - */ - - - function resolveToUnqualified(request, issuer, { - considerBuiltins = true - } = {}) { - // The 'pnpapi' request is reserved and will always return the path to the PnP file, from everywhere - if (request === `pnpapi`) return npath.toPortablePath(opts.pnpapiResolution); // Bailout if the request is a native module - - if (considerBuiltins && builtinModules.has(request)) return null; - const requestForDisplay = getPathForDisplay(request); - const issuerForDisplay = issuer && getPathForDisplay(issuer); // We allow disabling the pnp resolution for some subpaths. - // This is because some projects, often legacy, contain multiple - // levels of dependencies (ie. a yarn.lock inside a subfolder of - // a yarn.lock). This is typically solved using workspaces, but - // not all of them have been converted already. - - if (issuer && isPathIgnored(issuer)) { - // Absolute paths that seem to belong to a PnP tree are still - // handled by our runtime even if the issuer isn't. This is - // because the native Node resolution uses a special version - // of the `stat` syscall which would otherwise bypass the - // filesystem layer we require to access the files. - if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { - const result = callNativeResolution(request, issuer); - - if (result === false) { - throw internalTools_makeError(ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: "${requestForDisplay}"\nRequired by: ${issuerForDisplay}\n`, { - request: requestForDisplay, - issuer: issuerForDisplay - }); - } + prepareReadlink(p) { + const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false) + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`readlink '${p}'`) // Ensure that the last component is a directory (if it is we'll throw right after with EISDIR anyway) + + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`) + if (this.listings.has(resolvedP)) throw EINVAL(`readlink '${p}'`) + const entry = this.entries.get(resolvedP) + if (entry === undefined) throw new Error(`Unreachable`) + if (!this.isSymbolicLink(entry)) throw EINVAL(`readlink '${p}'`) + return entry + } - return npath.toPortablePath(result); - } - } + async truncatePromise(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p) + const index = this.entries.get(resolvedP) + if (typeof index === `undefined`) throw EINVAL(`open '${p}'`) + const source = await this.getFileSource(index, { + asyncDecompress: true, + }) + const truncated = Buffer.alloc(len, 0x00) + source.copy(truncated) + return await this.writeFilePromise(p, truncated) + } + + truncateSync(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p) + const index = this.entries.get(resolvedP) + if (typeof index === `undefined`) throw EINVAL(`open '${p}'`) + const source = this.getFileSource(index) + const truncated = Buffer.alloc(len, 0x00) + source.copy(truncated) + return this.writeFileSync(p, truncated) + } - let unqualifiedPath; // If the request is a relative or absolute path, we just return it normalized + watch(p, a, b) { + let persistent - const dependencyNameMatch = request.match(pathRegExp); + switch (typeof a) { + case `function`: + case `string`: + case `undefined`: + { + persistent = true + } + break - if (!dependencyNameMatch) { - if (ppath.isAbsolute(request)) { - unqualifiedPath = ppath.normalize(request); - } else { - if (!issuer) { - throw internalTools_makeError(ErrorCode.API_ERROR, `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, { - request: requestForDisplay, - issuer: issuerForDisplay - }); - } // We use ppath.join instead of ppath.resolve because: - // 1) The request is a relative path in this branch - // 2) ppath.join preserves trailing slashes + default: + { + ;({ persistent = true } = a) + } + break + } + if (!persistent) + return { + on: () => {}, + close: () => {}, + } + const interval = setInterval(() => {}, 24 * 60 * 60 * 1000) + return { + on: () => {}, + close: () => { + clearInterval(interval) + }, + } + } - const absoluteIssuer = ppath.resolve(issuer); + watchFile(p, a, b) { + const resolvedP = this.resolveFilename(`open '${p}'`, p) + return watchFile(this, resolvedP, a, b) + } - if (issuer.match(isDirRegExp)) { - unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); - } else { - unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); - } - } // No need to use the return value; we just want to check the blacklist status - - - findPackageLocator(unqualifiedPath); - } // Things are more hairy if it's a package require - we then need to figure out which package is needed, and in - // particular the exact version for the given location on the dependency tree - else { - if (!issuer) { - throw internalTools_makeError(ErrorCode.API_ERROR, `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, { - request: requestForDisplay, - issuer: issuerForDisplay - }); + unwatchFile(p, cb) { + const resolvedP = this.resolveFilename(`open '${p}'`, p) + return unwatchFile(this, resolvedP, cb) + } } + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/ZipOpenFS.ts + + const ZIP_FD = 0x80000000 + const FILE_PARTS_REGEX = /.*?(? isDependencyTreeRoot(ancestor))) { - error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})\n${brokenAncestors.map(ancestorLocator => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n`).join(``)}\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - issuerLocator: Object.assign({}, issuerLocator), - dependencyName, - brokenAncestors - }); - } else { - error = internalTools_makeError(ErrorCode.MISSING_PEER_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})\n${brokenAncestors.map(ancestorLocator => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n`).join(``)}\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - issuerLocator: Object.assign({}, issuerLocator), - dependencyName, - brokenAncestors - }); - } - } - } else if (dependencyReference === undefined) { - if (!considerBuiltins && builtinModules.has(request)) { - if (isDependencyTreeRoot(issuerLocator)) { - error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - dependencyName - }); - } else { - error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - issuerLocator: Object.assign({}, issuerLocator), - dependencyName - }); - } - } else { - if (isDependencyTreeRoot(issuerLocator)) { - error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - dependencyName - }); - } else { - error = internalTools_makeError(ErrorCode.UNDECLARED_DEPENDENCY, `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - issuerLocator: Object.assign({}, issuerLocator), - dependencyName - }); - } + remapFd(zipFs, fd) { + const remappedFd = this.nextFd++ | ZIP_FD + this.fdMap.set(remappedFd, [zipFs, fd]) + return remappedFd } - } - if (dependencyReference == null) { - if (fallbackReference === null || error === null) throw error || new Error(`Assertion failed: Expected an error to have been set`); - dependencyReference = fallbackReference; - const message = error.message.replace(/\n.*/g, ``); - error.message = message; - - if (!emittedWarnings.has(message)) { - emittedWarnings.add(message); - process.emitWarning(error); - } - } // We need to check that the package exists on the filesystem, because it might not have been installed - - - const dependencyLocator = Array.isArray(dependencyReference) ? { - name: dependencyReference[0], - reference: dependencyReference[1] - } : { - name: dependencyName, - reference: dependencyReference - }; - const dependencyInformation = getPackageInformationSafe(dependencyLocator); - - if (!dependencyInformation.packageLocation) { - throw internalTools_makeError(ErrorCode.MISSING_DEPENDENCY, `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${dependencyLocator.name}@${dependencyLocator.reference} (via "${requestForDisplay}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})\n`, { - request: requestForDisplay, - issuer: issuerForDisplay, - dependencyLocator: Object.assign({}, dependencyLocator) - }); - } // Now that we know which package we should resolve to, we only have to find out the file location - // packageLocation is always absolute as it's returned by getPackageInformationSafe - - - const dependencyLocation = dependencyInformation.packageLocation; - - if (subPath) { - // We use ppath.join instead of ppath.resolve because: - // 1) subPath is always a relative path - // 2) ppath.join preserves trailing slashes - unqualifiedPath = ppath.join(dependencyLocation, subPath); - } else { - unqualifiedPath = dependencyLocation; - } - } + async openPromise(p, flags, mode) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.openPromise(p, flags, mode) + }, + async (zipFs, { subPath }) => { + return this.remapFd( + zipFs, + await zipFs.openPromise(subPath, flags, mode) + ) + } + ) + } - return ppath.normalize(unqualifiedPath); - } - /** - * Transforms an unqualified path into a qualified path by using the Node resolution algorithm (which automatically - * appends ".js" / ".json", and transforms directory accesses into "index.js"). - */ - - - function resolveUnqualified(unqualifiedPath, { - extensions = Object.keys(external_module_.Module._extensions) - } = {}) { - const candidates = []; - const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { - extensions - }); - - if (qualifiedPath) { - return ppath.normalize(qualifiedPath); - } else { - const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); - throw internalTools_makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${unqualifiedPathForDisplay}\n${candidates.map(candidate => `Rejected candidate: ${getPathForDisplay(candidate)}\n`).join(``)}`, { - unqualifiedPath: unqualifiedPathForDisplay - }); - } - } - /** - * Transforms a request into a fully qualified path. - * - * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be - * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative - * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/"). - */ - - - function resolveRequest(request, issuer, { - considerBuiltins, - extensions - } = {}) { - const unqualifiedPath = resolveToUnqualified(request, issuer, { - considerBuiltins - }); - if (unqualifiedPath === null) return null; - - try { - return resolveUnqualified(unqualifiedPath, { - extensions - }); - } catch (resolutionError) { - if (resolutionError.pnpCode === `QUALIFIED_PATH_RESOLUTION_FAILED`) Object.assign(resolutionError.data, { - request: getPathForDisplay(request), - issuer: issuer && getPathForDisplay(issuer) - }); - throw resolutionError; - } - } - - function resolveVirtual(request) { - const normalized = ppath.normalize(request); - const resolved = VirtualFS.resolveVirtual(normalized); - return resolved !== normalized ? resolved : null; - } - - return { - VERSIONS, - topLevel, - getLocator: (name, referencish) => { - if (Array.isArray(referencish)) { - return { - name: referencish[0], - reference: referencish[1] - }; - } else { - return { - name, - reference: referencish - }; - } - }, - getDependencyTreeRoots: () => { - return [...runtimeState.dependencyTreeRoots]; - }, + openSync(p, flags, mode) { + return this.makeCallSync( + p, + () => { + return this.baseFs.openSync(p, flags, mode) + }, + (zipFs, { subPath }) => { + return this.remapFd(zipFs, zipFs.openSync(subPath, flags, mode)) + } + ) + } - getAllLocators() { - const locators = []; + async opendirPromise(p, opts) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.opendirPromise(p, opts) + }, + async (zipFs, { subPath }) => { + return await zipFs.opendirPromise(subPath, opts) + }, + { + requireSubpath: false, + } + ) + } - for (const [name, entry] of packageRegistry) for (const reference of entry.keys()) if (name !== null && reference !== null) locators.push({ - name, - reference - }); + opendirSync(p, opts) { + return this.makeCallSync( + p, + () => { + return this.baseFs.opendirSync(p, opts) + }, + (zipFs, { subPath }) => { + return zipFs.opendirSync(subPath, opts) + }, + { + requireSubpath: false, + } + ) + } - return locators; - }, + async readPromise(fd, buffer, offset, length, position) { + if ((fd & ZIP_FD) === 0) + return await this.baseFs.readPromise( + fd, + buffer, + offset, + length, + position + ) + const entry = this.fdMap.get(fd) + if (typeof entry === `undefined`) + throw Object.assign( + new Error(`EBADF: bad file descriptor, read`), + { + code: `EBADF`, + } + ) + const [zipFs, realFd] = entry + return await zipFs.readPromise( + realFd, + buffer, + offset, + length, + position + ) + } - getPackageInformation: locator => { - const info = getPackageInformation(locator); - if (info === null) return null; - const packageLocation = npath.fromPortablePath(info.packageLocation); - const nativeInfo = { ...info, - packageLocation - }; - return nativeInfo; - }, - findPackageLocator: path => { - return findPackageLocator(npath.toPortablePath(path)); - }, - resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts); - if (resolution === null) return null; - return npath.fromPortablePath(resolution); - }), - resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts) => { - return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts)); - }), - resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts); - if (resolution === null) return null; - return npath.fromPortablePath(resolution); - }), - resolveVirtual: maybeLog(`resolveVirtual`, path => { - const result = resolveVirtual(npath.toPortablePath(path)); - - if (result !== null) { - return npath.fromPortablePath(result); - } else { - return null; - } - }) - }; -} -// CONCATENATED MODULE: ./sources/loader/makeManager.ts - - -function makeManager(pnpapi, opts) { - const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); - const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); - const apiMetadata = new Map([[initialApiPath, { - cache: external_module_.Module._cache, - instance: pnpapi, - stats: initialApiStats, - lastRefreshCheck: Date.now() - }]]); - - function loadApiInstance(pnpApiPath) { - const nativePath = npath.fromPortablePath(pnpApiPath); // @ts-expect-error - - const module = new external_module_.Module(nativePath, null); // @ts-expect-error - - module.load(nativePath); - return module.exports; - } - - function refreshApiEntry(pnpApiPath, apiEntry) { - const timeNow = Date.now(); - if (timeNow - apiEntry.lastRefreshCheck < 500) return; - apiEntry.lastRefreshCheck = timeNow; - const stats = opts.fakeFs.statSync(pnpApiPath); - - if (stats.mtime > apiEntry.stats.mtime) { - console.warn(`[Warning] The runtime detected new informations in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); - apiEntry.stats = stats; - apiEntry.instance = loadApiInstance(pnpApiPath); - } - } + readSync(fd, buffer, offset, length, position) { + if ((fd & ZIP_FD) === 0) + return this.baseFs.readSync(fd, buffer, offset, length, position) + const entry = this.fdMap.get(fd) + if (typeof entry === `undefined`) + throw Object.assign( + new Error(`EBADF: bad file descriptor, read`), + { + code: `EBADF`, + } + ) + const [zipFs, realFd] = entry + return zipFs.readSync(realFd, buffer, offset, length, position) + } - function getApiEntry(pnpApiPath, refresh = false) { - let apiEntry = apiMetadata.get(pnpApiPath); + async writePromise(fd, buffer, offset, length, position) { + if ((fd & ZIP_FD) === 0) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset) + } else { + return await this.baseFs.writePromise( + fd, + buffer, + offset, + length, + position + ) + } + } - if (typeof apiEntry !== `undefined`) { - if (refresh) { - refreshApiEntry(pnpApiPath, apiEntry); - } - } else { - apiMetadata.set(pnpApiPath, apiEntry = { - cache: {}, - instance: loadApiInstance(pnpApiPath), - stats: opts.fakeFs.statSync(pnpApiPath), - lastRefreshCheck: Date.now() - }); - } + const entry = this.fdMap.get(fd) + if (typeof entry === `undefined`) + throw Object.assign( + new Error(`EBADF: bad file descriptor, write`), + { + code: `EBADF`, + } + ) + const [zipFs, realFd] = entry - return apiEntry; - } + if (typeof buffer === `string`) { + return await zipFs.writePromise(realFd, buffer, offset) + } else { + return await zipFs.writePromise( + realFd, + buffer, + offset, + length, + position + ) + } + } - const findApiPathCache = new Map(); + writeSync(fd, buffer, offset, length, position) { + if ((fd & ZIP_FD) === 0) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset) + } else { + return this.baseFs.writeSync( + fd, + buffer, + offset, + length, + position + ) + } + } - function addToCacheAndReturn(start, end, target) { - if (target !== null) target = VirtualFS.resolveVirtual(target); - let curr; - let next = start; + const entry = this.fdMap.get(fd) + if (typeof entry === `undefined`) + throw Object.assign( + new Error(`EBADF: bad file descriptor, write`), + { + code: `EBADF`, + } + ) + const [zipFs, realFd] = entry - do { - curr = next; - findApiPathCache.set(curr, target); - next = ppath.dirname(curr); - } while (curr !== end); + if (typeof buffer === `string`) { + return zipFs.writeSync(realFd, buffer, offset) + } else { + return zipFs.writeSync(realFd, buffer, offset, length, position) + } + } - return target; - } + async closePromise(fd) { + if ((fd & ZIP_FD) === 0) return await this.baseFs.closePromise(fd) + const entry = this.fdMap.get(fd) + if (typeof entry === `undefined`) + throw Object.assign( + new Error(`EBADF: bad file descriptor, close`), + { + code: `EBADF`, + } + ) + this.fdMap.delete(fd) + const [zipFs, realFd] = entry + return await zipFs.closePromise(realFd) + } - function findApiPathFor(modulePath) { - const controlledBy = []; + closeSync(fd) { + if ((fd & ZIP_FD) === 0) return this.baseFs.closeSync(fd) + const entry = this.fdMap.get(fd) + if (typeof entry === `undefined`) + throw Object.assign( + new Error(`EBADF: bad file descriptor, close`), + { + code: `EBADF`, + } + ) + this.fdMap.delete(fd) + const [zipFs, realFd] = entry + return zipFs.closeSync(realFd) + } - for (const [apiPath, apiEntry] of apiMetadata) { - const locator = apiEntry.instance.findPackageLocator(modulePath); + createReadStream(p, opts) { + if (p === null) return this.baseFs.createReadStream(p, opts) + return this.makeCallSync( + p, + () => { + return this.baseFs.createReadStream(p, opts) + }, + (zipFs, { subPath }) => { + return zipFs.createReadStream(subPath, opts) + } + ) + } - if (locator) { - if (apiMetadata.size === 1) { - return apiPath; - } else { - controlledBy.push(apiPath); - } - } - } + createWriteStream(p, opts) { + if (p === null) return this.baseFs.createWriteStream(p, opts) + return this.makeCallSync( + p, + () => { + return this.baseFs.createWriteStream(p, opts) + }, + (zipFs, { subPath }) => { + return zipFs.createWriteStream(subPath, opts) + } + ) + } - if (controlledBy.length !== 0) { - if (controlledBy.length === 1) return controlledBy[0]; - throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances.\nThis is usually caused by using the global cache (enableGlobalCache: true)\n\nControlled by:\n${controlledBy.map(pnpPath => ` ${npath.fromPortablePath(pnpPath)}`).join(`\n`)}`); - } + async realpathPromise(p) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.realpathPromise(p) + }, + async (zipFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath) + + if (typeof realArchivePath === `undefined`) { + realArchivePath = await this.baseFs.realpathPromise( + archivePath + ) + this.realPaths.set(archivePath, realArchivePath) + } - const start = ppath.resolve(npath.toPortablePath(modulePath)); - let curr; - let next = start; - - do { - curr = next; - const cached = findApiPathCache.get(curr); - if (cached !== undefined) return addToCacheAndReturn(start, curr, cached); - const candidate = ppath.join(curr, `.pnp.js`); - if (xfs.existsSync(candidate) && xfs.statSync(candidate).isFile()) return addToCacheAndReturn(start, curr, candidate); - const cjsCandidate = ppath.join(curr, `.pnp.cjs`); - if (xfs.existsSync(cjsCandidate) && xfs.statSync(cjsCandidate).isFile()) return addToCacheAndReturn(start, curr, cjsCandidate); - next = ppath.dirname(curr); - } while (curr !== PortablePath.root); - - return addToCacheAndReturn(start, curr, null); - } - - function getApiPathFromParent(parent) { - if (parent == null) return initialApiPath; - - if (typeof parent.pnpApiPath === `undefined`) { - if (parent.filename !== null) { - return parent.pnpApiPath = findApiPathFor(parent.filename); - } else { - return initialApiPath; - } - } + return this.pathUtils.join( + realArchivePath, + this.pathUtils.relative( + PortablePath.root, + await zipFs.realpathPromise(subPath) + ) + ) + } + ) + } - if (parent.pnpApiPath !== null) return parent.pnpApiPath; - return null; - } + realpathSync(p) { + return this.makeCallSync( + p, + () => { + return this.baseFs.realpathSync(p) + }, + (zipFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath) + + if (typeof realArchivePath === `undefined`) { + realArchivePath = this.baseFs.realpathSync(archivePath) + this.realPaths.set(archivePath, realArchivePath) + } - return { - getApiPathFromParent, - findApiPathFor, - getApiEntry - }; -} -// CONCATENATED MODULE: ./sources/loader/_entryPoint.ts - - - - - - - - - // We must copy the fs into a local, because otherwise -// 1. we would make the NodeFS instance use the function that we patched (infinite loop) -// 2. Object.create(fs) isn't enough, since it won't prevent the proto from being modified - -const localFs = { ...(external_fs_default()) -}; -const nodeFs = new NodeFS(localFs); -const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); -const defaultPnpapiResolution = __filename; // We create a virtual filesystem that will do three things: -// 1. all requests inside a folder named "$$virtual" will be remapped according the virtual folder rules -// 2. all requests going inside a Zip archive will be handled by the Zip fs implementation -// 3. any remaining request will be forwarded to Node as-is - -const defaultFsLayer = new VirtualFS({ - baseFs: new ZipOpenFS({ - baseFs: nodeFs, - libzip: getLibzipSync(), - maxOpenFiles: 80, - readOnlyArchives: true - }) -}); -let manager; -const defaultApi = Object.assign(makeApi(defaultRuntimeState, { - fakeFs: defaultFsLayer, - pnpapiResolution: defaultPnpapiResolution -}), { - /** - * Can be used to generate a different API than the default one (for example - * to map it on `/` rather than the local directory path, or to use a - * different FS layer than the default one). - */ - makeApi: ({ - basePath = undefined, - fakeFs = defaultFsLayer, - pnpapiResolution = defaultPnpapiResolution, - ...rest - }) => { - const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; - return makeApi(apiRuntimeState, { - fakeFs, - pnpapiResolution, - ...rest - }); - }, - - /** - * Will inject the specified API into the environment, monkey-patching FS. Is - * automatically called when the hook is loaded through `--require`. - */ - setup: api => { - applyPatch(api || defaultApi, { - fakeFs: defaultFsLayer, - manager - }); - } -}); -manager = makeManager(defaultApi, { - fakeFs: defaultFsLayer -}); // eslint-disable-next-line arca/no-default-export - -/* harmony default export */ const _entryPoint = (defaultApi); - -if (__non_webpack_module__.parent && __non_webpack_module__.parent.id === `internal/preload`) { - defaultApi.setup(); - - if (__non_webpack_module__.filename) { - // We delete it from the cache in order to support the case where the CLI resolver is invoked from "yarn run" - // It's annoying because it might cause some issues when the file is multiple times in NODE_OPTIONS, but it shouldn't happen anyway. - delete (external_module_default())._cache[__non_webpack_module__.filename]; - } -} + return this.pathUtils.join( + realArchivePath, + this.pathUtils.relative( + PortablePath.root, + zipFs.realpathSync(subPath) + ) + ) + } + ) + } -if (process.mainModule === __non_webpack_module__) { - const reportError = (code, message, data) => { - process.stdout.write(`${JSON.stringify([{ - code, - message, - data - }, null])}\n`); - }; - - const reportSuccess = resolution => { - process.stdout.write(`${JSON.stringify([null, resolution])}\n`); - }; - - const processResolution = (request, issuer) => { - try { - reportSuccess(defaultApi.resolveRequest(request, issuer)); - } catch (error) { - reportError(error.code, error.message, error.data); - } - }; - - const processRequest = data => { - try { - const [request, issuer] = JSON.parse(data); - processResolution(request, issuer); - } catch (error) { - reportError(`INVALID_JSON`, error.message, error.data); - } - }; - - if (process.argv.length > 2) { - if (process.argv.length !== 4) { - process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} \n`); - process.exitCode = 64; - /* EX_USAGE */ - } else { - processResolution(process.argv[2], process.argv[3]); - } - } else { - let buffer = ``; - const decoder = new (external_string_decoder_default()).StringDecoder(); - process.stdin.on(`data`, chunk => { - buffer += decoder.write(chunk); - - do { - const index = buffer.indexOf(`\n`); - if (index === -1) break; - const line = buffer.slice(0, index); - buffer = buffer.slice(index + 1); - processRequest(line); - } while (true); - }); - } -} + async existsPromise(p) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.existsPromise(p) + }, + async (zipFs, { subPath }) => { + return await zipFs.existsPromise(subPath) + } + ) + } -/***/ }), + existsSync(p) { + return this.makeCallSync( + p, + () => { + return this.baseFs.existsSync(p) + }, + (zipFs, { subPath }) => { + return zipFs.existsSync(subPath) + } + ) + } -/***/ 368: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + async accessPromise(p, mode) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.accessPromise(p, mode) + }, + async (zipFs, { subPath }) => { + return await zipFs.accessPromise(subPath, mode) + } + ) + } -var frozenFs = Object.assign({}, __webpack_require__(747)); -var Module = typeof Module !== "undefined" ? Module : {}; -var moduleOverrides = {}; -var key; -for (key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } -} -var arguments_ = []; -var thisProgram = "./this.program"; -var quit_ = function(status, toThrow) { - throw toThrow; -}; -var ENVIRONMENT_IS_WORKER = false; -var ENVIRONMENT_IS_NODE = true; -var scriptDirectory = ""; -function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; -} -var read_, readBinary; -var nodeFS; -var nodePath; -if (ENVIRONMENT_IS_NODE) { - if (ENVIRONMENT_IS_WORKER) { - scriptDirectory = __webpack_require__(622).dirname(scriptDirectory) + "/"; - } else { - scriptDirectory = __dirname + "/"; - } - read_ = function shell_read(filename, binary) { - var ret = tryParseAsDataURI(filename); - if (ret) { - return binary ? ret : ret.toString(); - } - if (!nodeFS) nodeFS = frozenFs; - if (!nodePath) nodePath = __webpack_require__(622); - filename = nodePath["normalize"](filename); - return nodeFS["readFileSync"](filename, binary ? null : "utf8"); - }; - readBinary = function readBinary(filename) { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - if (process["argv"].length > 1) { - thisProgram = process["argv"][1].replace(/\\/g, "/"); - } - arguments_ = process["argv"].slice(2); - if (true) { - module["exports"] = Module; - } - quit_ = function(status) { - process["exit"](status); - }; - Module["inspect"] = function() { - return "[Emscripten Module object]"; - }; -} else { -} -var out = Module["print"] || console.log.bind(console); -var err = Module["printErr"] || console.warn.bind(console); -for (key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } -} -moduleOverrides = null; -if (Module["arguments"]) arguments_ = Module["arguments"]; -if (Module["thisProgram"]) thisProgram = Module["thisProgram"]; -if (Module["quit"]) quit_ = Module["quit"]; -var STACK_ALIGN = 16; -function alignMemory(size, factor) { - if (!factor) factor = STACK_ALIGN; - return Math.ceil(size / factor) * factor; -} -var tempRet0 = 0; -var setTempRet0 = function(value) { - tempRet0 = value; -}; -var wasmBinary; -if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; -var noExitRuntime; -if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"]; -if (typeof WebAssembly !== "object") { - abort("no native wasm support detected"); -} -function getValue(ptr, type, noSafe) { - type = type || "i8"; - if (type.charAt(type.length - 1) === "*") type = "i32"; - switch (type) { - case "i1": - return HEAP8[ptr >> 0]; - case "i8": - return HEAP8[ptr >> 0]; - case "i16": - return HEAP16[ptr >> 1]; - case "i32": - return HEAP32[ptr >> 2]; - case "i64": - return HEAP32[ptr >> 2]; - case "float": - return HEAPF32[ptr >> 2]; - case "double": - return HEAPF64[ptr >> 3]; - default: - abort("invalid type for getValue: " + type); - } - return null; -} -var wasmMemory; -var wasmTable = new WebAssembly.Table({ - initial: 31, - maximum: 31, - element: "anyfunc" -}); -var ABORT = false; -var EXITSTATUS = 0; -function assert(condition, text) { - if (!condition) { - abort("Assertion failed: " + text); - } -} -function getCFunc(ident) { - var func = Module["_" + ident]; - assert( - func, - "Cannot call unknown function " + ident + ", make sure it is exported" - ); - return func; -} -function ccall(ident, returnType, argTypes, args, opts) { - var toC = { - string: function(str) { - var ret = 0; - if (str !== null && str !== undefined && str !== 0) { - var len = (str.length << 2) + 1; - ret = stackAlloc(len); - stringToUTF8(str, ret, len); - } - return ret; - }, - array: function(arr) { - var ret = stackAlloc(arr.length); - writeArrayToMemory(arr, ret); - return ret; - } - }; - function convertReturnValue(ret) { - if (returnType === "string") return UTF8ToString(ret); - if (returnType === "boolean") return Boolean(ret); - return ret; - } - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - ret = convertReturnValue(ret); - if (stack !== 0) stackRestore(stack); - return ret; -} -function cwrap(ident, returnType, argTypes, opts) { - argTypes = argTypes || []; - var numericArgs = argTypes.every(function(type) { - return type === "number"; - }); - var numericRet = returnType !== "string"; - if (numericRet && numericArgs && !opts) { - return getCFunc(ident); - } - return function() { - return ccall(ident, returnType, argTypes, arguments, opts); - }; -} -var UTF8Decoder = - typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; -function UTF8ArrayToString(heap, idx, maxBytesToRead) { - var endIdx = idx + maxBytesToRead; - var endPtr = idx; - while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr; - if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { - return UTF8Decoder.decode(heap.subarray(idx, endPtr)); - } else { - var str = ""; - while (idx < endPtr) { - var u0 = heap[idx++]; - if (!(u0 & 128)) { - str += String.fromCharCode(u0); - continue; - } - var u1 = heap[idx++] & 63; - if ((u0 & 224) == 192) { - str += String.fromCharCode(((u0 & 31) << 6) | u1); - continue; - } - var u2 = heap[idx++] & 63; - if ((u0 & 240) == 224) { - u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; - } else { - u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63); - } - if (u0 < 65536) { - str += String.fromCharCode(u0); - } else { - var ch = u0 - 65536; - str += String.fromCharCode(55296 | (ch >> 10), 56320 | (ch & 1023)); - } - } - } - return str; -} -function UTF8ToString(ptr, maxBytesToRead) { - return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ""; -} -function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = (65536 + ((u & 1023) << 10)) | (u1 & 1023); - } - if (u <= 127) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 192 | (u >> 6); - heap[outIdx++] = 128 | (u & 63); - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 224 | (u >> 12); - heap[outIdx++] = 128 | ((u >> 6) & 63); - heap[outIdx++] = 128 | (u & 63); - } else { - if (outIdx + 3 >= endIdx) break; - heap[outIdx++] = 240 | (u >> 18); - heap[outIdx++] = 128 | ((u >> 12) & 63); - heap[outIdx++] = 128 | ((u >> 6) & 63); - heap[outIdx++] = 128 | (u & 63); - } - } - heap[outIdx] = 0; - return outIdx - startIdx; -} -function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); -} -function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) - u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023); - if (u <= 127) ++len; - else if (u <= 2047) len += 2; - else if (u <= 65535) len += 3; - else len += 4; - } - return len; -} -function allocateUTF8(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8Array(str, HEAP8, ret, size); - return ret; -} -function writeArrayToMemory(array, buffer) { - HEAP8.set(array, buffer); -} -var WASM_PAGE_SIZE = 65536; -function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - (x % multiple); - } - return x; -} -var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; -function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module["HEAP8"] = HEAP8 = new Int8Array(buf); - Module["HEAP16"] = HEAP16 = new Int16Array(buf); - Module["HEAP32"] = HEAP32 = new Int32Array(buf); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); - Module["HEAPU16"] = HEAPU16 = new Uint16Array(buf); - Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf); - Module["HEAPF32"] = HEAPF32 = new Float32Array(buf); - Module["HEAPF64"] = HEAPF64 = new Float64Array(buf); -} -var INITIAL_INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216; -if (Module["wasmMemory"]) { - wasmMemory = Module["wasmMemory"]; -} else { - wasmMemory = new WebAssembly.Memory({ - initial: INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE, - maximum: 2147483648 / WASM_PAGE_SIZE - }); -} -if (wasmMemory) { - buffer = wasmMemory.buffer; -} -INITIAL_INITIAL_MEMORY = buffer.byteLength; -updateGlobalBufferAndViews(buffer); -var __ATPRERUN__ = []; -var __ATINIT__ = []; -var __ATMAIN__ = []; -var __ATPOSTRUN__ = []; -var runtimeInitialized = false; -function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); -} -function initRuntime() { - runtimeInitialized = true; - if (!Module["noFSInit"] && !FS.init.initialized) FS.init(); - TTY.init(); - callRuntimeCallbacks(__ATINIT__); -} -function preMain() { - FS.ignorePermissions = false; - callRuntimeCallbacks(__ATMAIN__); -} -function postRun() { - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); -} -function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); -} -function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); -} -var Math_abs = Math.abs; -var Math_ceil = Math.ceil; -var Math_floor = Math.floor; -var Math_min = Math.min; -var runDependencies = 0; -var runDependencyWatcher = null; -var dependenciesFulfilled = null; -function getUniqueRunDependency(id) { - return id; -} -function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } -} -function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (runDependencyWatcher !== null) { - clearInterval(runDependencyWatcher); - runDependencyWatcher = null; - } - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } -} -Module["preloadedImages"] = {}; -Module["preloadedAudios"] = {}; -function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what += ""; - err(what); - ABORT = true; - EXITSTATUS = 1; - what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; - var e = new WebAssembly.RuntimeError(what); - throw e; -} -function hasPrefix(str, prefix) { - return String.prototype.startsWith - ? str.startsWith(prefix) - : str.indexOf(prefix) === 0; -} -var dataURIPrefix = "data:application/octet-stream;base64,"; -function isDataURI(filename) { - return hasPrefix(filename, dataURIPrefix); -} -var wasmBinaryFile = - "data:application/octet-stream;base64,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AkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiADYCACADIAIgBGtBfHEiAmoiAUF8aiAANgIAIAJBCUkNACADIAA2AgggAyAANgIEIAFBeGogADYCACABQXRqIAA2AgAgAkEZSQ0AIAMgADYCGCADIAA2AhQgAyAANgIQIAMgADYCDCABQXBqIAA2AgAgAUFsaiAANgIAIAFBaGogADYCACABQWRqIAA2AgAgAiADQQRxQRhyIgFrIgJBIEkNACAArSIFQiCGIAWEIQUgASADaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQWBqIgJBH0sNAAsLC9wBAQF/IwBBEGsiASQAIAEgADYCDCABKAIMBEAgASgCDCgCKARAIAEoAgwoAihBADYCKCABKAIMKAIoQgA3AyAgASgCDAJ+IAEoAgwpAxggASgCDCkDIFYEQCABKAIMKQMYDAELIAEoAgwpAyALNwMYCyABIAEoAgwpAxg3AwADQCABKQMAIAEoAgwpAwhaRQRAIAEoAgwoAgAgASkDAKdBBHRqKAIAEBYgASABKQMAQgF8NwMADAELCyABKAIMKAIAEBYgASgCDCgCBBAWIAEoAgwQFgsgAUEQaiQAC2ACAX8BfiMAQRBrIgEkACABIAA2AgQCQCABKAIEKAIkQQFHBEAgASgCBEEMakESQQAQFSABQn83AwgMAQsgASABKAIEQQBCAEENECI3AwgLIAEpAwghAiABQRBqJAAgAgugAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjcDCCADIAMoAhgoAgAgAygCFCADKQMIEMsBIgI3AwACQCACQgBTBEAgAygCGEEIaiADKAIYKAIAEBggA0F/NgIcDAELIAMpAwAgAykDCFIEQCADKAIYQQhqQQZBGxAVIANBfzYCHAwBCyADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtrAQF/IwBBIGsiAiAANgIcIAJCASACKAIcrYY3AxAgAkEMaiABNgIAA0AgAiACKAIMIgBBBGo2AgwgAiAAKAIANgIIIAIoAghBAEhFBEAgAiACKQMQQgEgAigCCK2GhDcDEAwBCwsgAikDEAsvAQF/IwBBEGsiASQAIAEgADYCDCABKAIMKAIIEBYgASgCDEEANgIIIAFBEGokAAvNAQEBfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCCC0AKEEBcQRAIAJBfzYCDAwBCyACKAIERQRAIAIoAghBDGpBEkEAEBUgAkF/NgIMDAELIAIoAgQQPCACKAIIKAIABEAgAigCCCgCACACKAIEEDlBAEgEQCACKAIIQQxqIAIoAggoAgAQGCACQX82AgwMAgsLIAIoAgggAigCBEI4QQMQIkIAUwRAIAJBfzYCDAwBCyACQQA2AgwLIAIoAgwhACACQRBqJAAgAAsxAQF/IwBBEGsiASQAIAEgADYCDCABKAIMBEAgASgCDBBcIAEoAgwQFgsgAUEQaiQAC98EAQF/IwBBIGsiAiAANgIYIAIgATYCFAJAIAIoAhhFBEAgAkEBNgIcDAELIAIgAigCGCgCADYCDAJAIAIoAhgoAggEQCACIAIoAhgoAgg2AhAMAQsgAkEBNgIQIAJBADYCCANAAkAgAigCCCACKAIYLwEETw0AAkAgAigCDCACKAIIai0AAEEfSgRAIAIoAgwgAigCCGotAABBgAFIDQELIAIoAgwgAigCCGotAABBDUYNACACKAIMIAIoAghqLQAAQQpGDQAgAigCDCACKAIIai0AAEEJRgRADAELIAJBAzYCEAJAIAIoAgwgAigCCGotAABB4AFxQcABRgRAIAJBATYCAAwBCwJAIAIoAgwgAigCCGotAABB8AFxQeABRgRAIAJBAjYCAAwBCwJAIAIoAgwgAigCCGotAABB+AFxQfABRgRAIAJBAzYCAAwBCyACQQQ2AhAMBAsLCyACKAIIIAIoAgBqIAIoAhgvAQRPBEAgAkEENgIQDAILIAJBATYCBANAIAIoAgQgAigCAE0EQCACKAIMIAIoAgggAigCBGpqLQAAQcABcUGAAUcEQCACQQQ2AhAMBgUgAiACKAIEQQFqNgIEDAILAAsLIAIgAigCACACKAIIajYCCAsgAiACKAIIQQFqNgIIDAELCwsgAigCGCACKAIQNgIIIAIoAhQEQAJAIAIoAhRBAkcNACACKAIQQQNHDQAgAkECNgIQIAIoAhhBAjYCCAsCQCACKAIUIAIoAhBGDQAgAigCEEEBRg0AIAJBBTYCHAwCCwsgAiACKAIQNgIcCyACKAIcC2oBAX8jAEEQayIBIAA2AgwgASgCDEIANwMAIAEoAgxBADYCCCABKAIMQn83AxAgASgCDEEANgIsIAEoAgxBfzYCKCABKAIMQgA3AxggASgCDEIANwMgIAEoAgxBADsBMCABKAIMQQA7ATILbwEBfwJAIABBA2pBfHEiAUEBTkEAAn9BqKABKAIAIgBFBEBBqKABQdChwQI2AgBB0KHBAiEACyAAIAFqIgEgAE0LGw0AIAE/AEEQdEsEQCABEBRFDQELQaigASABNgIAIAAPC0G0nAFBMDYCAEF/Cz8BAX8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCADKAIIIAMoAgQQ6wIhACADQRBqJAAgAAuqAgEBfyMAQRBrIgEkACABIAA2AgwgASgCDARAIAEoAgwoAgAEQCABKAIMKAIAEDIaIAEoAgwoAgAQHAsgASgCDCgCHBAWIAEoAgwoAiAQJiABKAIMKAIkECYgASgCDCgCUBCAAyABKAIMKAJABEAgAUIANwMAA0AgASkDACABKAIMKQMwWkUEQCABKAIMKAJAIAEpAwCnQQR0ahBiIAEgASkDAEIBfDcDAAwBCwsgASgCDCgCQBAWCyABQgA3AwADQCABKQMAIAEoAgwoAkStWkUEQCABKAIMKAJMIAEpAwCnQQJ0aigCABCDAyABIAEpAwBCAXw3AwAMAQsLIAEoAgwoAkwQFiABKAIMKAJUEPoCIAEoAgxBCGoQOCABKAIMEBYLIAFBEGokAAtvAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCGCADKAIQrRAfNgIMAkAgAygCDEUEQCADQX82AhwMAQsgAygCDCADKAIUIAMoAhAQGhogA0EANgIcCyADKAIcGiADQSBqJAALogEBAX8jAEEgayIEJAAgBCAANgIYIAQgATcDECAEIAI2AgwgBCADNgIIIAQgBCgCDCAEKQMQECoiADYCBAJAIABFBEAgBCgCCEEOQQAQFSAEQQA2AhwMAQsgBCgCGCAEKAIEKAIEIAQpAxAgBCgCCBBhQQBIBEAgBCgCBBAXIARBADYCHAwBCyAEIAQoAgQ2AhwLIAQoAhwhACAEQSBqJAAgAAugAQEBfyMAQSBrIgMkACADIAA2AhQgAyABNgIQIAMgAjcDCCADIAMoAhA2AgQCQCADKQMIQghUBEAgA0J/NwMYDAELIwBBEGsiACADKAIUNgIMIAAoAgwoAgAhACADKAIEIAA2AgAjAEEQayIAIAMoAhQ2AgwgACgCDCgCBCEAIAMoAgQgADYCBCADQgg3AxgLIAMpAxghAiADQSBqJAAgAguDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQX9qIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUF/aiIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELPwEBfyMAQRBrIgIgADYCDCACIAE2AgggAigCDARAIAIoAgwgAigCCCgCADYCACACKAIMIAIoAggoAgQ2AgQLC7wCAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCCAEKAIIRQRAIAQgBCgCGEEIajYCCAsCQCAEKQMQIAQoAhgpAzBaBEAgBCgCCEESQQAQFSAEQQA2AhwMAQsCQCAEKAIMQQhxRQRAIAQoAhgoAkAgBCkDEKdBBHRqKAIEDQELIAQoAhgoAkAgBCkDEKdBBHRqKAIARQRAIAQoAghBEkEAEBUgBEEANgIcDAILAkAgBCgCGCgCQCAEKQMQp0EEdGotAAxBAXFFDQAgBCgCDEEIcQ0AIAQoAghBF0EAEBUgBEEANgIcDAILIAQgBCgCGCgCQCAEKQMQp0EEdGooAgA2AhwMAQsgBCAEKAIYKAJAIAQpAxCnQQR0aigCBDYCHAsgBCgCHCEAIARBIGokACAAC4QBAQF/IwBBEGsiASQAIAEgADYCCCABQdgAEBkiADYCBAJAIABFBEAgAUEANgIMDAELAkAgASgCCARAIAEoAgQgASgCCEHYABAaGgwBCyABKAIEEF0LIAEoAgRBADYCACABKAIEQQE6AAUgASABKAIENgIMCyABKAIMIQAgAUEQaiQAIAAL1AIBAX8jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMAkAgBCgCGEUEQCAEKAIUBEAgBCgCFEEANgIACyAEQbDTADYCHAwBCyAEKAIQQcAAcUUEQCAEKAIYKAIIRQRAIAQoAhhBABA7GgsCQAJAAkAgBCgCEEGAAXFFDQAgBCgCGCgCCEEBRg0AIAQoAhgoAghBAkcNAQsgBCgCGCgCCEEERw0BCyAEKAIYKAIMRQRAIAQoAhgoAgAgBCgCGC8BBCAEKAIYQRBqIAQoAgwQ0gEhACAEKAIYIAA2AgwgAEUEQCAEQQA2AhwMBAsLIAQoAhQEQCAEKAIUIAQoAhgoAhA2AgALIAQgBCgCGCgCDDYCHAwCCwsgBCgCFARAIAQoAhQgBCgCGC8BBDYCAAsgBCAEKAIYKAIANgIcCyAEKAIcIQAgBEEgaiQAIAALOQEBfyMAQRBrIgEgADYCDEEAIQAgASgCDC0AAEEBcQR/IAEoAgwpAxAgASgCDCkDCFEFQQALQQFxC/ICAQF/IwBBEGsiASQAIAEgADYCCAJAIAEoAggtAChBAXEEQCABQX82AgwMAQsgASgCCCgCJEEDRgRAIAEoAghBDGpBF0EAEBUgAUF/NgIMDAELAkAgASgCCCgCIEEASwRAAn8jAEEQayIAIAEoAgg2AgwgACgCDCkDGELAAINQCwRAIAEoAghBDGpBHUEAEBUgAUF/NgIMDAMLDAELIAEoAggoAgAEQCABKAIIKAIAEElBAEgEQCABKAIIQQxqIAEoAggoAgAQGCABQX82AgwMAwsLIAEoAghBAEIAQQAQIkIAUwRAIAEoAggoAgAEQCABKAIIKAIAEDIaCyABQX82AgwMAgsLIAEoAghBADoANCABKAIIQQA6ADUjAEEQayIAIAEoAghBDGo2AgwgACgCDARAIAAoAgxBADYCACAAKAIMQQA2AgQLIAEoAggiACAAKAIgQQFqNgIgIAFBADYCDAsgASgCDCEAIAFBEGokACAAC3cCAX8BfiMAQRBrIgEkACABIAA2AgQCQCABKAIELQAoQQFxBEAgAUJ/NwMIDAELIAEoAgQoAiBBAE0EQCABKAIEQQxqQRJBABAVIAFCfzcDCAwBCyABIAEoAgRBAEIAQQcQIjcDCAsgASkDCCECIAFBEGokACACC50BAQF/IwBBEGsiASAANgIIAkACQAJAIAEoAghFDQAgASgCCCgCIEUNACABKAIIKAIkDQELIAFBATYCDAwBCyABIAEoAggoAhw2AgQCQAJAIAEoAgRFDQAgASgCBCgCACABKAIIRw0AIAEoAgQoAgRBtP4ASQ0AIAEoAgQoAgRB0/4ATQ0BCyABQQE2AgwMAQsgAUEANgIMCyABKAIMC4ABAQN/IwBBEGsiAiAANgIMIAIgATYCCCACKAIIQQh2IQEgAigCDCgCCCEDIAIoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAE6AAAgAigCCEH/AXEhASACKAIMKAIIIQMgAigCDCICKAIUIQAgAiAAQQFqNgIUIAAgA2ogAToAAAuCAQECfyAARQRAIAEQGQ8LIAFBQE8EQEG0nAFBMDYCAEEADwsgAEF4akEQIAFBC2pBeHEgAUELSRsQ7gIiAgRAIAJBCGoPCyABEBkiAkUEQEEADwsgAiAAQXxBeCAAQXxqKAIAIgNBA3EbIANBeHFqIgMgASADIAFJGxAaGiAAEBYgAgubBQEBfyMAQUBqIgQkACAEIAA2AjggBCABNwMwIAQgAjYCLCAEIAM2AiggBEHIABAZIgA2AiQCQCAARQRAIARBADYCPAwBCyAEKAIkQgA3AzggBCgCJEIANwMYIAQoAiRCADcDMCAEKAIkQQA2AgAgBCgCJEEANgIEIAQoAiRCADcDCCAEKAIkQgA3AxAgBCgCJEEANgIoIAQoAiRCADcDIAJAIAQpAzBQBEBBCBAZIQAgBCgCJCAANgIEIABFBEAgBCgCJBAWIAQoAihBDkEAEBUgBEEANgI8DAMLIAQoAiQoAgRCADcDAAwBCyAEKAIkIAQpAzBBABC9AUEBcUUEQCAEKAIoQQ5BABAVIAQoAiQQNCAEQQA2AjwMAgsgBEIANwMIIARCADcDGCAEQgA3AxADQCAEKQMYIAQpAzBUBEAgBCgCOCAEKQMYp0EEdGopAwhQRQRAIAQoAjggBCkDGKdBBHRqKAIARQRAIAQoAihBEkEAEBUgBCgCJBA0IARBADYCPAwFCyAEKAIkKAIAIAQpAxCnQQR0aiAEKAI4IAQpAxinQQR0aigCADYCACAEKAIkKAIAIAQpAxCnQQR0aiAEKAI4IAQpAxinQQR0aikDCDcDCCAEKAIkKAIEIAQpAxinQQN0aiAEKQMINwMAIAQgBCgCOCAEKQMYp0EEdGopAwggBCkDCHw3AwggBCAEKQMQQgF8NwMQCyAEIAQpAxhCAXw3AxgMAQsLIAQoAiQgBCkDEDcDCCAEKAIkAn5CACAEKAIsDQAaIAQoAiQpAwgLNwMYIAQoAiQoAgQgBCgCJCkDCKdBA3RqIAQpAwg3AwAgBCgCJCAEKQMINwMwCyAEIAQoAiQ2AjwLIAQoAjwhACAEQUBrJAAgAAueAQEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AgggBCAEKAIYIAQpAxAgBCgCDCAEKAIIEEUiADYCBAJAIABFBEAgBEEANgIcDAELIAQgBCgCBCgCMEEAIAQoAgwgBCgCCBBHIgA2AgAgAEUEQCAEQQA2AhwMAQsgBCAEKAIANgIcCyAEKAIcIQAgBEEgaiQAIAAL2gEBAX8jAEEgayIEJAAgBCAAOwEaIAQgATsBGCAEIAI2AhQgBCADNgIQIARBEBAZIgA2AgwCQCAARQRAIARBADYCHAwBCyAEKAIMQQA2AgAgBCgCDCAEKAIQNgIEIAQoAgwgBC8BGjsBCCAEKAIMIAQvARg7AQoCQCAELwEYQQBKBEAgBCgCFCAELwEYEMkBIQAgBCgCDCAANgIMIABFBEAgBCgCDBAWIARBADYCHAwDCwwBCyAEKAIMQQA2AgwLIAQgBCgCDDYCHAsgBCgCHCEAIARBIGokACAAC4wDAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE7ARYgBCACNgIQIAQgAzYCDAJAIAQvARZFBEAgBEEANgIcDAELAkACQAJAAkAgBCgCEEGAMHEiAARAIABBgBBGDQEgAEGAIEYNAgwDCyAEQQA2AgQMAwsgBEECNgIEDAILIARBBDYCBAwBCyAEKAIMQRJBABAVIARBADYCHAwBCyAEQRQQGSIANgIIIABFBEAgBCgCDEEOQQAQFSAEQQA2AhwMAQsgBC8BFkEBahAZIQAgBCgCCCAANgIAIABFBEAgBCgCCBAWIARBADYCHAwBCyAEKAIIKAIAIAQoAhggBC8BFhAaGiAEKAIIKAIAIAQvARZqQQA6AAAgBCgCCCAELwEWOwEEIAQoAghBADYCCCAEKAIIQQA2AgwgBCgCCEEANgIQIAQoAgQEQCAEKAIIIAQoAgQQO0EFRgRAIAQoAggQJiAEKAIMQRJBABAVIARBADYCHAwCCwsgBCAEKAIINgIcCyAEKAIcIQAgBEEgaiQAIAALNwEBfyMAQRBrIgEgADYCCAJAIAEoAghFBEAgAUEAOwEODAELIAEgASgCCC8BBDsBDgsgAS8BDgtDAQN/AkAgAkUNAANAIAAtAAAiBCABLQAAIgVGBEAgAUEBaiEBIABBAWohACACQX9qIgINAQwCCwsgBCAFayEDCyADC5YBAQV/IAAoAkxBAE4EQEEBIQMLIAAoAgBBAXEiBEUEQCAAKAI0IgEEQCABIAAoAjg2AjgLIAAoAjgiAgRAIAIgATYCNAsgAEGwoQEoAgBGBEBBsKEBIAI2AgALCyAAEJsBIQEgACAAKAIMEQAAIQIgACgCYCIFBEAgBRAWCwJAIARFBEAgABAWDAELIANFDQALIAEgAnILjgMCAX8BfiMAQTBrIgQkACAEIAA2AiQgBCABNgIgIAQgAjYCHCAEIAM2AhgCQCAEKAIkRQRAIARCfzcDKAwBCyAEKAIgRQRAIAQoAhhBEkEAEBUgBEJ/NwMoDAELIAQoAhxBgyBxBEAgBEEYQRkgBCgCHEEBcRs2AhQgBEIANwMAA0AgBCkDACAEKAIkKQMwVARAIAQgBCgCJCAEKQMAIAQoAhwgBCgCGBBPNgIQIAQoAhAEQCAEKAIcQQJxBEAgBCAEKAIQIgAgABAsQQFqEKECNgIMIAQoAgwEQCAEIAQoAgxBAWo2AhALCyAEKAIgIAQoAhAgBCgCFBECAEUEQCMAQRBrIgAgBCgCGDYCDCAAKAIMBEAgACgCDEEANgIAIAAoAgxBADYCBAsgBCAEKQMANwMoDAULCyAEIAQpAwBCAXw3AwAMAQsLIAQoAhhBCUEAEBUgBEJ/NwMoDAELIAQgBCgCJCgCUCAEKAIgIAQoAhwgBCgCGBD+AjcDKAsgBCkDKCEFIARBMGokACAFC9AHAQF/IwBBIGsiASQAIAEgADYCHCABIAEoAhwoAiw2AhADQCABIAEoAhwoAjwgASgCHCgCdGsgASgCHCgCbGs2AhQgASgCHCgCbCABKAIQIAEoAhwoAixBhgJrak8EQCABKAIcKAI4IAEoAhwoAjggASgCEGogASgCECABKAIUaxAaGiABKAIcIgAgACgCcCABKAIQazYCcCABKAIcIgAgACgCbCABKAIQazYCbCABKAIcIgAgACgCXCABKAIQazYCXCABKAIcENwCIAEgASgCECABKAIUajYCFAsgASgCHCgCACgCBARAIAEgASgCHCgCACABKAIcKAJ0IAEoAhwoAjggASgCHCgCbGpqIAEoAhQQczYCGCABKAIcIgAgASgCGCAAKAJ0ajYCdCABKAIcKAJ0IAEoAhwoArQtakEDTwRAIAEgASgCHCgCbCABKAIcKAK0LWs2AgwgASgCHCABKAIcKAI4IAEoAgxqLQAANgJIIAEoAhwgASgCHCgCVCABKAIcKAI4IAEoAgxBAWpqLQAAIAEoAhwoAkggASgCHCgCWHRzcTYCSANAIAEoAhwoArQtBEAgASgCHCABKAIcKAJUIAEoAhwoAjggASgCDEECamotAAAgASgCHCgCSCABKAIcKAJYdHNxNgJIIAEoAhwoAkAgASgCDCABKAIcKAI0cUEBdGogASgCHCgCRCABKAIcKAJIQQF0ai8BADsBACABKAIcKAJEIAEoAhwoAkhBAXRqIAEoAgw7AQAgASABKAIMQQFqNgIMIAEoAhwiACAAKAK0LUF/ajYCtC0gASgCHCgCdCABKAIcKAK0LWpBA08NAQsLC0EAIQAgASgCHCgCdEGGAkkEfyABKAIcKAIAKAIEQQBHBUEAC0EBcQ0BCwsgASgCHCgCwC0gASgCHCgCPEkEQCABIAEoAhwoAmwgASgCHCgCdGo2AggCQCABKAIcKALALSABKAIISQRAIAEgASgCHCgCPCABKAIIazYCBCABKAIEQYICSwRAIAFBggI2AgQLIAEoAhwoAjggASgCCGpBACABKAIEEDMgASgCHCABKAIIIAEoAgRqNgLALQwBCyABKAIcKALALSABKAIIQYICakkEQCABIAEoAghBggJqIAEoAhwoAsAtazYCBCABKAIEIAEoAhwoAjwgASgCHCgCwC1rSwRAIAEgASgCHCgCPCABKAIcKALALWs2AgQLIAEoAhwoAjggASgCHCgCwC1qQQAgASgCBBAzIAEoAhwiACABKAIEIAAoAsAtajYCwC0LCwsgAUEgaiQAC4YFAQF/IwBBIGsiBCQAIAQgADYCHCAEIAE2AhggBCACNgIUIAQgAzYCECAEQQM2AgwCQCAEKAIcKAK8LUEQIAQoAgxrSgRAIAQgBCgCEDYCCCAEKAIcIgAgAC8BuC0gBCgCCEH//wNxIAQoAhwoArwtdHI7AbgtIAQoAhwvAbgtQf8BcSEBIAQoAhwoAgghAiAEKAIcIgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAhwvAbgtQQh1IQEgBCgCHCgCCCECIAQoAhwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCHCAEKAIIQf//A3FBECAEKAIcKAK8LWt1OwG4LSAEKAIcIgAgACgCvC0gBCgCDEEQa2o2ArwtDAELIAQoAhwiACAALwG4LSAEKAIQQf//A3EgBCgCHCgCvC10cjsBuC0gBCgCHCIAIAQoAgwgACgCvC1qNgK8LQsgBCgCHBC4ASAEKAIUQf8BcSEBIAQoAhwoAgghAiAEKAIcIgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAhRB//8DcUEIdSEBIAQoAhwoAgghAiAEKAIcIgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAhRBf3NB/wFxIQEgBCgCHCgCCCECIAQoAhwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCFEF/c0H//wNxQQh1IQEgBCgCHCgCCCECIAQoAhwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCHCgCCCAEKAIcKAIUaiAEKAIYIAQoAhQQGhogBCgCHCIAIAQoAhQgACgCFGo2AhQgBEEgaiQAC/kBAQF/IwBBIGsiAiQAIAIgADYCHCACIAE5AxACQCACKAIcRQ0AIAICfAJ8IAIrAxBEAAAAAAAAAABkBEAgAisDEAwBC0QAAAAAAAAAAAtEAAAAAAAA8D9jBEACfCACKwMQRAAAAAAAAAAAZARAIAIrAxAMAQtEAAAAAAAAAAALDAELRAAAAAAAAPA/CyACKAIcKwMoIAIoAhwrAyChoiACKAIcKwMgoDkDCCACKwMIIAIoAhwrAxihIAIoAhwrAxBkRQ0AIAIoAhwoAgAgAisDCCACKAIcKAIMIAIoAhwoAgQRGgAgAigCHCACKwMIOQMYCyACQSBqJAAL1AMBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhACQAJAIAMoAhgEQCADKAIUDQELIAMoAhBBEkEAEBUgA0EAOgAfDAELIAMoAhgpAwhCAFYEQCADIAMoAhQQfDYCDCADIAMoAgwgAygCGCgCAHA2AgggA0EANgIAIAMgAygCGCgCECADKAIIQQJ0aigCADYCBANAIAMoAgQEQAJAIAMoAgQoAhwgAygCDEcNACADKAIUIAMoAgQoAgAQWw0AAkAgAygCBCkDCEJ/UQRAAkAgAygCAARAIAMoAgAgAygCBCgCGDYCGAwBCyADKAIYKAIQIAMoAghBAnRqIAMoAgQoAhg2AgALIAMoAgQQFiADKAIYIgAgACkDCEJ/fDcDCAJAIAMoAhgiACkDCLogACgCALhEexSuR+F6hD+iY0UNACADKAIYKAIAQYACTQ0AIAMoAhggAygCGCgCAEEBdiADKAIQEFpBAXFFBEAgA0EAOgAfDAgLCwwBCyADKAIEQn83AxALIANBAToAHwwECyADIAMoAgQ2AgAgAyADKAIEKAIYNgIEDAELCwsgAygCEEEJQQAQFSADQQA6AB8LIAMtAB9BAXEhACADQSBqJAAgAAvfAgEBfyMAQTBrIgMkACADIAA2AiggAyABNgIkIAMgAjYCIAJAIAMoAiQgAygCKCgCAEYEQCADQQE6AC8MAQsgAyADKAIkQQQQeyIANgIcIABFBEAgAygCIEEOQQAQFSADQQA6AC8MAQsgAygCKCkDCEIAVgRAIANBADYCGANAIAMoAhggAygCKCgCAE9FBEAgAyADKAIoKAIQIAMoAhhBAnRqKAIANgIUA0AgAygCFARAIAMgAygCFCgCGDYCECADIAMoAhQoAhwgAygCJHA2AgwgAygCFCADKAIcIAMoAgxBAnRqKAIANgIYIAMoAhwgAygCDEECdGogAygCFDYCACADIAMoAhA2AhQMAQsLIAMgAygCGEEBajYCGAwBCwsLIAMoAigoAhAQFiADKAIoIAMoAhw2AhAgAygCKCADKAIkNgIAIANBAToALwsgAy0AL0EBcSEAIANBMGokACAAC00BAn8gAS0AACECAkAgAC0AACIDRQ0AIAIgA0cNAANAIAEtAAEhAiAALQABIgNFDQEgAUEBaiEBIABBAWohACACIANGDQALCyADIAJrC4kCAQF/IwBBEGsiASQAIAEgADYCDAJAIAEoAgwtAAVBAXEEQCABKAIMKAIAQQJxRQ0BCyABKAIMKAIwECYgASgCDEEANgIwCwJAIAEoAgwtAAVBAXEEQCABKAIMKAIAQQhxRQ0BCyABKAIMKAI0ECQgASgCDEEANgI0CwJAIAEoAgwtAAVBAXEEQCABKAIMKAIAQQRxRQ0BCyABKAIMKAI4ECYgASgCDEEANgI4CwJAIAEoAgwtAAVBAXEEQCABKAIMKAIAQYABcUUNAQsgASgCDCgCVARAIAEoAgwoAlRBACABKAIMKAJUECwQMwsgASgCDCgCVBAWIAEoAgxBADYCVAsgAUEQaiQAC/EBAQF/IwBBEGsiASAANgIMIAEoAgxBADYCACABKAIMQQA6AAQgASgCDEEAOgAFIAEoAgxBAToABiABKAIMQb8GOwEIIAEoAgxBCjsBCiABKAIMQQA7AQwgASgCDEF/NgIQIAEoAgxBADYCFCABKAIMQQA2AhggASgCDEIANwMgIAEoAgxCADcDKCABKAIMQQA2AjAgASgCDEEANgI0IAEoAgxBADYCOCABKAIMQQA2AjwgASgCDEEAOwFAIAEoAgxBgIDYjXg2AkQgASgCDEIANwNIIAEoAgxBADsBUCABKAIMQQA7AVIgASgCDEEANgJUC9oTAQF/IwBBsAFrIgMkACADIAA2AqgBIAMgATYCpAEgAyACNgKgASADQQA2ApABIAMgAygCpAEoAjBBABA7NgKUASADIAMoAqQBKAI4QQAQOzYCmAECQAJAAkACQCADKAKUAUECRgRAIAMoApgBQQFGDQELIAMoApQBQQFGBEAgAygCmAFBAkYNAQsgAygClAFBAkcNASADKAKYAUECRw0BCyADKAKkASIAIAAvAQxBgBByOwEMDAELIAMoAqQBIgAgAC8BDEH/7wNxOwEMIAMoApQBQQJGBEAgA0H14AEgAygCpAEoAjAgAygCqAFBCGoQxAE2ApABIAMoApABRQRAIANBfzYCrAEMAwsLAkAgAygCoAFBgAJxDQAgAygCmAFBAkcNACADQfXGASADKAKkASgCOCADKAKoAUEIahDEATYCSCADKAJIRQRAIAMoApABECQgA0F/NgKsAQwDCyADKAJIIAMoApABNgIAIAMgAygCSDYCkAELCwJAIAMoAqQBLwFSRQRAIAMoAqQBIgAgAC8BDEH+/wNxOwEMDAELIAMoAqQBIgAgAC8BDEEBcjsBDAsgAyADKAKkASADKAKgARCAAUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBAqNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBUgAygCkAEQJCADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAuIAMoAhwgAygCpAEpAyAQLgwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLgsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAuCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC4LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFSADKAIcEBcgAygCkAEQJCADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQUDYCjAEgAygCHBAXIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECo2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFSADKAKQARAkIANBfzYCrAEMAgsgAygCEEECECAgAygCEEHP0wBBAhBAIAMoAhAgAygCpAEvAVJB/wFxEIoBIAMoAhAgAygCpAEoAhBB//8DcRAgAn8jAEEQayIAIAMoAhA2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCEBAXIAMoApABECQgA0F/NgKsAQwCCyADQYGyAkEHIANBFWpBgAYQUDYCDCADKAIQEBcgAygCDCADKAKQATYCACADIAMoAgw2ApABCyADIANB0ABqQi4QKiIANgJMIABFBEAgAygCqAFBCGpBDkEAEBUgAygCkAEQJCADQX82AqwBDAELIAMoAkxBxdMAQcrTACADKAKgAUGAAnEbQQQQQCADKAKgAUGAAnFFBEAgAygCTAJ/QS0gAy0AhgFBAXENABogAygCpAEvAQgLQf//A3EQIAsgAygCTAJ/QS0gAy0AhgFBAXENABogAygCpAEvAQoLQf//A3EQICADKAJMIAMoAqQBLwEMECACQCADLQCFAUEBcQRAIAMoAkxB4wAQIAwBCyADKAJMIAMoAqQBKAIQQf//A3EQIAsgAygCpAEoAhQgA0GeAWogA0GcAWoQwwEgAygCTCADLwGeARAgIAMoAkwgAy8BnAEQIAJAAkAgAy0AhQFBAXFFDQAgAygCpAEpAyhCFFoNACADKAJMQQAQIQwBCyADKAJMIAMoAqQBKAIYECELAkACQCADKAKgAUGAAnFBgAJHDQAgAygCpAEpAyBC/////w9UBEAgAygCpAEpAyhC/////w9UDQELIAMoAkxBfxAhIAMoAkxBfxAhDAELAkAgAygCpAEpAyBC/////w9UBEAgAygCTCADKAKkASkDIKcQIQwBCyADKAJMQX8QIQsCQCADKAKkASkDKEL/////D1QEQCADKAJMIAMoAqQBKQMopxAhDAELIAMoAkxBfxAhCwsgAygCTCADKAKkASgCMBBSQf//A3EQICADIAMoAqQBKAI0IAMoAqABEIIBQf//A3EgAygCkAFBgAYQggFB//8DcWo2AogBIAMoAkwgAygCiAFB//8DcRAgIAMoAqABQYACcUUEQCADKAJMIAMoAqQBKAI4EFJB//8DcRAgIAMoAkwgAygCpAEoAjxB//8DcRAgIAMoAkwgAygCpAEvAUAQICADKAJMIAMoAqQBKAJEECECQCADKAKkASkDSEL/////D1QEQCADKAJMIAMoAqQBKQNIpxAhDAELIAMoAkxBfxAhCwsCfyMAQRBrIgAgAygCTDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFSADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAqgBIANB0ABqAn4jAEEQayIAIAMoAkw2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACwsQNkEASARAIAMoAkwQFyADKAKQARAkIANBfzYCrAEMAQsgAygCTBAXIAMoAqQBKAIwBEAgAygCqAEgAygCpAEoAjAQhgFBAEgEQCADKAKQARAkIANBfzYCrAEMAgsLIAMoApABBEAgAygCqAEgAygCkAFBgAYQgQFBAEgEQCADKAKQARAkIANBfzYCrAEMAgsLIAMoApABECQgAygCpAEoAjQEQCADKAKoASADKAKkASgCNCADKAKgARCBAUEASARAIANBfzYC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IAMoAoABKAIAIAMpA3CnQQR0aigCACADEPEBBEAgAygCfEEVQQAQFSADEFwgA0J/NwOIAQwDBSADKAKAASgCACADKQNwp0EEdGooAgAoAjQgAygCNBCFASEAIAMoAoABKAIAIAMpA3CnQQR0aigCACAANgI0IAMoAoABKAIAIAMpA3CnQQR0aigCAEEBOgAEIANBADYCNCADEFwgAyADKQNwQgF8NwNwDAILAAsLIAMCfiADKQNgIAMpA2h9Qv///////////wBUBEAgAykDYCADKQNofQwBC0L///////////8ACzcDiAELIAMpA4gBIQQgA0GQAWokACAEC6YBAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCEBD6ASIANgIMAkAgAEUEQCADQQA2AhwMAQsgAygCDCADKAIYNgIAIAMoAgwgAygCFDYCBCADKAIUQRBxBEAgAygCDCIAIAAoAhRBAnI2AhQgAygCDCIAIAAoAhhBAnI2AhgLIAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC9UBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCAJAAkAgBCkDEEL///////////8AVwRAIAQpAxBCgICAgICAgICAf1kNAQsgBCgCCEEEQT0QFSAEQX82AhwMAQsCfyAEKQMQIQEgBCgCDCEAIAQoAhgiAigCTEF/TARAIAIgASAAEJYBDAELIAIgASAAEJYBC0EASARAIAQoAghBBEG0nAEoAgAQFSAEQX82AhwMAQsgBEEANgIcCyAEKAIcIQAgBEEgaiQAIAALJwACf0EAQQAgABAFIgAgAEEbRhsiAEUNABpBtJwBIAA2AgBBAAsaC14BAX8jAEEQayIDJAAgAyABQcCAgAJxBH8gAyACQQRqNgIMIAIoAgAFQQALNgIAIAAgAUGAgAJyIAMQESIAQYFgTwRAQbScAUEAIABrNgIAQX8hAAsgA0EQaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwCQAJAIAEoAgwoAiRBAUYNACABKAIMKAIkQQJGDQAMAQsgASgCDEEAQgBBChAiGiABKAIMQQA2AiQLIAFBEGokAAszAQF/An8gABAGIgFBYUYEQCAAEBIhAQsgAUGBYE8LBH9BtJwBQQAgAWs2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IEUNACABKAIIKAIkDQELIAFBATYCDAwBCyABIAEoAggoAhw2AgQCQAJAIAEoAgRFDQAgASgCBCgCACABKAIIRw0AIAEoAgQoAgRBKkYNASABKAIEKAIEQTlGDQEgASgCBCgCBEHFAEYNASABKAIEKAIEQckARg0BIAEoAgQoAgRB2wBGDQEgASgCBCgCBEHnAEYNASABKAIEKAIEQfEARg0BIAEoAgQoAgRBmgVGDQELIAFBATYCDAwBCyABQQA2AgwLIAEoAgwL0gQBAX8jAEEgayIDIAA2AhwgAyABNgIYIAMgAjYCFCADIAMoAhxB3BZqIAMoAhRBAnRqKAIANgIQIAMgAygCFEEBdDYCDANAAkAgAygCDCADKAIcKALQKEoNAAJAIAMoAgwgAygCHCgC0ChODQAgAygCGCADKAIcIAMoAgxBAnRqQeAWaigCAEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBOBEAgAygCGCADKAIcIAMoAgxBAnRqQeAWaigCAEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBHDQEgAygCHCADKAIMQQJ0akHgFmooAgAgAygCHEHYKGpqLQAAIAMoAhxB3BZqIAMoAgxBAnRqKAIAIAMoAhxB2Chqai0AAEoNAQsgAyADKAIMQQFqNgIMCyADKAIYIAMoAhBBAnRqLwEAIAMoAhggAygCHEHcFmogAygCDEECdGooAgBBAnRqLwEASA0AAkAgAygCGCADKAIQQQJ0ai8BACADKAIYIAMoAhxB3BZqIAMoAgxBAnRqKAIAQQJ0ai8BAEcNACADKAIQIAMoAhxB2Chqai0AACADKAIcQdwWaiADKAIMQQJ0aigCACADKAIcQdgoamotAABKDQAMAQsgAygCHEHcFmogAygCFEECdGogAygCHEHcFmogAygCDEECdGooAgA2AgAgAyADKAIMNgIUIAMgAygCDEEBdDYCDAwBCwsgAygCHEHcFmogAygCFEECdGogAygCEDYCAAvnCAEDfyMAQTBrIgIkACACIAA2AiwgAiABNgIoIAIgAigCKCgCADYCJCACIAIoAigoAggoAgA2AiAgAiACKAIoKAIIKAIMNgIcIAJBfzYCECACKAIsQQA2AtAoIAIoAixBvQQ2AtQoIAJBADYCGANAIAIoAhggAigCHE5FBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUF/ajYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAUhFBEAgAigCLCACKAIkIAIoAhgQdSACIAIoAhhBf2o2AhgMAQsLIAIgAigCHDYCDANAIAIgAigCLCgC4BY2AhggAigCLEHcFmohASACKAIsIgMoAtAoIQAgAyAAQX9qNgLQKCACKAIsIABBAnQgAWooAgA2AuAWIAIoAiwgAigCJEEBEHUgAiACKAIsKALgFjYCFCACKAIYIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQX9qIQAgBCAANgLUKCAAQQJ0IANqIAE2AgAgAigCFCEBIAIoAixB3BZqIQMgAigCLCIEKALUKEF/aiEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAiQgAigCDEECdGogAigCJCACKAIYQQJ0ai8BACACKAIkIAIoAhRBAnRqLwEAajsBACACKAIMIAIoAixB2ChqagJ/IAIoAhggAigCLEHYKGpqLQAAIAIoAhQgAigCLEHYKGpqLQAATgRAIAIoAhggAigCLEHYKGpqLQAADAELIAIoAhQgAigCLEHYKGpqLQAAC0EBajoAACACKAIkIAIoAhRBAnRqIAIoAgwiADsBAiACKAIkIAIoAhhBAnRqIAA7AQIgAiACKAIMIgBBAWo2AgwgAigCLCAANgLgFiACKAIs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AykDKCEBIANBMGokACABC3cBAX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMoAhQvAQqtEDZBAEgEQCADKAIIEBcgA0F/NgIcDAULCwsgAyADKAIUKAIANgIUDAELCyADKAIIEBcgA0EANgIcCyADKAIcIQAgA0EgaiQAIAALaAEBfyMAQRBrIgIgADYCDCACIAE2AgggAkEAOwEGA0AgAigCDARAIAIoAgwoAgQgAigCCHFBgAZxBEAgAiACKAIMLwEKIAIvAQZBBGpqOwEGCyACIAIoAgwoAgA2AgwMAQsLIAIvAQYL8AEBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABQQA2AgQDQCABKAIMBEACQAJAIAEoAgwvAQhB9cYBRg0AIAEoAgwvAQhB9eABRg0AIAEoAgwvAQhBgbICRg0AIAEoAgwvAQhBAUcNAQsgASABKAIMKAIANgIAIAEoAgggASgCDEYEQCABIAEoAgA2AggLIAEoAgxBADYCACABKAIMECQgASgCBARAIAEoAgQgASgCADYCAAsgASABKAIANgIMDAILIAEgASgCDDYCBCABIAEoAgwoAgA2AgwMAQsLIAEoAgghACABQRBqJAAgAAuzBAEBfyMAQUBqIgUkACAFIAA2AjggBSABOwE2IAUgAjYCMCAFIAM2AiwgBSAENgIoIAUgBSgCOCAFLwE2rRAqIgA2AiQC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ACgCDCgCBDYCAAsLIAIoAgwEQCACKAIMIAIoAgQ2AgALIAJBEGokAAuVAQEBfyMAQRBrIgEkACABIAA2AggCQAJ/IwBBEGsiACABKAIINgIMIAAoAgwpAxhCgIAQg1ALBEAgASgCCCgCAARAIAEgASgCCCgCABCUAUEBcToADwwCCyABQQE6AA8MAQsgASABKAIIQQBCAEESECI+AgQgASABKAIEQQBHOgAPCyABLQAPQQFxIQAgAUEQaiQAIAALfwEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIANBADYCDCADIAI2AggCQCADKQMQQv///////////wBWBEAgAygCCEEEQT0QFSADQX82AhwMAQsgAyADKAIYIAMpAxAgAygCDCADKAIIEGc2AhwLIAMoAhwhACADQSBqJAAgAAt9ACACQQFGBEAgASAAKAIIIAAoAgRrrH0hAQsCQCAAKAIUIAAoAhxLBEAgAEEAQQAgACgCJBEBABogACgCFEUNAQsgAEEANgIcIABCADcDECAAIAEgAiAAKAIoERAAQgBTDQAgAEIANwIEIAAgACgCAEFvcTYCAEEADwtBfwviAgECfyMAQSBrIgMkAAJ/AkACQEH0lwEgASwAABCYAUUEQEG0nAFBHDYCAAwBC0GYCRAZIgINAQtBAAwBCyACQQBBkAEQMyABQSsQmAFFBEAgAkEIQQQgAS0AAEHyAEYbNgIACwJAIAEtAABB4QBHBEAgAigCACEBDAELIABBA0EAEAQiAUGACHFFBEAgAyABQYAIcjYCECAAQQQgA0EQahAEGgsgAiACKAIAQYABciIBNgIACyACQf8BOgBLIAJBgAg2AjAgAiAANgI8IAIgAkGYAWo2AiwCQCABQQhxDQAgAyADQRhqNgIAIABBk6gBIAMQDg0AIAJBCjoASwsgAkEaNgIoIAJBGzYCJCACQRw2AiAgAkEdNgIMQdygASgCAEUEQCACQX82AkwLIAJBsKEBKAIANgI4QbChASgCACIABEAgACACNgI0C0GwoQEgAjYCACACCyEAIANBIGokACAACxoAIAAgARCFAiIAQQAgAC0AACABQf8BcUYbCxgAIAAoAkxBf0wEQCAAEJoBDwsgABCaAQtgAgJ/AX4gACgCKCEBQQEhAiAAQgAgAC0AAEGAAXEEf0ECQQEgACgCFCAAKAIc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KAIYKQMwWgRAIAIoAhhBCGpBEkEAEBUgAkF/NgIcDAELIAIoAhgoAhhBAnEEQCACKAIYQQhqQRlBABAVIAJBfzYCHAwBCyACIAIoAhggAikDEEEAIAIoAhhBCGoQTyIANgIMIABFBEAgAkF/NgIcDAELIAIoAhgoAlAgAigCDCACKAIYQQhqEFlBAXFFBEAgAkF/NgIcDAELIAIoAhggAikDEBCgAgRAIAJBfzYCHAwBCyACKAIYKAJAIAIpAxCnQQR0akEBOgAMIAJBADYCHAsgAigCHCEAIAJBIGokACAAC5gCAAJAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQCABQXdqDgoAAQIJAwQFBgkHCAsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgACACQRYRBAALDwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC0oBA38gACgCACwAAEFQakEKSQRAA0AgACgCACIBLAAAIQMgACABQQFqNgIAIAMgAkEKbGpBUGohAiABLAABQVBqQQpJDQALCyACC38CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEKQBIQAgASgCAEFAags2AgAgAA8LIAEgAkGCeGo2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvwUgAAsLEgAgAEUEQEEADwsgACABELQCC+UBAQJ/IAJBAEchAwJAAkACQCACRQ0AIABBA3FFDQAgAUH/AXEhBANAIAAtAAAgBEYNAiAAQQFqIQAgAkF/aiICQQBHIQMgAkUNASAAQQNxDQALCyADRQ0BCwJAIAAtAAAgAUH/AXFGDQAgAkEESQ0AIAFB/wFxQYGChAhsIQMDQCAAKAIAIANzIgRBf3MgBEH//ft3anFBgIGChHhxDQEgAEEEaiEAIAJB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HAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBkiADYCDAJAIABFBEAgAygCEEEBQbScASgCABAVIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEH+fWo2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEF/aiIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5gQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAgxBBWsgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcUVFNgIQIAIoAihBAEEAIAIoAhAQVyACKAIoKAIIIAIoAigoAhRBBGtqIAIoAhw6AAAgAigCKCgCCCACKAIoKAIUQQNraiACKAIcQQh2OgAAIAIoAigoAgggAigCKCgCFEECa2ogAigCHEF/czoAACACKAIoKAIIIAIoAigoAhRBAWtqIAIoAhxBf3NBCHY6AAAgAigCKCgCABAdIAIoAhgEQCACKAIYIAIoAhxLBEAgAiACKAIcNgIYCyACKAIoKAIAKAIMIAIoAigoAjggAigCKCgCXGogAigCGBAaGiACKAIoKAIAIgAgAigCGCAAKAIMajYCDCACKAIoKAIAIgAgACgCECACKAIYazYCECACKAIoKAIAIgAgAigCGCAAKAIUajYCFCACKAIoIgAgAigCGCAAKAJcajYCXCACIAIoAhwgAigCGGs2AhwLIAIoAhwEQCACKAIoKAIAIAIoAigoAgAoAgwgAigCHBBzGiACKAIoKAIAIgAgAigCHCAAKAIMajYCDCACKAIoKAIAIgAgACgCECACKAIcazYCECACKAIoKAIAIgAgAigCHCAAKAIUajYCFAsgAigCEEUNAQsLIAIgAigCDCACKAIoKAIAKAIEazYCDCACKAIMBEACQCACKAIMIAIoAigoAixPBEAgAigCKEECNgKwLSACKAIoKAI4IAIoAigoAgAoAgAgAigCKCgCLGsgAigCKCgCLBAaGiACKAIoIAIoAigoAiw2AmwMAQsgAigCKCgCPCACKAIoKAJsayACKAIMTQRAIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBoaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsLIAIoAigoAjggAigCKCgCbGogAigCKCgCACgCACACKAIMayACKAIMEBoaIAIoAigiACACKAIMIAAoAmxqNgJsCyACKAIoIAIoAigoAmw2AlwgAigCKCIBAn8gAigCDCACKAIoKAIsIAIoAigoArQta0sEQCACKAIoKAIsIAIoAigoArQtawwBCyACKAIMCyABKAK0LWo2ArQtCyACKAIoKALALSACKAIoKAJsSQRAIAIoAiggAigCKCgCbDYCwC0LAkAgAigCEARAIAJBAzYCLAwBCwJAIAIoAiRFDQAgAigCJEEERg0AIAIoAigoAgAoAgQNACACKAIoKAJsIAIoAigoAlxHDQAgAkEBNgIsDAELIAIgAigCKCgCPCACKAIoKAJsa0EBazYCFAJAIAIoAigoAgAoAgQgAigCFE0NACACKAIoKAJcIAIoAigoAixIDQAgAigCKCIAIAAoAlwgAigCKCgCLGs2AlwgAigCKCIAIAAoAmwgAigCKCgCLGs2AmwgAigCKCgCOCACKAIoKAI4IAIoAigoAixqIAIoAigoAmwQGhogAigCKCgCsC1BAkkEQCACKAIoIgAgACgCsC1BAWo2ArAtCyACIAIoAigoAiwgAigCFGo2AhQLIAIoAhQgAigCKCgCACgCBEsEQCACIAIoAigoAgAoAgQ2AhQLIAIoAhQEQCACKAIoKAIAIAIoAigoAjggAigCKCgCbGogAigCFBBzGiACKAIoIgAgAigCFCAAKAJsajYCbAsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCyACIAIoAigoArwtQSpqQQN1NgIUIAICf0H//wMgAigCKCgCDCACKAIUa0H//wNLDQAaIAIoAigoAgwgAigCFGsLNgIUIAICfyACKAIUIAIoAigoAixLBEAgAigCKCgCLAwBCyACKAIUCzYCICACIAIoAigoAmwgAigCKCgCXGs2AhgCQCACKAIYIAIoAiBJBEAgAigCGEUEQCACKAIkQQRHDQILIAIoAiRFDQEgAigCKCgCACgCBA0BIAIoAhggAigCFEsNAQsgAgJ/IAIoAhggAigCFEsEQCACKAIUDAELIAIoAhgLNgIcIAICf0EAIAIoAiRBBEcNABpBACACKAIoKAIAKAIEDQAaIAIoAhwgAigCGEYLQQFxRUU2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBXIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHQsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHQEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCAB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A0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhAFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCDATYCDCACKAIcKAIAKAI0IAIoAgwQhQEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsHACAAKAIAC4wBAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQgAkEANgIQAkAgAigCFEUEQCACQQA2AhwMAQsgAiACKAIUEBk2AgwgAigCDEUEQCACKAIQQQ5BABAVIAJBADYCHAwBCyACKAIMIAIoAhggAigCFBAaGiACIAIoAgw2AhwLIAIoAhwhACACQSBqJAAgAAsYAEGonAFCADcCAEGwnAFBADYCAEGonAELiAEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQAJAIAMoAhQoAiRBAUYEQCADKQMIQv///////////wBYDQELIAMoAhRBDGpBEkEAEBUgA0J/NwMYDAELIAMgAygCFCADKAIQIAMpAwhBCxAiNwMYCyADKQMYIQIgA0EgaiQAIAILcwEBfyMAQSBrIgEkACABIAA2AhggAUIINwMQIAEgASgCGCkDECABKQMQfDcDCAJAIAEpAwggASgCGCkDEFQEQCABKAIYQQA6AAAgAUF/NgIcDAELIAEgASgCGCAB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IAIgADYCSCACIAE2AkQgAkEIaiIAEDwCQCACKAJIIAAQOQRAIwBBEGsiACACKAJINgIMIAIgACgCDEEMajYCBCMAQRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIEDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwhAiABQbYDNgIAIAEgACACIAEQaSIANgIQAkAgAEEASARAIAFBADYCHAwBCyABIAEoAhBBgpgBQYaYASABLQAXQQFxGxCXASIANgIIIABFBEAgAUEANgIcDAELIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC8gCAQF/IwBBgAFrIgEkACABIAA2AnggASABKAJ4KAIYECxBCGoQGSIANgJ0AkAgAEUEQCABKAJ4QQ5BABAVIAFBfzYCfAwBCwJAIAEoAngoAhggAUEQahCcAUUEQCABIAEoAhw2AmwMAQsgAUF/NgJsCyABKAJ0IQAgASABKAJ4KAIYNgIAIABB+JcBIAEQbyABIAEoAnQgASgCbBCGAiIANgJwIABBf0YEQCABKAJ4QQxBtJwBKAIAEBUgASgCdBAWIAFBfzYCfAwBCyABIAEoAnBBgpgBEJcBIgA2AmggAEUEQCABKAJ4QQxBtJwBKAIAEBUgASgCcBBoIAEoAnQQaxogASgCdBAWIAFBfzYCfAwBCyABKAJ4IAEoAmg2AoQBIAEoAnggASgCdDYCgAEgAUEANgJ8CyABKAJ8IQAgAUGAAWokACAAC8AQAQF/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAVIARCfzcDWAwRCyAEIAQoAkAQ/QGsNwNYDBALIAQoAkAoAhgEQCAEKAJAKAIcEFQaIAQoAkBBADYCHAsgBEIANwNYDA8LIAQoAkAoAoQBEFRBAEgEQCAEKAJAQQA2AoQBIAQoAkBBBkG0nAEoAgAQFQsgBCgCQEEANgKEASAEKAJAKAKAASAEKAJAKAIYEAciAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAAC0EASARAIAQoAkBBAkG0nAEoAgAQFSAEQn83A1gMDwsgBCgCQCgCgAEQFiAEKAJAQQA2AoABIARCADcDWAwOCyAEIAQoAkAgBCgCUCAEKQNIEEI3A1gMDQsgBCgCQCgCGBAWIAQoAkAoAoABEBYgBCgCQCgCHARAIAQoAkAoAhwQVBoLIAQoAkAQFiAEQgA3A1gMDAsgBCgCQCgCGARAIAQoAkAoAhgQ/AEhACAEKAJAIAA2AhwgAEUEQCAEKAJAQQtBtJwBKAIAEBUgBEJ/NwNYDA0LCyAEKAJAKQNoQgBWBEAgBCgCQCgCHCAEKAJAKQNoIAQoAkAQlQFBAEgEQCAEQn83A1gMDQsLIAQoAkBCADcDeCAEQgA3A1gMCwsCQCAEKAJAKQNwQgBWBEAgBCAEKAJAKQNwIAQoAkApA3h9NwMwIAQpAzAgBCkDSFYEQCAEIAQpA0g3AzALDAELIAQgBCkDSDcDMAsgBCkDMEL/////D1YEQCAEQv////8PNwMwCyAEIAQoAjwgBCkDMKcgBCgCQCgCHBCLAiIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbScASgCABAVIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBrQQBIBEAgBCgCQEEWQbScASgCABAVIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBUGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBrGiAEKAJAKAKAARAWIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFUEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGdBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEJkBIgI3AyAgAkIAUwRAIAQoAkBBBEG0nAEoAgAQFSAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAVIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQpAyAgBCgCQCkDaHwgBCgCQCkDaFoNAQsgBCgCQEESQQAQFSAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCVAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFUEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGdBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBUgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCZATcDCCAEKQMIQgBTBEAgBCgCQEEeQbScASgCABAVIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsCQCAEKAJAKAKEASIAKAJMQQBOBEAgACAAKAIAQU9xNgIADAELIAAgACgCAEFPcTYCAAsgBCAEKAJQIAQpA0inIAQoAkAoAoQBEKwCNgIEAkAgBCkDSCAEKAIErVEEQAJ/IAQoAkAoAoQBIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxRQ0BCyAEKAJAQQZBtJwBKAIAEBUgBEJ/NwNYDAILIAQgBCgCBK03A1gMAQsgBCgCQEEcQQAQFSAEQn83A1gLIAQpA1ghAiAEQeAAaiQAIAILoAkBAX8jAEGgAWsiBCQAIAQgADYCmAEgBEEANgKUASAEIAE3A4gBIAQgAjcDgAEgBEEANgJ8IAQgAzYCeAJAAkAgBCgClAENACAEKAKYAQ0AIAQoAnhBEkEAEBUgBEEANgKcAQwBCyAEKQOAAUIAUwRAIARCADcDgAELAkAgBCkDiAFC////////////AFgEQCAEKQOIASAEKQOAAXwgBCkDiAFaDQELIAQoAnhBEkEAEBUgBEEANgKcAQwBCyAEQYgBEBkiADYCdCAARQRAIAQoAnhBDkEAEBUgBEEANgKcAQwBCyAEKAJ0QQA2AhggBCgCmAEEQCAEKAKYARCQAiEAIAQoAnQgADYCGCAARQRAIAQoAnhBDkEAEBUgBCgCdBAWIARBADYCnAEMAgsLIAQoAnQgBCgClAE2AhwgBCgCdCAEKQOIATcDaCAEKAJ0IAQpA4ABNwNwAkAgBCgCfARAIAQoAnQiACAEKAJ8IgMpAwA3AyAgACADKQMwNwNQIAAgAykDKDcDSCAAIAMpAyA3A0AgACADKQMYNwM4IAAgAykDEDcDMCAAIAMpAwg3AyggBCgCdEEANgIoIAQoAnQiACAAKQMgQv7///8PgzcDIAwBCyAEKAJ0QSBqEDwLIAQoAnQpA3BCAFYEQCAEKAJ0IAQoAnQpA3A3AzggBCgCdCIAIAApAyBCBIQ3AyALIwBBEGsiACAEKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEKAJ0QQA2AoABIAQoAnRBADYChAEjAEEQayIAIAQoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggBEF/NgIEIARBBzYCAEEOIAQQN0I/hCEBIAQoAnQgATcDEAJAIAQoAnQoAhgEQCAEIAQoAnQoAhggBEEYahCcAUEATjoAFyAELQAXQQFxRQRAAkAgBCgCdCkDaFBFDQAgBCgCdCkDcFBFDQAgBCgCdEL//wM3AxALCwwBCyAEAn8CQCAEKAJ0KAIcIgAoAkxBAEgNAAsgACgCPAsgBEEYahCNAkEATjoAFwsCQCAELQAXQQFxRQRAIAQoAnRB2ABqQQVBtJwBKAIAEBUMAQsgBCgCdCkDIEIQg1AEQCAEKAJ0IAQoAlg2AkggBCgCdCIAIAApAyBCEIQ3AyALIAQoAiRBgOADcUGAgAJGBEAgBCgCdEL/gQE3AxAgBCgCdCkDaCAEKAJ0KQNwfCAEKQNAVgRAIAQoAnhBEkEAEBUgBCgCdCgCGBAWIAQoAnQQFiAEQQA2ApwBDAMLIAQoAnQpA3BQBEAgBCgCdCAEKQNAIAQoAnQpA2h9NwM4IAQoAnQiACAAKQMgQgSENwMgAkAgBCgCdCgCGEUNACAEKQOIAVBFDQAgBCgCdEL//wM3AxALCwsLIAQoAnQiACAAKQMQQoCAEIQ3AxAgBEEeIAQoAnQgBCgCeBCQASIANgJwIABFBEAgBCgCdCgCGBAWIAQoAnQQFiAEQQA2ApwBDAELIAQgBCgCcDYCnAELIAQoApwBIQAgBEGgAWokACAACwkAIAAoAjwQBQv3AQEEfyMAQSBrIgMkACADIAE2AhAgAyACIAAoAjAiBEEAR2s2AhQgACgCLCEFIAMgBDYCHCADIAU2AhgCQAJAAn8Cf0EAIAAoAjwgA0EQakECIANBDGoQDSIERQ0AGkG0nAEgBDYCAEF/CwRAIANBfzYCDEF/DAELIAMoAgwiBEEASg0BIAQLIQIgACAAKAIAIAJBMHFBEHNyNgIADAELIAQgAygCFCIGTQRAIAQhAgwBCyAAIAAoAiwiBTYCBCAAIAUgBCAGa2o2AgggACgCMEUNACAAIAVBAWo2AgQgASACakF/aiAFLQAAOgAACyADQSBqJAAgAguBAwEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQAJ/QQAgACgCPCADQRBqQQIgA0EMahADIgRFDQAaQbScASAENgIAQX8LRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUCf0EAIAAoAjwgAUEIaiABIAYbIgEgByAGayIHIANBDGoQAyIERQ0AGkG0nAEgBDYCAEF/C0UNAAsLIANBfzYCDCAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiABKAIEawshACADQSBqJAAgAAtgAQF/IwBBEGsiAyQAAn4Cf0EAIAAoAjwgAacgAUIgiKcgAkH/AXEgA0EIahALIgBFDQAaQbScASAANgIAQX8LRQRAIAMpAwgMAQsgA0J/NwMIQn8LIQEgA0EQaiQAIAELoQEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCJEEDRgRAIAFBADYCDAwBCyABKAIIKAIgQQBLBEAgASgCCBAyQQBIBEAgAUF/NgIMDAILCyABKAIIKAIkBEAgASgCCBBqCyABKAIIQQBCAEEPECJCAFMEQCABQX82AgwMAQsgASgCCEEDNgIkIAFBADYCDAsgASgCDCEAIAFBEGokACAAC9oBAQJ/AkAgAUH/AXEiAwRAIABBA3EEQANAIAAtAAAiAkUNAyACIAFB/wFxRg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgJBf3MgAkH//ft3anFBgIGChHhxDQAgA0GBgoQIbCEDA0AgAiADcyICQX9zIAJB//37d2pxQYCBgoR4cQ0BIAAoAgQhAiAAQQRqIQAgAkH//ft3aiACQX9zcUGAgYKEeHFFDQALCwNAIAAiAi0AACIDBEAgAkEBaiEAIAMgAUH/AXFHDQELCyACDwsgABAsIABqDwsgAAvFAwEBfyMAQTBrIgIkACACIAA2AiggAiABNgIkIAJBADYCECACIAIoAiggAigCKBAsajYCGCACIAIoAhhBf2o2AhwDQCACKAIcIAIoAihPBH8gAigCHCwAAEHYAEYFQQALQQFxBEAgAiACKAIQQQFqNgIQIAIgAigCHEF/ajYCHAwBCwsCQCACKAIQRQRAQbScAUEcNgIAIAJBfzYCLAwBCyACIAIoAhxBAWo2AhwDQCACEIcCNgIMIAIgAigCHDYCFANAIAIoAhQgAigCGEkEQCACIAIoAgxBJHA6AAsCfyACLAALQQpIBEAgAiwAC0EwagwBCyACLAALQdcAagshACACIAIoAhQiAUEBajYCFCABIAA6AAAgAiACKAIMQSRuNgIMDAELCyACKAIoIQAgAgJ/QbYDIAIoAiRBf0YNABogAigCJAs2AgAgAiAAQcKBICACEGkiADYCICAAQQBOBEAgAigCJEF/RwRAIAIoAiggAigCJBAPIgBBgWBPBH9BtJwBQQAgAGs2AgBBAAUgAAsaCyACIAIoAiA2AiwMAgtBtJwBKAIAQRRGDQALIAJBfzYCLAsgAigCLCEAIAJBMGokACAAC1cBAn8jAEEQayIAJAACQCAAQQhqEIgCQQFxBEAgACAAKAIINgIMDAELQcShAS0AAEEBcUUEQEEAEAEQigILIAAQiQI2AgwLIAAoAgwhASAAQRBqJAAgAQulAQEBfyMAQRBrIgEkACABIAA2AgggAUEEOwEGIAFB55cBQQBBABBpIgA2AgACQCAAQQBIBEAgAUEAOgAPDAELIAEoAgAgASgCCCABLwEGEBAiAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAACyABLwEGRwRAIAEoAgAQaCABQQA6AA8MAQsgASgCABBoIAFBAToADwsgAS0AD0EBcSEAIAFBEGokACAAC6EBAQR/QcyaASgCACEAAkBByJoBKAIAIgNFBEAgACAAKAIAQe2cmY4EbEG54ABqQf////8HcSIANgIADAELIABB0JoBKAIAIgJBAnRqIgEgASgCACAAQcChASgCACIBQQJ0aigCAGoiADYCAEHAoQFBACABQQFqIgEgASADRhs2AgBB0JoBQQAgAkEBaiICIAIgA0YbNgIAIABBAXYhAAsgAAujAQIDfwF+QciaASgCACIBRQRAQcyaASgCACAANgIADwtB0JoBQQNBA0EBIAFBB0YbIAFBH0YbNgIAQcChAUEANgIAAkAgAUEATARAQcyaASgCACECDAELQcyaASgCACECIACtIQQDQCACIANBAnRqIARCrf7V5NSF/ajYAH5CAXwiBEIgiD4CACADQQFqIgMgAUcNAAsLIAIgAigCAEEBcjYCAAuxAQECfyACKAJMQQBOBH9BAQVBAAsaIAIgAi0ASiIDQX9qIANyOgBKAn8gASACKAIIIAIoAgQiBGsiA0EBSA0AGiAAIAQgAyABIAMgAUkbIgMQGhogAiACKAIEIANqNgIEIAAgA2ohACABIANrCyIDBEADQAJAIAIQjAJFBEAgAiAAIAMgAigCIBEBACIEQQFqQQFLDQELIAEgA2sPCyAAIARqIQAgAyAEayIDDQALCyABC3wBAn8gACAALQBKIgFBf2ogAXI6AEogACgCFCAAKAIcSwRAIABBAEEAIAAoAiQRAQAaCyAAQQA2AhwgAEIANwMQIAAoAgAiAUEEcQRAIAAgAUEgcjYCAEF/DwsgACAAKAIsIAAoAjBqIgI2AgggACACNgIEIAFBG3RBH3ULdgECfyMAQSBrIgIkAAJ/AkAgACABEAkiA0F4RgRAIAAQjwINAQsgA0GBYE8Ef0G0nAFBACADazYCAEF/BSADCwwBCyACIAAQjgIgAiABEAIiAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAACwshACACQSBqJAAgAAueAQEDfwNAIAAgAmoiAyACQdiXAWotAAA6AAAgAkEORyEEIAJBAWohAiAEDQALIAEEQEEOIQIgASEDA0AgAkEBaiECIANBCUshBCADQQpuIQMgBA0ACyAAIAJqQQA6AAADQCAAIAJBf2oiAmogASABQQpuIgNBCmxrQTByOgAAIAFBCUshBCADIQEgBA0ACw8LIANBMDoAACAAQQA6AA8LNwEBfyMAQSBrIgEkAAJ/QQEgACABQQhqEAgiAEUNABpBtJwBIAA2AgBBAAshACABQSBqJAAgAAsgAQJ/IAAQLEEBaiIBEBkiAkUEQEEADwsgAiAAIAEQGgulAQEBfyMAQSBrIgIgADYCFCACIAE2AhACQCACKAIURQRAIAJCfzcDGAwBCyACKAIQQQhxBEAgAiACKAIUKQMwNwMIA0BBACEAIAIpAwhCAFYEfyACKAIUKAJAIAIpAwhCAX2nQQR0aigCAEUFQQALQQFxBEAgAiACKQMIQn98NwMIDAELCyACIAIpAwg3AxgMAQsgAiACKAIUKQMwNwMYCyACKQMYC/IBAQF/IwBBIGsiAyQAIAMgADYCFCADIAE2AhAgAyACNwMIAkAgAygCFEUEQCADQn83AxgMAQsgAygCFCgCBARAIANCfzcDGAwBCyADKQMIQv///////////wBWBEAgAygCFEEEakESQQAQFSADQn83AxgMAQsCQCADKAIULQAQQQFxRQRAIAMpAwhQRQ0BCyADQgA3AxgMAQsgAyADKAIUKAIUIAMoAhAgAykDCBAvIgI3AwAgAkIAUwRAIAMoAhRBBGogAygCFCgCFBAYIANCfzcDGAwBCyADIAMpAwA3AxgLIAMpAxghAiADQSBqJAAgAgtHAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhwoAhwQnQEhACADQSBqJAAgAAt/AgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYIAMoAhQgAygCEBBuIgQ3AwgCQCAEQgBTBEAgA0EANgIcDAELIAMgAygCGCADKQMIIAMoAhAgAygCGCgCHBCdATYCHAsgAygCHCEAIANBIGokACAAC6oBAQF/IwBBEGsiASQAIAEgADYCCCABQRgQGSIANgIEAkAgAEUEQCABKAIIQQhqQQ5BABAVIAFBADYCDAwBCyABKAIEIAEoAgg2AgAjAEEQayIAIAEoAgRBBGo2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggASgCBEEAOgAQIAEoAgRBADYCFCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAvVAwEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQCAEKAIYIAQpAxBBAEEAEEVFBEAgBEF/NgIcDAELIAQoAhgoAhhBAnEEQCAEKAIYQQhqQRlBABAVIARBfzYCHAwBCyAEKAIYKAJAIAQpAxCnQQR0aigCCARAIAQoAhgoAkAgBCkDEKdBBHRqKAIIIAQoAgwQbUEASARAIAQoAhhBCGpBD0EAEBUgBEF/NgIcDAILIARBADYCHAwBCyAEIAQoAhgoAkAgBCkDEKdBBHRqNgIEQQEhACAEIAQoAgQoAgAEfyAEKAIMIAQoAgQoAgAoAhRHBUEBC0EBcTYCAAJAIAQoAgAEQCAEKAIEKAIERQRAIAQoAgQoAgAQRiEAIAQoAgQgADYCBCAARQRAIAQoAhhBCGpBDkEAEBUgBEF/NgIcDAQLCyAEKAIEKAIEIAQoAgw2AhQgBCgCBCgCBCIAIAAoAgBBIHI2AgAMAQsgBCgCBCgCBARAIAQoAgQoAgQiACAAKAIAQV9xNgIAIAQoAgQoAgQoAgBFBEAgBCgCBCgCBBA6IAQoAgRBADYCBAsLCyAEQQA2AhwLIAQoAhwhACAEQSBqJAAgAAsHACAAKAIICxgBAX8jAEEQayIBIAA2AgwgASgCDEEEagsYAQF/IwBBEGsiASAANgIMIAEoAgxBCGoLgwECAX8BfiMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAjYCDCAEIAM2AggCQAJAIAQoAhAEQCAEKAIMDQELIAQoAhRBCGpBEkEAEBUgBEJ/NwMYDAELIAQgBCgCFCAEKAIQIAQoAgwgBCgCCBCgATcDGAsgBCkDGCEFIARBIGokACAFC2kBAX8jAEEQayIBJAAgASAANgIMIAEoAgwoAhQEQCABKAIMKAIUEBwLIAFBADYCCCABKAIMKAIEBEAgASABKAIMKAIENgIICyABKAIMQQRqEDggASgCDBAWIAEoAgghACABQRBqJAAgAAu4AwIBfwF+IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNgIcAkAgAygCJCgCGEECcQRAIAMoAiRBCGpBGUEAEBUgA0J/NwMoDAELIAMoAiBFBEAgAygCJEEIakESQQAQFSADQn83AygMAQsgA0EANgIMIAMgAygCIBAsNgIYIAMoAiAgAygCGEEBa2osAABBL0cEQCADIAMoAhhBAmoQGSIANgIMIABFBEAgAygCJEEIakEOQQAQFSADQn83AygMAgsgAygCDCADKAIgEJ8CIAMoAgwgAygCGGpBLzoAACADKAIMIAMoAhhBAWpqQQA6AAALIAMgAygCJEEAQgBBABB5IgA2AgggAEUEQCADKAIMEBYgA0J/NwMoDAELIAMgAygCJAJ/IAMoAgwEQCADKAIMDAELIAMoAiALIAMoAgggAygCHBCgATcDECADKAIMEBYCQCADKQMQQgBTBEAgAygCCBAcDAELIAMoAiQgAykDEEEAQQNBgID8jwQQnwFBAEgEQCADKAIkIAMpAxAQoQEaIANCfzcDKAwCCwsgAyADKQMQNwMoCyADKQMoIQQgA0EwaiQAIAQLmQgBAX8jAEFAaiIEJAAgBCAANgI4IAQgATcDMCAEIAI2AiwgBCADNgIoAkAgBCkDMCAEKAI4KQMwWgRAIAQoAjhBCGpBEkEAEBUgBEF/NgI8DAELIAQoAjgoAhhBAnEEQCAEKAI4QQhqQRlBABAVIARBfzYCPAwBCwJAAkAgBCgCLEUNACAEKAIsLAAARQ0AIAQgBCgCLCAEKAIsECxB//8DcSAEKAIoIAQoAjhBCGoQUSIANgIgIABFBEAgBEF/NgI8DAMLAkAgBCgCKEGAMHENACAEKAIgQQAQO0EDRw0AIAQoAiBBAjYCCAsMAQsgBEEANgIgCyAEIAQoAjggBCgCLEEAQQAQVSIBNwMQAkAgAUIAUw0AIAQpAxAgBCkDMFENACAEKAIgECYgBCgCOEEIakEKQQAQFSAEQX82AjwMAQsCQCAEKQMQQgBTDQAgBCkDECAEKQMwUg0AIAQoAiAQJiAEQQA2AjwMAQsgBCAEKAI4KAJAIAQpAzCnQQR0ajYCJAJAIAQoAiQoAgAEQCAEIAQoAiQoAgAoAjAgBCgCIBCHAUEARzoAHwwBCyAEQQA6AB8LAkAgBC0AH0EBcQ0AIAQoAiQoAgQNACAEKAIkKAIAEEYhACAEKAIkIAA2AgQgAEUEQCAEKAI4QQhqQQ5BABAVIAQoAiAQJiAEQX82AjwMAgsLIAQCfyAELQAfQQFxBEAgBCgCJCgCACgCMAwBCyAEKAIgC0EAQQAgBCgCOEEIahBHIgA2AgggAEUEQCAEKAIgECYgBEF/NgI8DAELAkAgBCgCJCgCBARAIAQgBCgCJCgCBCgCMDYCBAwBCwJAIAQoAiQoAgAEQCAEIAQoAiQoAgAoAjA2AgQMAQsgBEEANgIECwsCQCAEKAIEBEAgBCAEKAIEQQBBACAEKAI4QQhqEEciADYCDCAARQRAIAQoAiAQJiAEQX82AjwMAwsMAQsgBEEANgIMCyAEKAI4KAJQIAQoAgggBCkDMEEAIAQoAjhBCGoQfUEBcUUEQCAEKAIgECYgBEF/NgI8DAELIAQoAgwEQCAEKAI4KAJQIAQoAgxBABBZGgsCQCAELQAfQQFxBEAgBCgCJCgCBARAIAQoAiQoAgQoAgBBAnEEQCAEKAIkKAIEKAIwECYgBCgCJCgCBCIAIAAoAgBBfXE2AgACQCAEKAIkKAIEKAIARQRAIAQoAiQoAgQQOiAEKAIkQQA2AgQMAQsgBCgCJCgCBCAEKAIkKAIAKAIwNgIwCwsLIAQoAiAQJgwBCyAEKAIkKAIEKAIAQQJxBEAgBCgCJCgCBCgCMBAmCyAEKAIkKAIEIgAgACgCAEECcjYCACAEKAIkKAIEIAQoAiA2AjALIARBADYCPAsgBCgCPCEAIARBQGskACAAC98CAgF/AX4jAEFAaiIBJAAgASAANgI0AkAgASgCNCkDMEIBfCABKAI0KQM4WgRAIAEgASgCNCkDODcDGCABIAEpAxhCAYY3AxACQCABKQMQQhBUBEAgAUIQNwMQDAELIAEpAxBCgAhWBEAgAUKACDcDEAsLIAEgASkDECABKQMYfDcDGCABIAEpAxinQQR0rTcDCCABKAI0KQM4p0EEdK0gASkDCFYEQCABKAI0QQhqQQ5BABAVIAFCfzcDOAwCCyABIAEoAjQoAkAgASkDGKdBBHQQTTYCJCABKAIkRQRAIAEoAjRBCGpBDkEAEBUgAUJ/NwM4DAILIAEoAjQgASgCJDYCQCABKAI0IAEpAxg3AzgLIAEoAjQiACkDMCECIAAgAkIBfDcDMCABIAI3AyggASgCNCgCQCABKQMop0EEdGoQjAEgASABKQMoNwM4CyABKQM4IQIgAUFAayQAIAILyAEBAX8CQAJAIAAgAXNBA3ENACABQQNxBEADQCAAIAEtAAAiAjoAACACRQ0DIABBAWohACABQQFqIgFBA3ENAAsLIAEoAgAiAkF/cyACQf/9+3dqcUGAgYKEeHENAANAIAAgAjYCACABKAIEIQIgAEEEaiEAIAFBBGohASACQf/9+3dqIAJBf3NxQYCBgoR4cUUNAAsLIAAgAS0AACICOgAAIAJFDQADQCAAIAEtAAEiAjoAASAAQQFqIQAgAUEBaiEBIAINAAsLC5cEAQF/IwBBMGsiAiQAIAIgADYCKCACIAE3AyAgAkEBNgIcAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELAkAgAigCHA0AIAIoAigoAkAgAikDIKdBBHRqKAIERQ0AIAIoAigoAkAgAikDIKdBBHRqKAIEKAIAQQJxRQ0AAkAgAigCKCgCQCACKQMgp0EEdGooAgAEQCACIAIoAiggAikDIEEIIAIoAihBCGoQTyIANgIMIABFBEAgAkF/NgIsDAQLIAIgAigCKCACKAIMQQBBABBVNwMQAkAgAikDEEIAUw0AIAIpAxAgAikDIFENACACKAIoQQhqQQpBABAVIAJBfzYCLAwECwwBCyACQQA2AgwLIAIgAigCKCACKQMgQQAgAigCKEEIahBPIgA2AgggAEUEQCACQX82AiwMAgsgAigCDARAIAIoAigoAlAgAigCDCACKQMgQQAgAigCKEEIahB9QQFxRQRAIAJBfzYCLAwDCwsgAigCKCgCUCACKAIIIAIoAihBCGoQWUEBcUUEQCACKAIoKAJQIAIoAgxBABBZGiACQX82AiwMAgsLIAIoAigoAkAgAikDIKdBBHRqKAIEEDogAigCKCgCQCACKQMgp0EEdGpBADYCBCACKAIoKAJAIAIpAyCnQQR0ahBjIAJBADYCLAsgAigCLCEAIAJBMGokACAACyYBAX8DQCABRQRAQQAPCyAAIAFBf2oiAWoiAi0AAEEvRw0ACyACC6kBAQN/AkAgAC0AACICRQ0AA0AgAS0AACIERQRAIAIhAwwCCwJAIAIgBEYNACACQSByIAIgAkG/f2pBGkkbIAEtAAAiAkEgciACIAJBv39qQRpJG0YNACAALQAAIQMMAgsgAUEBaiEBIAAtAAEhAiAAQQFqIQAgAg0ACwsgA0H/AXEiAEEgciAAIABBv39qQRpJGyABLQAAIgBBIHIgACAAQb9/akEaSRtrC+gDAQN/IwBBsAFrIgEkACABIAA2AqgBIAEoAqgBEDgCQAJAIAEoAqgBKAIAQQBOBEAgASgCqAEoAgBBoA4oAgBIDQELIAEgASgCqAEoAgA2AhAgAUEgakG8lwEgAUEQahBvIAFBADYCpAEgASABQSBqNgKgAQwBCyABIAEoAqgBKAIAQQJ0QaANaigCADYCpAECQAJAAkACQCABKAKoASgCAEECdEGwDmooAgBBf2oOAgABAgsgASABKAKoASgCBEGQmgEoAgAQpAI2AqABDAILIwBBEGsiACABKAKoASgCBDYCDCABQQAgACgCDGtBAnRB2NQAaigCADYCoAEMAQsgAUEANgKgAQsLAkAgASgCoAFFBEAgASABKAKkATYCrAEMAQsgASABKAKgARAsAn8gASgCpAEEQCABKAKkARAsQQJqDAELQQALakEBahAZIgA2AhwgAEUEQCABQdgNKAIANgKsAQwBCyABKAIcIQACfyABKAKkAQRAIAEoAqQBDAELQdSXAQshAkHVlwFB1JcBIAEoAqQBGyEDIAEgASgCoAE2AgggASADNgIEIAEgAjYCACAAQc2XASABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAtxAQN/AkACQANAIAAgAkHQiAFqLQAARwRAQdcAIQMgAkEBaiICQdcARw0BDAILCyACIgMNAEGwiQEhAAwBC0GwiQEhAgNAIAItAAAhBCACQQFqIgAhAiAEDQAgACECIANBf2oiAw0ACwsgASgCFBogAAszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGhogACAAKAIUIAFqNgIUIAILigEBAn8jAEGgAWsiAyQAIANBCGpBuIcBQZABEBoaIAMgADYCNCADIAA2AhwgA0F+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QQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQaShAQsGAEGgoQELBgBBmKEBC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELMCIAIgACAEQYH4ACADaxCyAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBCQAyICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtQI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQuwIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsgAigCFAuMEAMCfwF+AXwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIAEgASgCWCABQUBrELkCNgIkIAEpA0BQBEACQCABKAJYKAIEQQhxRQRAIAEoAiRFDQELIAEoAlgoAgAQhAJBAEgEQAJAAn8jAEEQayICIAEoAlgoAgA2AgwjAEEQayIAIAIoAgxBDGo2AgwgACgCDCgCAEEWRgsEQCMAQRBrIgIgASgC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NgI8IAEoAlAgASgCODYCQCABKAJYIAEoAjAQ1gIgASABKAJYKAIMNgJIIAEgASgCWCgCEDYCQCABIAEoAlgoAgA2AkwgASABKAJYKAIENgJEIAEgASgCUCgCPDYCPCABIAEoAlAoAkA2AjggASgCUCgCBEG//gBGBEAgASgCUEF/NgLINwsMDQsgASgCUEEANgLINwNAAkAgASABKAJQKAJQIAEoAjxBASABKAJQKAJYdEEBa3FBAnRqKAEANgEgIAEtACEgASgCOE0NACABKAJERQ0NIAEgASgCREF/ajYCRCABIAEoAkwiAEEBajYCTCABIAEoAjwgAC0AACABKAI4dGo2AjwgASABKAI4QQhqNgI4DAELCwJAIAEtACBFDQAgAS0AIEHwAXENACABIAEoASA2ARgDQAJAIAEgASgCUCgCUCABLwEaIAEoAjxBASABLQAZIAEtABhqdEEBa3EgAS0AGXZqQQJ0aigBADYBICABLQAZIAEtACFqIAEoAjhNDQAgASgCREUNDiABIAEoAkRBf2o2AkQgASABKAJMIgBBAWo2AkwgASABKAI8IAAtAAAgASgCOHRqNgI8IAEgASgCOEEIajYCOAwBCwsgASABKAI8IAEtABl2NgI8IAEgASgCOCABLQAZazYCOCABKAJQIgAgAS0AGSAAKALIN2o2Asg3CyABIAEoAjwgAS0AIXY2AjwgASABKAI4IAEtACFrNgI4IAEoAlAiACABLQAhIAAoAsg3ajYCyDcgASgCUCABLwEiNgJEIAEtACBFBEAgASgCUEHN/gA2AgQMDQsgAS0AIEEgcQRAIAEoAlBBfzYCyDcgASgCUEG//gA2AgQMDQsgAS0AIEHAAHEEQCABKAJYQYfxADYCGCABKAJQQdH+ADYCBAwNCyABKAJQIAEtACBBD3E2AkwgASgCUEHJ/gA2AgQLIAEoAlAoAkwEQANAIAEoAjggASgCUCgCTEkEQCABKAJERQ0NIAEgASgCREF/ajYCRCABIAEoAkwiAEEBajYCTCABIAEoAjwgAC0AACABKAI4dGo2AjwgASABKAI4QQhqNgI4DAELCyABKAJQIgAgACgCRCABKAI8QQEgASgCUCgCTHRBAWtxajYCRCABIAEoAjwgASgCUCgCTHY2AjwgASABKAI4IAEoAlAoAkxrNgI4IAEoAlAiACAB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KAIMSQRAIAIgAigCUCIAQQFqNgJQIAIgAigCLCAALQAAIAIoAih0ajYCLCACIAIoAihBCGo2AiggAigCKCACKAIMSQRAIAIgAigCUCIAQQFqNgJQIAIgAigCLCAALQAAIAIoAih0ajYCLCACIAIoAihBCGo2AigLCyACIAIoAgQgAigCLEEBIAIoAgx0QQFrcWo2AgQgAiACKAIsIAIoAgx2NgIsIAIgAigCKCACKAIMazYCKCACIAIoAkggAigCRGs2AgwCQCACKAIEIAIoAgxLBEAgAiACKAIEIAIoAgxrNgIMIAIoAgwgAigCOEsEQCACKAJUKALENwRAIAIoAlxBsO0ANgIYIAIoAlRB0f4ANgIEDAoLCyACIAIoAjA2AgACQCACKAI0RQRAIAIgAigCACACKAI8IAIoAgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsMAQsCQCACKAI0IAIoAgxJBEAgAiACKAIAIAIoAjwgAigCNGogAigCDGtqNgIAIAIgAigCDCACKAI0azYCDCACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCMDYCACACKAI0IAIoAghJBEAgAiACKAI0NgIMIAIgAigCCCACKAIMazYCCANAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIMQX9qIgA2AgwgAA0ACyACIAIoAkggAigCBGs2AgALCwwBCyACIAIoAgAgAigCNCACKAIMa2o2AgAgAigCDCACKAIISQRAIAIgAigCCCACKAIMazYCCANAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIMQX9qIgA2AgwgAA0ACyACIAIoAkggAigCBGs2AgALCwsDQCACKAIIQQJNRQRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCCEEDazYCCAwBCwsMAQsgAiACKAJIIAIoAgRrNgIAA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIIAIoAghBAksNAAsLIAIoAggEQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIoAghBAUsEQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAACwsMAgsgAigCDEHAAHFFBEAgAkEQaiACKAIgIAIvARIgAigCLEEBIAIoAgx0QQFrcWpBAnRqKAEANgEADAELCyACKAJcQc7tADYCGCACKAJUQdH+ADYCBAwECwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiQgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAgxBIHEEQCACKAJUQb/+ADYCBAwCCyACKAJcQeTtADYCGCACKAJUQdH+ADYCBAwBC0EAIQAgAigCUCACKAJMSQR/IAIoAkggAigCQEkFQQALQQFxDQELCyACIAIoAihBA3Y2AgggAiACKAJQIAIoAghrNgJQIAIgAigCKCACKAIIQQN0azYCKCACIAIoAixBASACKAIodEEBa3E2AiwgAigCXCACKAJQNgIAIAIoAlwgAigCSDYCDCACKAJcAn8gAigCUCACKAJMSQRAIAIoAkwgAigCUGtBBWoMAQtBBSACKAJQIAIoAkxraws2AgQgAigCXAJ/IAIoAkggAigCQEkEQCACKAJAIAIoAkhrQYECagwBC0GBAiACKAJIIAIoAkBraws2AhAgAigCVCACKAIsNgI8IAIoAlQgAigCKDYCQAvBEAECfyMAQSBrIgIk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LSAAKAKgLUEBdGogAi8BEDsBACACLQATIQEgAigCKCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BEEF/ajsBECACKAIoIAItABNBgNkAai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIoQYgTagJ/IAIvARBBgAJIBEAgAi8BEC0AgFUMAQsgAi8BEEEHdUGAAmotAIBVC0ECdGoiACAALwEAQQFqOwEAIAIgAigCKCgCoC0gAigCKCgCnC1BAWtGNgIgIAIoAigiACAAKAJ0IAIoAigoAmBrNgJ0IAIoAigiACACKAIoKAJgIAAoAmxqNgJsIAIoAihBADYCYAwBCyACIAIoAigiACgCOCAAKAJsai0AADoADyACKAIoIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAA8hASACKAIoIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCKCACLQAPQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAigoAqAtIAIoAigoApwtQQFrRjYCICACKAIoIgAgACgCdEF/ajYCdCACKAIoIgAgACgCbEEBajYCbAsgAigCIARAIAIoAigCfyACKAIoKAJcQQBOBEAgAigCKCgCOCACKAIoKAJcagwBC0EACyACKAIoKAJsIAIoAigoAlxrQQAQKSACKAIoIAIoAigoAmw2AlwgAigCKCgCABAdIAIoAigoAgAoAhBFBEAgAkEANgIsDAQLCwwBCwsgAigCKEEANgK0LSACKAIkQQRGBEAgAigCKAJ/IAIoAigoAlxBAE4EQCACKAIoKAI4IAIoAigoAlxqDAELQQALIAIoAigoAmwgAigCKCgCXGtBARApIAIoAiggAigCKCgCbDYCXCACKAIoKAIAEB0gAigCKCgCACgCEEUEQCACQQI2AiwMAgsgAkEDNgIsDAELIAIoAigoAqAtBEAgAigCKAJ/IAIoAigoAlxBAE4EQCACKAIoKAI4IAIoAigoAlxqDAELQQALIAIoAigoAmwgAigCKCgCXGtBABApIAIoAiggAigCKCgCbDYCXCACKAIoKAIAEB0gAigCKCgCACgCEEUEQCACQQA2AiwMAgsLIAJBATYCLAsgAigCLCEAIAJBMGokACAAC8AFAQJ/IwBBIGsiAiQA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AgQgAkEANgIQA0AgAigCEEEPSkUEQCACKAI8QbwWaiACKAIQQQF0akEAOwEAIAIgAigCEEEBajYCEAwBCwsgAigCNCACKAI8QdwWaiACKAI8KALUKEECdGooAgBBAnRqQQA7AQIgAiACKAI8KALUKEEBajYCHANAIAIoAhxBvQRIBEAgAiACKAI8QdwWaiACKAIcQQJ0aigCADYCGCACIAIoAjQgAigCNCACKAIYQQJ0ai8BAkECdGovAQJBAWo2AhAgAigCECACKAIgSgRAIAIgAigCIDYCECACIAIoAgRBAWo2AgQLIAIoAjQgAigCGEECdGogAigCEDsBAiACKAIYIAIoAjBMBEAgAigCPCACKAIQQQF0akG8FmoiACAALwEAQQFqOwEAIAJBADYCDCACKAIYIAIoAiROBEAgAiACKAIoIAIoAhggAigCJGtBAnRqKAIANgIMCyACIAIoAjQgAigCGEECdGovAQA7AQogAigCPCIAIAAoAqgtIAIvAQogAigCECACKAIMamxqNgKoLSACKAIsBEAgAigCPCIAIAAoAqwtIAIvAQogAigCLCACKAIYQQJ0ai8BAiACKAIMamxqNgKsLQsLIAIgAigCHEEBajYCHAwBCwsCQCACKAIERQ0AA0AgAiACKAIgQQFrNgIQA0AgAigCPEG8FmogAigCEEEBdGovAQBFBEAgAiACKAIQQX9qNgIQDAELCyACKAI8IAIoAhBBAXRqQbwWaiIAIAAvAQBBf2o7AQAgAigCPCACKAIQQQF0akG+FmoiACAALwEAQQJqOwEAIAIoAjwgAigCIEEBdGpBvBZqIgAgAC8BAEF/ajsBACACIAIoAgRBAms2AgQgAigCBEEASg0ACyACIAIoAiA2AhADQCACKAIQRQ0BIAIgAigCPEG8FmogAigCEEEBdGovAQA2AhgDQCACKAIYBEAgAigCPEHcFmohACACIAIoAhxBf2oiATYCHCACIAFBAnQgAGooAgA2AhQgAigCFCACKAIwSg0BIAIoAjQgAigCFEECdGovAQIgAigCEEcEQCACKAI8IgAgACgCqC0gAigCNCACKAIUQQJ0ai8BACACKAIQIAIoAjQgAigCFEECdGovAQJrbGo2AqgtIAIoAjQgAigCFEECdGogAigCEDsBAgsgAiACKAIYQX9qNgIYDAELCyACIAIo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KAIMIAEoAgxB/BRqNgKwFiABKAIMQajbADYCuBYgASgCDEEAOwG4LSABKAIMQQA2ArwtIAEoAgwQuQEgAUEQaiQAC9cNAQF/IwBBIGsiAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYQRB2NgIMIAMgAygCGEH//wNxNgIYAkAgAygCEEEBRgRAIAMgAygCFC0AACADKAIYajYCGCADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIYIAMoAgxqNgIMIAMoAgxB8f8DTwRAIAMgAygCDEHx/wNrNgIMCyADIAMoAhggAygCDEEQdHI2AhwMAQsgAygCFEUEQCADQQE2AhwMAQsgAygCEEEQSQRAA0AgAyADKAIQIgBBf2o2AhAgAARAIAMgAygCFCIAQQFqNgIUIAMgAC0AACADKAIYajYCGCADIAMoAhggAygCDGo2AgwMAQsLIAMoAhhB8f8DTwRAIAMgAygCGEHx/wNrNgIYCyADIAMoAgxB8f8DcDYCDCADIAMoAhggAygCDEEQdHI2AhwMAQsDQCADKAIQQbArSUUEQCADIAMoAhBBsCtrNgIQIANB2wI2AggDQCADIAMoAhQtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AASADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQACIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAMgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAFIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAYgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AByADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAIIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAkgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQALIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAwgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAOIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA8gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFEEQajYCFCADIAMoAghBf2oiADYCCCAADQALIAMgAygCGEHx/wNwNgIYIAMgAygCDEHx/wNwNgIMDAELCyADKAIQBEADQCADKAIQQRBJRQRAIAMgAygCEEEQazYCECADIAMoAhQtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AASADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQACIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAMgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAFIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAYgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AByADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAIIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAkgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQALIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAwgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAOIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA8gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFEEQajYCFAwBCwsDQCADIAMoAhAiAEF/ajYCECAABEAgAyADKAIUIgBBAWo2AhQgAyAALQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDAwBCwsgAyADKAIYQfH/A3A2AhggAyADKAIMQfH/A3A2AgwLIAMgAygC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KAIEDAELIAMoAgwoAgALQYAEEF4iADYCECAAQQBIBEAgA0J/NwO4AQwDCyADKAIQBEAgA0EBOgAXCyADIAMpAxhCAXw3AxgMAQsLIAMgAygCtAEoAgAQNSICNwMgIAJCAFMEQCADKAK0AUEIaiADKAK0ASgCABAYIANCfzcDuAEMAQsgAyADKQMgIAMpA6ABfTcDmAECQCADKQOgAUL/////D1gEQCADKQOoAUL//wNYDQELIANBAToAFwsgAyADQTBqQuIAECoiADYCLCAARQRAIAMoArQBQQhqQQ5BABAVIANCfzcDuAEMAQsgAy0AF0EBcQRAIAMoAixBttMAQQQQQCADKAIsQiwQLiADKAIsQS0QICADKAIsQS0QICADKAIsQQAQISADKAIsQQAQISADKAIsIAMpA6gBEC4gAygCLCADKQOoARAuIAMoAiwgAykDmAEQLiADKAIsIAMpA6ABEC4gAygCLEG70wBBBBBAIAMoAixBABAhIAMoAiwgAykDoAEgAykDmAF8EC4gAygCLEEBECELIAMoAixBwNMAQQQQQCADKAIsQQAQISADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ+Qv//AyADKQOoAUL//wNaDQAaIAMpA6gBC6dB//8DcRAgIAMoAiwCf0F/IAMpA5gBQv////8PWg0AGiADKQOYAacLECEgAygCLAJ/QX8gAykDoAFC/////w9aDQAaIAMpA6ABpwsQISADAn8gAygCtAEtAChBAXEEQCADKAK0ASgCJAwBCyADKAK0ASgCIAs2ApQBIAMoAiwCfyADKAKUAQRAIAMoApQBLwEEDAELQQALQf//A3EQIAJ/IwBBEGsiACADKAIsNgIMIAAoAgwtAABBAXFFCwRAIAMoArQBQQhqQRRBABAVIAMoAiwQFyADQn83A7gBDAELIAMoArQBAn8jAEEQayIAIAMoAiw2AgwgACgCDCgCBAsCfiMAQRBrIgAgAygCLDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCLBAXIANCfzcDuAEMAQsgAygCLBAXIAMoApQBBEAgAygCtAEgAygClAEoAgAgAygClAEvAQStEDZBAEgEQCADQn83A7gBDAILCyADIAMpA5gBNwO4AQsgAykDuAEhAiADQcABaiQAIAILBwAgACgCIAsIAEEBQTgQewsDAAELC/KNAScAQYAIC5QFTm8gZXJyb3IATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQAQ2xvc2luZyB6aXAgYXJjaGl2ZSBmYWlsZWQAU2VlayBlcnJvcgBSZWFkIGVycm9yAFdyaXRlIGVycm9yAENSQyBlcnJvcgBDb250YWluaW5nIHppcCBhcmNoaXZlIHdhcyBjbG9zZWQATm8gc3VjaCBmaWxlAEZpbGUgYWxyZWFkeSBleGlzdHMAQ2FuJ3Qgb3BlbiBmaWxlAEZhaWx1cmUgdG8gY3JlYXRlIHRlbXBvcmFyeSBmaWxlAFpsaWIgZXJyb3IATWFsbG9jIGZhaWx1cmUARW50cnkgaGFzIGJlZW4gY2hhbmdlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABQcmVtYXR1cmUgZW5kIG9mIGZpbGUASW52YWxpZCBhcmd1bWVudABOb3QgYSB6aXAgYXJjaGl2ZQBJbnRlcm5hbCBlcnJvcgBaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQAQ2FuJ3QgcmVtb3ZlIGZpbGUARW50cnkgaGFzIGJlZW4gZGVsZXRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFJlYWQtb25seSBhcmNoaXZlAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAFJlc291cmNlIHN0aWxsIGluIHVzZQBUZWxsIGVycm9yAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAEGhDQuAAQQAAAkEAAAvBAAATgQAAGkEAAB0BAAAfwQAAIsEAACVBAAAtwQAAMQEAADYBAAA6AQAAAkFAAAUBQAAIwUAADoFAABbBQAAcQUAAIIFAACUBQAAowUAALwFAADOBQAA5QUAAAUGAAAXBgAALAYAAEQGAABcBgAAcgYAAH0GAAAgAEG4DgsRAQAAAAEAAAABAAAAAQAAAAEAQdwOCwkBAAAAAQAAAAIAQYgPCwEBAEGoDwsB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CAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkAvwEJAH8ACQB/AQkA/wAJAP8BCQAAAAcAQAAHACAABwBgAAcAEAAHAFAABwAwAAcAcAAHAAgABwBIAAcAKAAHAGgABwAYAAcAWAAHADgABwB4AAcABAAHAEQABwAkAAcAZAAHABQABwBUAAcANAAHAHQABwADAAgAgwAIAEMACADDAAgAIwAIAKMACABjAAgA4wAIAAAABQAQAAUACAAFABgABQAEAAUAFAAFAAwABQAcAAUAAgAFABIABQAKAAUAGgAFAAYABQAWAAUADgAFAB4ABQABAAUAEQAFAAkABQAZAAUABQAFABUABQANAAUAHQAFAAMABQATAAUACwAFABsABQAHAAUAFwAFAEHg5QALTQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAEHQ5gALZQEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAEGA6AALIwIAAAADAAAABwAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAEG06AALaQEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4ABBtOkAC3oBAAAAAgAAAAMAAAAEAAAABgAAAAgAAAAMAAAAEAAAABgAAAAgAAAAMAAAAEAAAABgAAAAgAAAAMAAAAAAAQAAgAEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAADEuMi4xMQBBuOoAC20HAAAABAAEAAgABAAIAAAABAAFABAACAAIAAAABAAGACAAIAAIAAAABAAEABAAEAAJAAAACAAQACAAIAAJAAAACAAQAIAAgAAJAAAACAAgAIAAAAEJAAAAIACAAAIBAAQJAAAAIAACAQIBABAJAEGw6wAL1gIDAAQABQAGAAcACAAJAAoACwANAA8AEQATABcAGwAfACMAKwAzADsAQwBTAGMAcwCDAKMAwwDjAAIBAAAAAAAAEAAQABAAEAAQABAAEAAQABEAEQARABEAEgASABIAEgATABMAEwATABQAFAAUABQAFQAVABUAFQAQAE0AygAAAAEAAgADAAQABQAHAAkADQARABkAIQAxAEEAYQCBAMEAAQGBAQECAQMBBAEGAQgBDAEQARgBIAEwAUABYAAAAAAQABAAEAAQABEAEQASABIAEwATABQAFAAVABUAFgAWABcAFwAYABgAGQAZABoAGgAbABsAHAAcAB0AHQBAAEAAaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2sAaW52YWxpZCBkaXN0YW5jZSBjb2RlAGludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZQAxLjIuMTEAQZDuAAvyAxAAEQASAAAACAAHAAkABgAKAAUACwAEAAwAAwANAAIADgABAA8AaW5jb3JyZWN0IGhlYWRlciBjaGVjawB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABpbnZhbGlkIHdpbmRvdyBzaXplAHVua25vd24gaGVhZGVyIGZsYWdzIHNldABoZWFkZXIgY3JjIG1pc21hdGNoAGludmFsaWQgYmxvY2sgdHlwZQBpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgY29kZSBsZW5ndGhzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AGludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jawBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBkaXN0YW5jZXMgc2V0AGludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZQBpbnZhbGlkIGRpc3RhbmNlIGNvZGUAaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2sAaW5jb3JyZWN0IGRhdGEgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBBkPIAC5cRYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwAAQBwoAAAhgAAAIIAAACaAAAAgAAAAIgAAACEAAAAngABAHBgAACFgAAAgYAAAJkAATBzsAAAh4AAAIOAAACdAAEQcRAAAIaAAACCgAAAmwAAAICAAACIgAAAhIAAAJ8AAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnIABEHDQAACGQAAAgkAAAJqAAACAQAAAiEAAAIRAAACegAEAcIAAAIXAAACBwAAAmYABQHUwAACHwAAAg8AAAJ2AASBxcAAAhsAAAILAAACbgAAAgMAAAIjAAACEwAAAn4ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcQAEQcLAAAIYgAACCIAAAmkAAAIAgAACIIAAAhCAAAJ5AAQBwcAAAhaAAAIGgAACZQAFAdDAAAIegAACDoAAAnUABIHEwAACGoAAAgqAAAJtAAACAoAAAiKAAAISgAACfQAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzAARBw8AAAhmAAAIJgAACawAAAgGAAAIhgAACEYAAAnsABAHCQAACF4AAAgeAAAJnAAUB2MAAAh+AAAIPgAACdwAEgcbAAAIbgAACC4AAAm8AAAIDgAACI4AAAhOAAAJ/ABgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnCABAHCgAACGEAAAghAAAJogAACAEAAAiBAAAIQQAACeIAEAcGAAAIWQAACBkAAAmSABMHOwAACHkAAAg5AAAJ0gARBxEAAAhpAAAIKQAACbIAAAgJAAAIiQAACEkAAAnyABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcoAEQcNAAAIZQAACCUAAAmqAAAIBQAACIUAAAhFAAAJ6gAQBwgAAAhdAAAIHQAACZoAFAdTAAAIfQAACD0AAAnaABIHFwAACG0AAAgtAAAJugAACA0AAAiNAAAITQAACfoAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxgARBwsAAAhjAAAIIwAACaYAAAgDAAAIgwAACEMAAAnmABAHBwAACFsAAAgbAAAJlgAUB0MAAAh7AAAIOwAACdYAEgcTAAAIawAACCsAAAm2AAAICwAACIsAAAhLAAAJ9gAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnOABEHDwAACGcAAAgnAAAJrgAACAcAAAiHAAAIRwAACe4AEAcJAAAIXwAACB8AAAmeABQHYwAACH8AAAg/AAAJ3gASBxsAAAhvAAAILwAACb4AAAgPAAAIjwAACE8AAAn+AGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcEAEAcKAAAIYAAACCAAAAmhAAAIAAAACIAAAAhAAAAJ4QAQBwYAAAhYAAAIGAAACZEAEwc7AAAIeAAACDgAAAnRABEHEQAACGgAAAgoAAAJsQAACAgAAAiIAAAISAAACfEAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyQARBw0AAAhkAAAIJAAACakAAAgEAAAIhAAACEQAAAnpABAHCAAACFwAAAgcAAAJmQAUB1MAAAh8AAAIPAAACdkAEgcXAAAIbAAACCwAAAm5AAAIDAAACIwAAAhMAAAJ+QAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnFABEHCwAACGIAAAgiAAAJpQAACAIAAAiCAAAIQgAACeUAEAcHAAAIWgAACBoAAAmVABQHQwAACHoAAAg6AAAJ1QASBxMAAAhqAAAIKgAACbUAAAgKAAAIigAACEoAAAn1ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACc0AEQcPAAAIZgAACCYAAAmtAAAIBgAACIYAAAhGAAAJ7QAQBwkAAAheAAAIHgAACZ0AFAdjAAAIfgAACD4AAAndABIHGwAACG4AAAguAAAJvQAACA4AAAiOAAAITgAACf0AYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwwAQBwoAAAhhAAAIIQAACaMAAAgBAAAIgQAACEEAAAnjABAHBgAACFkAAAgZAAAJkwATBzsAAAh5AAAIOQAACdMAEQcRAAAIaQAACCkAAAmzAAAICQAACIkAAAhJAAAJ8wAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnLABEHDQAACGUAAAglAAAJqwAACAUAAAiFAAAIRQAACesAEAcIAAAIXQAACB0AAAmbABQHUwAACH0AAAg9AAAJ2wASBxcAAAhtAAAILQAACbsAAAgNAAAIjQAACE0AAAn7ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACccAEQcLAAAIYwAACCMAAAmnAAAIAwAACIMAAAhDAAAJ5wAQBwcAAAhbAAAIGwAACZcAFAdDAAAIewAACDsAAAnXABIHEwAACGsAAAgrAAAJtwAACAsAAAiLAAAISwAACfcAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzwARBw8AAAhnAAAIJwAACa8AAAgHAAAIhwAACEcAAAnvABAHCQAACF8AAAgfAAAJnwAUB2MAAAh/AAAIPwAACd8AEgcbAAAIbwAACC8AAAm/AAAIDwAACI8AAAhPAAAJ/wAQBQEAFwUBARMFEQAbBQEQEQUFABkFAQQVBUEAHQUBQBAFAwAYBQECFAUhABwFASASBQkAGgUBCBYFgQBABQAAEAUCABcFgQETBRkAGwUBGBEFBwAZBQEGFQVhAB0FAWAQBQQAGAUBAxQFMQAcBQEwEgUNABoFAQwWBcEAQAUAADEuMi4xMQAtKyAgIDBYMHgAKG51bGwpAEGwgwELQREACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGBhAELIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBBu4QBCwEMAEHHhAELFQwAAAAADAAAAAAJDAAAAAAADAAADABB9YQBCwEOAEGBhQELFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBr4UBCwEQAEG7hQELHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBB8oUBCw4SAAAAEhISAAAAAAAACQBBo4YBCwELAEGvhgELFQoAAAAACgAAAAAJCwAAAAAACwAACwBB3YYBCwEMAEHphgELSwwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRi0wWCswWCAwWC0weCsweCAweABpbmYASU5GAG5hbgBOQU4ALgBB3IcBCwEXAEGDiAELBf//////AEHQiAELVxkSRDsCPyxHFD0zMAobBkZLRTcPSQ6OFwNAHTxpKzYfSi0cASAlKSEIDBUWIi4QOD4LNDEYZHR1di9BCX85ESNDMkKJiosFBCYoJw0qHjWMBxpIkxOUlQBBsIkBC90OSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAFVua25vd24gZXJyb3IgJWQAJXMlcyVzAAA6IAAvcHJvYy9zZWxmL2ZkLwAvZGV2L3VyYW5kb20AcndhACVzLlhYWFhYWAByK2IAcmIAUEsFBgBBkJgBC04KAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAAQAAAAgAAAAQTAAAMEwAQZCaAQsCgFAAQciaAQsJHwAAAGRNAAADAEHkmgELjAEt9FFYz4yxwEb2tcspMQPHBFtwMLRd/SB4f4ua2FkpUGhIiaunVgNs/7fNiD/Ud7QrpaNw8brkqPxBg/3Zb+GKei8tdJYHHw0JXgN2LHD3QKUsp29XQaiqdN+gWGQDSsfEPFOur18YBBWx420ohqsMpL9D8OlQgTlXFlI3/////////////////////w=="; -if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); -} -function getBinary() { - try { - if (wasmBinary) { - return new Uint8Array(wasmBinary); - } - var binary = tryParseAsDataURI(wasmBinaryFile); - if (binary) { - return binary; - } - if (readBinary) { - return readBinary(wasmBinaryFile); - } else { - throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; - } - } catch (err) { - abort(err); - } -} -function createWasm() { - var info = { a: asmLibraryArg }; - function receiveInstance(instance, module) { - var exports = instance.exports; - Module["asm"] = exports; - removeRunDependency("wasm-instantiate"); - } - addRunDependency("wasm-instantiate"); - function instantiateSync() { - var instance; - var module; - var binary; - try { - binary = getBinary(); - module = new WebAssembly.Module(binary); - instance = new WebAssembly.Instance(module, info); - } catch (e) { - var str = e.toString(); - err("failed to compile wasm module: " + str); - if ( - str.indexOf("imported Memory") >= 0 || - str.indexOf("memory import") >= 0 - ) { - err( - "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." - ); - } - throw e; - } - receiveInstance(instance, module); - } - if (Module["instantiateWasm"]) { - try { - var exports = Module["instantiateWasm"](info, receiveInstance); - return exports; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - return false; - } - } - instantiateSync(); - return Module["asm"]; -} -var tempDouble; -var tempI64; -__ATINIT__.push({ - func: function() { - ___wasm_call_ctors(); - } -}); -function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == "function") { - callback(Module); - continue; - } - var func = callback.func; - if (typeof func === "number") { - if (callback.arg === undefined) { - wasmTable.get(func)(); - } else { - wasmTable.get(func)(callback.arg); - } - } else { - func(callback.arg === undefined ? null : callback.arg); - } - } -} -function demangle(func) { - return func; -} -function demangleAll(text) { - var regex = /\b_Z[\w\d_]+/g; - return text.replace(regex, function(x) { - var y = demangle(x); - return x === y ? x : y + " [" + x + "]"; - }); -} -function jsStackTrace() { - var error = new Error(); - if (!error.stack) { - try { - throw new Error(); - } catch (e) { - error = e; - } - if (!error.stack) { - return "(no stack trace available)"; - } - } - return error.stack.toString(); -} -function stackTrace() { - var js = jsStackTrace(); - if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"](); - return demangleAll(js); -} -function _gmtime_r(time, tmPtr) { - var date = new Date(HEAP32[time >> 2] * 1e3); - HEAP32[tmPtr >> 2] = date.getUTCSeconds(); - HEAP32[(tmPtr + 4) >> 2] = date.getUTCMinutes(); - HEAP32[(tmPtr + 8) >> 2] = date.getUTCHours(); - HEAP32[(tmPtr + 12) >> 2] = date.getUTCDate(); - HEAP32[(tmPtr + 16) >> 2] = date.getUTCMonth(); - HEAP32[(tmPtr + 20) >> 2] = date.getUTCFullYear() - 1900; - HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay(); - HEAP32[(tmPtr + 36) >> 2] = 0; - HEAP32[(tmPtr + 32) >> 2] = 0; - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0; - HEAP32[(tmPtr + 28) >> 2] = yday; - if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); - HEAP32[(tmPtr + 40) >> 2] = _gmtime_r.GMTString; - return tmPtr; -} -function ___gmtime_r(a0, a1) { - return _gmtime_r(a0, a1); -} -var PATH = { - splitPath: function(filename) { - var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; - return splitPathRe.exec(filename).slice(1); - }, - normalizeArray: function(parts, allowAboveRoot) { - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === ".") { - parts.splice(i, 1); - } else if (last === "..") { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - if (allowAboveRoot) { - for (; up; up--) { - parts.unshift(".."); - } - } - return parts; - }, - normalize: function(path) { - var isAbsolute = path.charAt(0) === "/", - trailingSlash = path.substr(-1) === "/"; - path = PATH.normalizeArray( - path.split("/").filter(function(p) { - return !!p; - }), - !isAbsolute - ).join("/"); - if (!path && !isAbsolute) { - path = "."; - } - if (path && trailingSlash) { - path += "/"; - } - return (isAbsolute ? "/" : "") + path; - }, - dirname: function(path) { - var result = PATH.splitPath(path), - root = result[0], - dir = result[1]; - if (!root && !dir) { - return "."; - } - if (dir) { - dir = dir.substr(0, dir.length - 1); - } - return root + dir; - }, - basename: function(path) { - if (path === "/") return "/"; - path = PATH.normalize(path); - path = path.replace(/\/$/, ""); - var lastSlash = path.lastIndexOf("/"); - if (lastSlash === -1) return path; - return path.substr(lastSlash + 1); - }, - extname: function(path) { - return PATH.splitPath(path)[3]; - }, - join: function() { - var paths = Array.prototype.slice.call(arguments, 0); - return PATH.normalize(paths.join("/")); - }, - join2: function(l, r) { - return PATH.normalize(l + "/" + r); - } -}; -function setErrNo(value) { - HEAP32[___errno_location() >> 2] = value; - return value; -} -var PATH_FS = { - resolve: function() { - var resolvedPath = "", - resolvedAbsolute = false; - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = i >= 0 ? arguments[i] : FS.cwd(); - if (typeof path !== "string") { - throw new TypeError("Arguments to path.resolve must be strings"); - } else if (!path) { - return ""; - } - resolvedPath = path + "/" + resolvedPath; - resolvedAbsolute = path.charAt(0) === "/"; - } - resolvedPath = PATH.normalizeArray( - resolvedPath.split("/").filter(function(p) { - return !!p; - }), - !resolvedAbsolute - ).join("/"); - return (resolvedAbsolute ? "/" : "") + resolvedPath || "."; - }, - relative: function(from, to) { - from = PATH_FS.resolve(from).substr(1); - to = PATH_FS.resolve(to).substr(1); - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== "") break; - } - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== "") break; - } - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - var fromParts = trim(from.split("/")); - var toParts = trim(to.split("/")); - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push(".."); - } - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - return outputParts.join("/"); - } -}; -var TTY = { - ttys: [], - init: function() {}, - shutdown: function() {}, - register: function(dev, ops) { - TTY.ttys[dev] = { input: [], output: [], ops: ops }; - FS.registerDevice(dev, TTY.stream_ops); - }, - stream_ops: { - open: function(stream) { - var tty = TTY.ttys[stream.node.rdev]; - if (!tty) { - throw new FS.ErrnoError(43); - } - stream.tty = tty; - stream.seekable = false; - }, - close: function(stream) { - stream.tty.ops.flush(stream.tty); - }, - flush: function(stream) { - stream.tty.ops.flush(stream.tty); - }, - read: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.get_char) { - throw new FS.ErrnoError(60); - } - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; - try { - result = stream.tty.ops.get_char(stream.tty); - } catch (e) { - throw new FS.ErrnoError(29); - } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); - } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset + i] = result; - } - if (bytesRead) { - stream.node.timestamp = Date.now(); - } - return bytesRead; - }, - write: function(stream, buffer, offset, length, pos) { - if (!stream.tty || !stream.tty.ops.put_char) { - throw new FS.ErrnoError(60); - } - try { - for (var i = 0; i < length; i++) { - stream.tty.ops.put_char(stream.tty, buffer[offset + i]); - } - } catch (e) { - throw new FS.ErrnoError(29); - } - if (length) { - stream.node.timestamp = Date.now(); - } - return i; - } - }, - default_tty_ops: { - get_char: function(tty) { - if (!tty.input.length) { - var result = null; - if (ENVIRONMENT_IS_NODE) { - var BUFSIZE = 256; - var buf = Buffer.alloc ? Buffer.alloc(BUFSIZE) : new Buffer(BUFSIZE); - var bytesRead = 0; - try { - bytesRead = nodeFS.readSync( - process.stdin.fd, - buf, - 0, - BUFSIZE, - null - ); - } catch (e) { - if (e.toString().indexOf("EOF") != -1) bytesRead = 0; - else throw e; + accessSync(p, mode) { + return this.makeCallSync( + p, + () => { + return this.baseFs.accessSync(p, mode) + }, + (zipFs, { subPath }) => { + return zipFs.accessSync(subPath, mode) + } + ) } - if (bytesRead > 0) { - result = buf.slice(0, bytesRead).toString("utf-8"); - } else { - result = null; + + async statPromise(p) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.statPromise(p) + }, + async (zipFs, { subPath }) => { + return await zipFs.statPromise(subPath) + } + ) } - } else if ( - typeof window != "undefined" && - typeof window.prompt == "function" - ) { - result = window.prompt("Input: "); - if (result !== null) { - result += "\n"; + + statSync(p) { + return this.makeCallSync( + p, + () => { + return this.baseFs.statSync(p) + }, + (zipFs, { subPath }) => { + return zipFs.statSync(subPath) + } + ) } - } else if (typeof readline == "function") { - result = readline(); - if (result !== null) { - result += "\n"; + + async lstatPromise(p) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.lstatPromise(p) + }, + async (zipFs, { subPath }) => { + return await zipFs.lstatPromise(subPath) + } + ) } - } - if (!result) { - return null; - } - tty.input = intArrayFromString(result, true); - } - return tty.input.shift(); - }, - put_char: function(tty, val) { - if (val === null || val === 10) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - }, - flush: function(tty) { - if (tty.output && tty.output.length > 0) { - out(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } - }, - default_tty1_ops: { - put_char: function(tty, val) { - if (val === null || val === 10) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } else { - if (val != 0) tty.output.push(val); - } - }, - flush: function(tty) { - if (tty.output && tty.output.length > 0) { - err(UTF8ArrayToString(tty.output, 0)); - tty.output = []; - } - } - } -}; -var MEMFS = { - ops_table: null, - mount: function(mount) { - return MEMFS.createNode(null, "/", 16384 | 511, 0); - }, - createNode: function(parent, name, mode, dev) { - if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { - throw new FS.ErrnoError(63); - } - if (!MEMFS.ops_table) { - MEMFS.ops_table = { - dir: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - lookup: MEMFS.node_ops.lookup, - mknod: MEMFS.node_ops.mknod, - rename: MEMFS.node_ops.rename, - unlink: MEMFS.node_ops.unlink, - rmdir: MEMFS.node_ops.rmdir, - readdir: MEMFS.node_ops.readdir, - symlink: MEMFS.node_ops.symlink - }, - stream: { llseek: MEMFS.stream_ops.llseek } - }, - file: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: { - llseek: MEMFS.stream_ops.llseek, - read: MEMFS.stream_ops.read, - write: MEMFS.stream_ops.write, - allocate: MEMFS.stream_ops.allocate, - mmap: MEMFS.stream_ops.mmap, - msync: MEMFS.stream_ops.msync + + lstatSync(p) { + return this.makeCallSync( + p, + () => { + return this.baseFs.lstatSync(p) + }, + (zipFs, { subPath }) => { + return zipFs.lstatSync(subPath) + } + ) } - }, - link: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr, - readlink: MEMFS.node_ops.readlink - }, - stream: {} - }, - chrdev: { - node: { - getattr: MEMFS.node_ops.getattr, - setattr: MEMFS.node_ops.setattr - }, - stream: FS.chrdev_stream_ops - } - }; - } - var node = FS.createNode(parent, name, mode, dev); - if (FS.isDir(node.mode)) { - node.node_ops = MEMFS.ops_table.dir.node; - node.stream_ops = MEMFS.ops_table.dir.stream; - node.contents = {}; - } else if (FS.isFile(node.mode)) { - node.node_ops = MEMFS.ops_table.file.node; - node.stream_ops = MEMFS.ops_table.file.stream; - node.usedBytes = 0; - node.contents = null; - } else if (FS.isLink(node.mode)) { - node.node_ops = MEMFS.ops_table.link.node; - node.stream_ops = MEMFS.ops_table.link.stream; - } else if (FS.isChrdev(node.mode)) { - node.node_ops = MEMFS.ops_table.chrdev.node; - node.stream_ops = MEMFS.ops_table.chrdev.stream; - } - node.timestamp = Date.now(); - if (parent) { - parent.contents[name] = node; - } - return node; - }, - getFileDataAsRegularArray: function(node) { - if (node.contents && node.contents.subarray) { - var arr = []; - for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); - return arr; - } - return node.contents; - }, - getFileDataAsTypedArray: function(node) { - if (!node.contents) return new Uint8Array(0); - if (node.contents.subarray) - return node.contents.subarray(0, node.usedBytes); - return new Uint8Array(node.contents); - }, - expandFileStorage: function(node, newCapacity) { - var prevCapacity = node.contents ? node.contents.length : 0; - if (prevCapacity >= newCapacity) return; - var CAPACITY_DOUBLING_MAX = 1024 * 1024; - newCapacity = Math.max( - newCapacity, - (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> 0 - ); - if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); - var oldContents = node.contents; - node.contents = new Uint8Array(newCapacity); - if (node.usedBytes > 0) - node.contents.set(oldContents.subarray(0, node.usedBytes), 0); - return; - }, - resizeFileStorage: function(node, newSize) { - if (node.usedBytes == newSize) return; - if (newSize == 0) { - node.contents = null; - node.usedBytes = 0; - return; - } - if (!node.contents || node.contents.subarray) { - var oldContents = node.contents; - node.contents = new Uint8Array(newSize); - if (oldContents) { - node.contents.set( - oldContents.subarray(0, Math.min(newSize, node.usedBytes)) - ); - } - node.usedBytes = newSize; - return; - } - if (!node.contents) node.contents = []; - if (node.contents.length > newSize) node.contents.length = newSize; - else while (node.contents.length < newSize) node.contents.push(0); - node.usedBytes = newSize; - }, - node_ops: { - getattr: function(node) { - var attr = {}; - attr.dev = FS.isChrdev(node.mode) ? node.id : 1; - attr.ino = node.id; - attr.mode = node.mode; - attr.nlink = 1; - attr.uid = 0; - attr.gid = 0; - attr.rdev = node.rdev; - if (FS.isDir(node.mode)) { - attr.size = 4096; - } else if (FS.isFile(node.mode)) { - attr.size = node.usedBytes; - } else if (FS.isLink(node.mode)) { - attr.size = node.link.length; - } else { - attr.size = 0; - } - attr.atime = new Date(node.timestamp); - attr.mtime = new Date(node.timestamp); - attr.ctime = new Date(node.timestamp); - attr.blksize = 4096; - attr.blocks = Math.ceil(attr.size / attr.blksize); - return attr; - }, - setattr: function(node, attr) { - if (attr.mode !== undefined) { - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - node.timestamp = attr.timestamp; - } - if (attr.size !== undefined) { - MEMFS.resizeFileStorage(node, attr.size); - } - }, - lookup: function(parent, name) { - throw FS.genericErrors[44]; - }, - mknod: function(parent, name, mode, dev) { - return MEMFS.createNode(parent, name, mode, dev); - }, - rename: function(old_node, new_dir, new_name) { - if (FS.isDir(old_node.mode)) { - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) {} - if (new_node) { - for (var i in new_node.contents) { - throw new FS.ErrnoError(55); + + async chmodPromise(p, mask) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.chmodPromise(p, mask) + }, + async (zipFs, { subPath }) => { + return await zipFs.chmodPromise(subPath, mask) + } + ) } - } - } - delete old_node.parent.contents[old_node.name]; - old_node.name = new_name; - new_dir.contents[new_name] = old_node; - old_node.parent = new_dir; - }, - unlink: function(parent, name) { - delete parent.contents[name]; - }, - rmdir: function(parent, name) { - var node = FS.lookupNode(parent, name); - for (var i in node.contents) { - throw new FS.ErrnoError(55); - } - delete parent.contents[name]; - }, - readdir: function(node) { - var entries = [".", ".."]; - for (var key in node.contents) { - if (!node.contents.hasOwnProperty(key)) { - continue; - } - entries.push(key); - } - return entries; - }, - symlink: function(parent, newname, oldpath) { - var node = MEMFS.createNode(parent, newname, 511 | 40960, 0); - node.link = oldpath; - return node; - }, - readlink: function(node) { - if (!FS.isLink(node.mode)) { - throw new FS.ErrnoError(28); - } - return node.link; - } - }, - stream_ops: { - read: function(stream, buffer, offset, length, position) { - var contents = stream.node.contents; - if (position >= stream.node.usedBytes) return 0; - var size = Math.min(stream.node.usedBytes - position, length); - if (size > 8 && contents.subarray) { - buffer.set(contents.subarray(position, position + size), offset); - } else { - for (var i = 0; i < size; i++) - buffer[offset + i] = contents[position + i]; - } - return size; - }, - write: function(stream, buffer, offset, length, position, canOwn) { - if (buffer.buffer === HEAP8.buffer) { - canOwn = false; - } - if (!length) return 0; - var node = stream.node; - node.timestamp = Date.now(); - if (buffer.subarray && (!node.contents || node.contents.subarray)) { - if (canOwn) { - node.contents = buffer.subarray(offset, offset + length); - node.usedBytes = length; - return length; - } else if (node.usedBytes === 0 && position === 0) { - node.contents = buffer.slice(offset, offset + length); - node.usedBytes = length; - return length; - } else if (position + length <= node.usedBytes) { - node.contents.set(buffer.subarray(offset, offset + length), position); - return length; - } - } - MEMFS.expandFileStorage(node, position + length); - if (node.contents.subarray && buffer.subarray) { - node.contents.set(buffer.subarray(offset, offset + length), position); - } else { - for (var i = 0; i < length; i++) { - node.contents[position + i] = buffer[offset + i]; - } - } - node.usedBytes = Math.max(node.usedBytes, position + length); - return length; - }, - llseek: function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - position += stream.node.usedBytes; - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, - allocate: function(stream, offset, length) { - MEMFS.expandFileStorage(stream.node, offset + length); - stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); - }, - mmap: function(stream, address, length, position, prot, flags) { - assert(address === 0); - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr; - var allocated; - var contents = stream.node.contents; - if (!(flags & 2) && contents.buffer === buffer) { - allocated = false; - ptr = contents.byteOffset; - } else { - if (position > 0 || position + length < contents.length) { - if (contents.subarray) { - contents = contents.subarray(position, position + length); - } else { - contents = Array.prototype.slice.call( - contents, - position, - position + length - ); + + chmodSync(p, mask) { + return this.makeCallSync( + p, + () => { + return this.baseFs.chmodSync(p, mask) + }, + (zipFs, { subPath }) => { + return zipFs.chmodSync(subPath, mask) + } + ) } - } - allocated = true; - ptr = FS.mmapAlloc(length); - if (!ptr) { - throw new FS.ErrnoError(48); - } - HEAP8.set(contents, ptr); - } - return { ptr: ptr, allocated: allocated }; - }, - msync: function(stream, buffer, offset, length, mmapFlags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (mmapFlags & 2) { - return 0; - } - var bytesWritten = MEMFS.stream_ops.write( - stream, - buffer, - 0, - length, - offset, - false - ); - return 0; - } - } -}; -var ERRNO_CODES = { - EPERM: 63, - ENOENT: 44, - ESRCH: 71, - EINTR: 27, - EIO: 29, - ENXIO: 60, - E2BIG: 1, - ENOEXEC: 45, - EBADF: 8, - ECHILD: 12, - EAGAIN: 6, - EWOULDBLOCK: 6, - ENOMEM: 48, - EACCES: 2, - EFAULT: 21, - ENOTBLK: 105, - EBUSY: 10, - EEXIST: 20, - EXDEV: 75, - ENODEV: 43, - ENOTDIR: 54, - EISDIR: 31, - EINVAL: 28, - ENFILE: 41, - EMFILE: 33, - ENOTTY: 59, - ETXTBSY: 74, - EFBIG: 22, - ENOSPC: 51, - ESPIPE: 70, - EROFS: 69, - EMLINK: 34, - EPIPE: 64, - EDOM: 18, - ERANGE: 68, - ENOMSG: 49, - EIDRM: 24, - ECHRNG: 106, - EL2NSYNC: 156, - EL3HLT: 107, - EL3RST: 108, - ELNRNG: 109, - EUNATCH: 110, - ENOCSI: 111, - EL2HLT: 112, - EDEADLK: 16, - ENOLCK: 46, - EBADE: 113, - EBADR: 114, - EXFULL: 115, - ENOANO: 104, - EBADRQC: 103, - EBADSLT: 102, - EDEADLOCK: 16, - EBFONT: 101, - ENOSTR: 100, - ENODATA: 116, - ETIME: 117, - ENOSR: 118, - ENONET: 119, - ENOPKG: 120, - EREMOTE: 121, - ENOLINK: 47, - EADV: 122, - ESRMNT: 123, - ECOMM: 124, - EPROTO: 65, - EMULTIHOP: 36, - EDOTDOT: 125, - EBADMSG: 9, - ENOTUNIQ: 126, - EBADFD: 127, - EREMCHG: 128, - ELIBACC: 129, - ELIBBAD: 130, - ELIBSCN: 131, - ELIBMAX: 132, - ELIBEXEC: 133, - ENOSYS: 52, - ENOTEMPTY: 55, - ENAMETOOLONG: 37, - ELOOP: 32, - EOPNOTSUPP: 138, - EPFNOSUPPORT: 139, - ECONNRESET: 15, - ENOBUFS: 42, - EAFNOSUPPORT: 5, - EPROTOTYPE: 67, - ENOTSOCK: 57, - ENOPROTOOPT: 50, - ESHUTDOWN: 140, - ECONNREFUSED: 14, - EADDRINUSE: 3, - ECONNABORTED: 13, - ENETUNREACH: 40, - ENETDOWN: 38, - ETIMEDOUT: 73, - EHOSTDOWN: 142, - EHOSTUNREACH: 23, - EINPROGRESS: 26, - EALREADY: 7, - EDESTADDRREQ: 17, - EMSGSIZE: 35, - EPROTONOSUPPORT: 66, - ESOCKTNOSUPPORT: 137, - EADDRNOTAVAIL: 4, - ENETRESET: 39, - EISCONN: 30, - ENOTCONN: 53, - ETOOMANYREFS: 141, - EUSERS: 136, - EDQUOT: 19, - ESTALE: 72, - ENOTSUP: 138, - ENOMEDIUM: 148, - EILSEQ: 25, - EOVERFLOW: 61, - ECANCELED: 11, - ENOTRECOVERABLE: 56, - EOWNERDEAD: 62, - ESTRPIPE: 135 -}; -var NODEFS = { - isWindows: false, - staticInit: function() { - NODEFS.isWindows = !!process.platform.match(/^win/); - var flags = { fs: fs.constants }; - if (flags["fs"]) { - flags = flags["fs"]; - } - NODEFS.flagsForNodeMap = { - 1024: flags["O_APPEND"], - 64: flags["O_CREAT"], - 128: flags["O_EXCL"], - 0: flags["O_RDONLY"], - 2: flags["O_RDWR"], - 4096: flags["O_SYNC"], - 512: flags["O_TRUNC"], - 1: flags["O_WRONLY"] - }; - }, - bufferFrom: function(arrayBuffer) { - return Buffer["alloc"] ? Buffer.from(arrayBuffer) : new Buffer(arrayBuffer); - }, - convertNodeCode: function(e) { - var code = e.code; - return ERRNO_CODES[code]; - }, - mount: function(mount) { - return NODEFS.createNode(null, "/", NODEFS.getMode(mount.opts.root), 0); - }, - createNode: function(parent, name, mode, dev) { - if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { - throw new FS.ErrnoError(28); - } - var node = FS.createNode(parent, name, mode); - node.node_ops = NODEFS.node_ops; - node.stream_ops = NODEFS.stream_ops; - return node; - }, - getMode: function(path) { - var stat; - try { - stat = fs.lstatSync(path); - if (NODEFS.isWindows) { - stat.mode = stat.mode | ((stat.mode & 292) >> 2); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - return stat.mode; - }, - realPath: function(node) { - var parts = []; - while (node.parent !== node) { - parts.push(node.name); - node = node.parent; - } - parts.push(node.mount.opts.root); - parts.reverse(); - return PATH.join.apply(null, parts); - }, - flagsForNode: function(flags) { - flags &= ~2097152; - flags &= ~2048; - flags &= ~32768; - flags &= ~524288; - var newFlags = 0; - for (var k in NODEFS.flagsForNodeMap) { - if (flags & k) { - newFlags |= NODEFS.flagsForNodeMap[k]; - flags ^= k; - } - } - if (!flags) { - return newFlags; - } else { - throw new FS.ErrnoError(28); - } - }, - node_ops: { - getattr: function(node) { - var path = NODEFS.realPath(node); - var stat; - try { - stat = fs.lstatSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - if (NODEFS.isWindows && !stat.blksize) { - stat.blksize = 4096; - } - if (NODEFS.isWindows && !stat.blocks) { - stat.blocks = ((stat.size + stat.blksize - 1) / stat.blksize) | 0; - } - return { - dev: stat.dev, - ino: stat.ino, - mode: stat.mode, - nlink: stat.nlink, - uid: stat.uid, - gid: stat.gid, - rdev: stat.rdev, - size: stat.size, - atime: stat.atime, - mtime: stat.mtime, - ctime: stat.ctime, - blksize: stat.blksize, - blocks: stat.blocks - }; - }, - setattr: function(node, attr) { - var path = NODEFS.realPath(node); - try { - if (attr.mode !== undefined) { - fs.chmodSync(path, attr.mode); - node.mode = attr.mode; - } - if (attr.timestamp !== undefined) { - var date = new Date(attr.timestamp); - fs.utimesSync(path, date, date); - } - if (attr.size !== undefined) { - fs.truncateSync(path, attr.size); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - lookup: function(parent, name) { - var path = PATH.join2(NODEFS.realPath(parent), name); - var mode = NODEFS.getMode(path); - return NODEFS.createNode(parent, name, mode); - }, - mknod: function(parent, name, mode, dev) { - var node = NODEFS.createNode(parent, name, mode, dev); - var path = NODEFS.realPath(node); - try { - if (FS.isDir(node.mode)) { - fs.mkdirSync(path, node.mode); - } else { - fs.writeFileSync(path, "", { mode: node.mode }); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - return node; - }, - rename: function(oldNode, newDir, newName) { - var oldPath = NODEFS.realPath(oldNode); - var newPath = PATH.join2(NODEFS.realPath(newDir), newName); - try { - fs.renameSync(oldPath, newPath); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - oldNode.name = newName; - }, - unlink: function(parent, name) { - var path = PATH.join2(NODEFS.realPath(parent), name); - try { - fs.unlinkSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - rmdir: function(parent, name) { - var path = PATH.join2(NODEFS.realPath(parent), name); - try { - fs.rmdirSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - readdir: function(node) { - var path = NODEFS.realPath(node); - try { - return fs.readdirSync(path); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - symlink: function(parent, newName, oldPath) { - var newPath = PATH.join2(NODEFS.realPath(parent), newName); - try { - fs.symlinkSync(oldPath, newPath); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - readlink: function(node) { - var path = NODEFS.realPath(node); - try { - path = fs.readlinkSync(path); - path = NODEJS_PATH.relative( - NODEJS_PATH.resolve(node.mount.opts.root), - path - ); - return path; - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - } - }, - stream_ops: { - open: function(stream) { - var path = NODEFS.realPath(stream.node); - try { - if (FS.isFile(stream.node.mode)) { - stream.nfd = fs.openSync(path, NODEFS.flagsForNode(stream.flags)); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - close: function(stream) { - try { - if (FS.isFile(stream.node.mode) && stream.nfd) { - fs.closeSync(stream.nfd); - } - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - read: function(stream, buffer, offset, length, position) { - if (length === 0) return 0; - try { - return fs.readSync( - stream.nfd, - NODEFS.bufferFrom(buffer.buffer), - offset, - length, - position - ); - } catch (e) { - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - write: function(stream, buffer, offset, length, position) { - try { - return fs.writeSync( - stream.nfd, - NODEFS.bufferFrom(buffer.buffer), - offset, - length, - position - ); - } catch (e) { - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); - } - }, - llseek: function(stream, offset, whence) { - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - if (FS.isFile(stream.node.mode)) { - try { - var stat = fs.fstatSync(stream.nfd); - position += stat.size; - } catch (e) { - throw new FS.ErrnoError(NODEFS.convertNodeCode(e)); + + async chownPromise(p, uid, gid) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.chownPromise(p, uid, gid) + }, + async (zipFs, { subPath }) => { + return await zipFs.chownPromise(subPath, uid, gid) + } + ) } - } - } - if (position < 0) { - throw new FS.ErrnoError(28); - } - return position; - }, - mmap: function(stream, address, length, position, prot, flags) { - assert(address === 0); - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - var ptr = FS.mmapAlloc(length); - NODEFS.stream_ops.read(stream, HEAP8, ptr, length, position); - return { ptr: ptr, allocated: true }; - }, - msync: function(stream, buffer, offset, length, mmapFlags) { - if (!FS.isFile(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (mmapFlags & 2) { - return 0; - } - var bytesWritten = NODEFS.stream_ops.write( - stream, - buffer, - 0, - length, - offset, - false - ); - return 0; - } - } -}; -var NODERAWFS = { - lookupPath: function(path) { - return { path: path, node: { mode: NODEFS.getMode(path) } }; - }, - createStandardStreams: function() { - FS.streams[0] = { - fd: 0, - nfd: 0, - position: 0, - path: "", - flags: 0, - tty: true, - seekable: false - }; - for (var i = 1; i < 3; i++) { - FS.streams[i] = { - fd: i, - nfd: i, - position: 0, - path: "", - flags: 577, - tty: true, - seekable: false - }; - } - }, - cwd: function() { - return process.cwd(); - }, - chdir: function() { - process.chdir.apply(void 0, arguments); - }, - mknod: function(path, mode) { - if (FS.isDir(path)) { - fs.mkdirSync(path, mode); - } else { - fs.writeFileSync(path, "", { mode: mode }); - } - }, - mkdir: function() { - fs.mkdirSync.apply(void 0, arguments); - }, - symlink: function() { - fs.symlinkSync.apply(void 0, arguments); - }, - rename: function() { - fs.renameSync.apply(void 0, arguments); - }, - rmdir: function() { - fs.rmdirSync.apply(void 0, arguments); - }, - readdir: function() { - fs.readdirSync.apply(void 0, arguments); - }, - unlink: function() { - fs.unlinkSync.apply(void 0, arguments); - }, - readlink: function() { - return fs.readlinkSync.apply(void 0, arguments); - }, - stat: function() { - return fs.statSync.apply(void 0, arguments); - }, - lstat: function() { - return fs.lstatSync.apply(void 0, arguments); - }, - chmod: function() { - fs.chmodSync.apply(void 0, arguments); - }, - fchmod: function() { - fs.fchmodSync.apply(void 0, arguments); - }, - chown: function() { - fs.chownSync.apply(void 0, arguments); - }, - fchown: function() { - fs.fchownSync.apply(void 0, arguments); - }, - truncate: function() { - fs.truncateSync.apply(void 0, arguments); - }, - ftruncate: function() { - fs.ftruncateSync.apply(void 0, arguments); - }, - utime: function() { - fs.utimesSync.apply(void 0, arguments); - }, - open: function(path, flags, mode, suggestFD) { - if (typeof flags === "string") { - flags = VFS.modeStringToFlags(flags); - } - var nfd = fs.openSync(path, NODEFS.flagsForNode(flags), mode); - var fd = suggestFD != null ? suggestFD : FS.nextfd(nfd); - var stream = { - fd: fd, - nfd: nfd, - position: 0, - path: path, - flags: flags, - seekable: true - }; - FS.streams[fd] = stream; - return stream; - }, - close: function(stream) { - if (!stream.stream_ops) { - fs.closeSync(stream.nfd); - } - FS.closeStream(stream.fd); - }, - llseek: function(stream, offset, whence) { - if (stream.stream_ops) { - return VFS.llseek(stream, offset, whence); - } - var position = offset; - if (whence === 1) { - position += stream.position; - } else if (whence === 2) { - position += fs.fstatSync(stream.nfd).size; - } else if (whence !== 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - if (position < 0) { - throw new FS.ErrnoError(ERRNO_CODES.EINVAL); - } - stream.position = position; - return position; - }, - read: function(stream, buffer, offset, length, position) { - if (stream.stream_ops) { - return VFS.read(stream, buffer, offset, length, position); - } - var seeking = typeof position !== "undefined"; - if (!seeking && stream.seekable) position = stream.position; - var bytesRead = fs.readSync( - stream.nfd, - NODEFS.bufferFrom(buffer.buffer), - offset, - length, - position - ); - if (!seeking) stream.position += bytesRead; - return bytesRead; - }, - write: function(stream, buffer, offset, length, position) { - if (stream.stream_ops) { - return VFS.write(stream, buffer, offset, length, position); - } - if (stream.flags & +"1024") { - FS.llseek(stream, 0, +"2"); - } - var seeking = typeof position !== "undefined"; - if (!seeking && stream.seekable) position = stream.position; - var bytesWritten = fs.writeSync( - stream.nfd, - NODEFS.bufferFrom(buffer.buffer), - offset, - length, - position - ); - if (!seeking) stream.position += bytesWritten; - return bytesWritten; - }, - allocate: function() { - throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); - }, - mmap: function() { - throw new FS.ErrnoError(ERRNO_CODES.ENODEV); - }, - msync: function() { - return 0; - }, - munmap: function() { - return 0; - }, - ioctl: function() { - throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); - } -}; -var FS = { - root: null, - mounts: [], - devices: {}, - streams: [], - nextInode: 1, - nameTable: null, - currentPath: "/", - initialized: false, - ignorePermissions: true, - trackingDelegate: {}, - tracking: { openFlags: { READ: 1, WRITE: 2 } }, - ErrnoError: null, - genericErrors: {}, - filesystems: null, - syncFSRequests: 0, - handleFSError: function(e) { - if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace(); - return setErrNo(e.errno); - }, - lookupPath: function(path, opts) { - path = PATH_FS.resolve(FS.cwd(), path); - opts = opts || {}; - if (!path) return { path: "", node: null }; - var defaults = { follow_mount: true, recurse_count: 0 }; - for (var key in defaults) { - if (opts[key] === undefined) { - opts[key] = defaults[key]; - } - } - if (opts.recurse_count > 8) { - throw new FS.ErrnoError(32); - } - var parts = PATH.normalizeArray( - path.split("/").filter(function(p) { - return !!p; - }), - false - ); - var current = FS.root; - var current_path = "/"; - for (var i = 0; i < parts.length; i++) { - var islast = i === parts.length - 1; - if (islast && opts.parent) { - break; - } - current = FS.lookupNode(current, parts[i]); - current_path = PATH.join2(current_path, parts[i]); - if (FS.isMountpoint(current)) { - if (!islast || (islast && opts.follow_mount)) { - current = current.mounted.root; - } - } - if (!islast || opts.follow) { - var count = 0; - while (FS.isLink(current.mode)) { - var link = FS.readlink(current_path); - current_path = PATH_FS.resolve(PATH.dirname(current_path), link); - var lookup = FS.lookupPath(current_path, { - recurse_count: opts.recurse_count - }); - current = lookup.node; - if (count++ > 40) { - throw new FS.ErrnoError(32); + + chownSync(p, uid, gid) { + return this.makeCallSync( + p, + () => { + return this.baseFs.chownSync(p, uid, gid) + }, + (zipFs, { subPath }) => { + return zipFs.chownSync(subPath, uid, gid) + } + ) + } + + async renamePromise(oldP, newP) { + return await this.makeCallPromise( + oldP, + async () => { + return await this.makeCallPromise( + newP, + async () => { + return await this.baseFs.renamePromise(oldP, newP) + }, + async () => { + throw Object.assign( + new Error(`EEXDEV: cross-device link not permitted`), + { + code: `EEXDEV`, + } + ) + } + ) + }, + async (zipFsO, { subPath: subPathO }) => { + return await this.makeCallPromise( + newP, + async () => { + throw Object.assign( + new Error(`EEXDEV: cross-device link not permitted`), + { + code: `EEXDEV`, + } + ) + }, + async (zipFsN, { subPath: subPathN }) => { + if (zipFsO !== zipFsN) { + throw Object.assign( + new Error(`EEXDEV: cross-device link not permitted`), + { + code: `EEXDEV`, + } + ) + } else { + return await zipFsO.renamePromise(subPathO, subPathN) + } + } + ) + } + ) + } + + renameSync(oldP, newP) { + return this.makeCallSync( + oldP, + () => { + return this.makeCallSync( + newP, + () => { + return this.baseFs.renameSync(oldP, newP) + }, + async () => { + throw Object.assign( + new Error(`EEXDEV: cross-device link not permitted`), + { + code: `EEXDEV`, + } + ) + } + ) + }, + (zipFsO, { subPath: subPathO }) => { + return this.makeCallSync( + newP, + () => { + throw Object.assign( + new Error(`EEXDEV: cross-device link not permitted`), + { + code: `EEXDEV`, + } + ) + }, + (zipFsN, { subPath: subPathN }) => { + if (zipFsO !== zipFsN) { + throw Object.assign( + new Error(`EEXDEV: cross-device link not permitted`), + { + code: `EEXDEV`, + } + ) + } else { + return zipFsO.renameSync(subPathO, subPathN) + } + } + ) + } + ) + } + + async copyFilePromise(sourceP, destP, flags = 0) { + const fallback = async (sourceFs, sourceP, destFs, destP) => { + if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign( + new Error( + `EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'` + ), + { + code: `EXDEV`, + } + ) + if ( + flags & external_fs_.constants.COPYFILE_EXCL && + (await this.existsPromise(sourceP)) + ) + throw Object.assign( + new Error( + `EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'` + ), + { + code: `EEXIST`, + } + ) + let content + + try { + content = await sourceFs.readFilePromise(sourceP) + } catch (error) { + throw Object.assign( + new Error( + `EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'` + ), + { + code: `EINVAL`, + } + ) + } + + await destFs.writeFilePromise(destP, content) + } + + return await this.makeCallPromise( + sourceP, + async () => { + return await this.makeCallPromise( + destP, + async () => { + return await this.baseFs.copyFilePromise( + sourceP, + destP, + flags + ) + }, + async (zipFsD, { subPath: subPathD }) => { + return await fallback( + this.baseFs, + sourceP, + zipFsD, + subPathD + ) + } + ) + }, + async (zipFsS, { subPath: subPathS }) => { + return await this.makeCallPromise( + destP, + async () => { + return await fallback(zipFsS, subPathS, this.baseFs, destP) + }, + async (zipFsD, { subPath: subPathD }) => { + if (zipFsS !== zipFsD) { + return await fallback(zipFsS, subPathS, zipFsD, subPathD) + } else { + return await zipFsS.copyFilePromise( + subPathS, + subPathD, + flags + ) + } + } + ) + } + ) + } + + copyFileSync(sourceP, destP, flags = 0) { + const fallback = (sourceFs, sourceP, destFs, destP) => { + if ((flags & external_fs_.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign( + new Error( + `EXDEV: cross-device clone not permitted, copyfile '${sourceP}' -> ${destP}'` + ), + { + code: `EXDEV`, + } + ) + if ( + flags & external_fs_.constants.COPYFILE_EXCL && + this.existsSync(sourceP) + ) + throw Object.assign( + new Error( + `EEXIST: file already exists, copyfile '${sourceP}' -> '${destP}'` + ), + { + code: `EEXIST`, + } + ) + let content + + try { + content = sourceFs.readFileSync(sourceP) + } catch (error) { + throw Object.assign( + new Error( + `EINVAL: invalid argument, copyfile '${sourceP}' -> '${destP}'` + ), + { + code: `EINVAL`, + } + ) + } + + destFs.writeFileSync(destP, content) + } + + return this.makeCallSync( + sourceP, + () => { + return this.makeCallSync( + destP, + () => { + return this.baseFs.copyFileSync(sourceP, destP, flags) + }, + (zipFsD, { subPath: subPathD }) => { + return fallback(this.baseFs, sourceP, zipFsD, subPathD) + } + ) + }, + (zipFsS, { subPath: subPathS }) => { + return this.makeCallSync( + destP, + () => { + return fallback(zipFsS, subPathS, this.baseFs, destP) + }, + (zipFsD, { subPath: subPathD }) => { + if (zipFsS !== zipFsD) { + return fallback(zipFsS, subPathS, zipFsD, subPathD) + } else { + return zipFsS.copyFileSync(subPathS, subPathD, flags) + } + } + ) + } + ) + } + + async appendFilePromise(p, content, opts) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.appendFilePromise(p, content, opts) + }, + async (zipFs, { subPath }) => { + return await zipFs.appendFilePromise(subPath, content, opts) + } + ) + } + + appendFileSync(p, content, opts) { + return this.makeCallSync( + p, + () => { + return this.baseFs.appendFileSync(p, content, opts) + }, + (zipFs, { subPath }) => { + return zipFs.appendFileSync(subPath, content, opts) + } + ) + } + + async writeFilePromise(p, content, opts) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.writeFilePromise(p, content, opts) + }, + async (zipFs, { subPath }) => { + return await zipFs.writeFilePromise(subPath, content, opts) + } + ) + } + + writeFileSync(p, content, opts) { + return this.makeCallSync( + p, + () => { + return this.baseFs.writeFileSync(p, content, opts) + }, + (zipFs, { subPath }) => { + return zipFs.writeFileSync(subPath, content, opts) + } + ) + } + + async unlinkPromise(p) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.unlinkPromise(p) + }, + async (zipFs, { subPath }) => { + return await zipFs.unlinkPromise(subPath) + } + ) + } + + unlinkSync(p) { + return this.makeCallSync( + p, + () => { + return this.baseFs.unlinkSync(p) + }, + (zipFs, { subPath }) => { + return zipFs.unlinkSync(subPath) + } + ) + } + + async utimesPromise(p, atime, mtime) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.utimesPromise(p, atime, mtime) + }, + async (zipFs, { subPath }) => { + return await zipFs.utimesPromise(subPath, atime, mtime) + } + ) + } + + utimesSync(p, atime, mtime) { + return this.makeCallSync( + p, + () => { + return this.baseFs.utimesSync(p, atime, mtime) + }, + (zipFs, { subPath }) => { + return zipFs.utimesSync(subPath, atime, mtime) + } + ) + } + + async mkdirPromise(p, opts) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.mkdirPromise(p, opts) + }, + async (zipFs, { subPath }) => { + return await zipFs.mkdirPromise(subPath, opts) + } + ) + } + + mkdirSync(p, opts) { + return this.makeCallSync( + p, + () => { + return this.baseFs.mkdirSync(p, opts) + }, + (zipFs, { subPath }) => { + return zipFs.mkdirSync(subPath, opts) + } + ) + } + + async rmdirPromise(p, opts) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.rmdirPromise(p, opts) + }, + async (zipFs, { subPath }) => { + return await zipFs.rmdirPromise(subPath, opts) + } + ) + } + + rmdirSync(p, opts) { + return this.makeCallSync( + p, + () => { + return this.baseFs.rmdirSync(p, opts) + }, + (zipFs, { subPath }) => { + return zipFs.rmdirSync(subPath, opts) + } + ) + } + + async linkPromise(existingP, newP) { + return await this.makeCallPromise( + newP, + async () => { + return await this.baseFs.linkPromise(existingP, newP) + }, + async (zipFs, { subPath }) => { + return await zipFs.linkPromise(existingP, subPath) + } + ) + } + + linkSync(existingP, newP) { + return this.makeCallSync( + newP, + () => { + return this.baseFs.linkSync(existingP, newP) + }, + (zipFs, { subPath }) => { + return zipFs.linkSync(existingP, subPath) + } + ) + } + + async symlinkPromise(target, p, type) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.symlinkPromise(target, p, type) + }, + async (zipFs, { subPath }) => { + return await zipFs.symlinkPromise(target, subPath) + } + ) + } + + symlinkSync(target, p, type) { + return this.makeCallSync( + p, + () => { + return this.baseFs.symlinkSync(target, p, type) + }, + (zipFs, { subPath }) => { + return zipFs.symlinkSync(target, subPath) + } + ) + } + + async readFilePromise(p, encoding) { + return this.makeCallPromise( + p, + async () => { + // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) + switch (encoding) { + case `utf8`: + return await this.baseFs.readFilePromise(p, encoding) + + default: + return await this.baseFs.readFilePromise(p, encoding) + } + }, + async (zipFs, { subPath }) => { + return await zipFs.readFilePromise(subPath, encoding) + } + ) + } + + readFileSync(p, encoding) { + return this.makeCallSync( + p, + () => { + // This weird switch is required to tell TypeScript that the signatures are proper (otherwise it thinks that only the generic one is covered) + switch (encoding) { + case `utf8`: + return this.baseFs.readFileSync(p, encoding) + + default: + return this.baseFs.readFileSync(p, encoding) + } + }, + (zipFs, { subPath }) => { + return zipFs.readFileSync(subPath, encoding) + } + ) + } + + async readdirPromise(p, { withFileTypes } = {}) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.readdirPromise(p, { + withFileTypes: withFileTypes, + }) + }, + async (zipFs, { subPath }) => { + return await zipFs.readdirPromise(subPath, { + withFileTypes: withFileTypes, + }) + }, + { + requireSubpath: false, + } + ) + } + + readdirSync(p, { withFileTypes } = {}) { + return this.makeCallSync( + p, + () => { + return this.baseFs.readdirSync(p, { + withFileTypes: withFileTypes, + }) + }, + (zipFs, { subPath }) => { + return zipFs.readdirSync(subPath, { + withFileTypes: withFileTypes, + }) + }, + { + requireSubpath: false, + } + ) + } + + async readlinkPromise(p) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.readlinkPromise(p) + }, + async (zipFs, { subPath }) => { + return await zipFs.readlinkPromise(subPath) + } + ) + } + + readlinkSync(p) { + return this.makeCallSync( + p, + () => { + return this.baseFs.readlinkSync(p) + }, + (zipFs, { subPath }) => { + return zipFs.readlinkSync(subPath) + } + ) + } + + async truncatePromise(p, len) { + return await this.makeCallPromise( + p, + async () => { + return await this.baseFs.truncatePromise(p, len) + }, + async (zipFs, { subPath }) => { + return await zipFs.truncatePromise(subPath, len) + } + ) + } + + truncateSync(p, len) { + return this.makeCallSync( + p, + () => { + return this.baseFs.truncateSync(p, len) + }, + (zipFs, { subPath }) => { + return zipFs.truncateSync(subPath, len) + } + ) + } + + watch(p, a, b) { + return this.makeCallSync( + p, + () => { + return this.baseFs.watch( + p, // @ts-expect-error + a, + b + ) + }, + (zipFs, { subPath }) => { + return zipFs.watch( + subPath, // @ts-expect-error + a, + b + ) + } + ) + } + + watchFile(p, a, b) { + return this.makeCallSync( + p, + () => { + return this.baseFs.watchFile( + p, // @ts-expect-error + a, + b + ) + }, + () => { + return watchFile(this, p, a, b) + } + ) + } + + unwatchFile(p, cb) { + return this.makeCallSync( + p, + () => { + return this.baseFs.unwatchFile(p, cb) + }, + () => { + return unwatchFile(this, p, cb) + } + ) + } + + async makeCallPromise( + p, + discard, + accept, + { requireSubpath = true } = {} + ) { + if (typeof p !== `string`) return await discard() + const normalizedP = this.resolve(p) + const zipInfo = this.findZip(normalizedP) + if (!zipInfo) return await discard() + if (requireSubpath && zipInfo.subPath === `/`) + return await discard() + return await this.getZipPromise( + zipInfo.archivePath, + async (zipFs) => await accept(zipFs, zipInfo) + ) + } + + makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) return discard() + const normalizedP = this.resolve(p) + const zipInfo = this.findZip(normalizedP) + if (!zipInfo) return discard() + if (requireSubpath && zipInfo.subPath === `/`) return discard() + return this.getZipSync(zipInfo.archivePath, (zipFs) => + accept(zipFs, zipInfo) + ) + } + + findZip(p) { + if (this.filter && !this.filter.test(p)) return null + let filePath = `` + + while (true) { + const parts = FILE_PARTS_REGEX.exec(p.substr(filePath.length)) + if (!parts) return null + filePath = this.pathUtils.join(filePath, parts[0]) + + if (this.isZip.has(filePath) === false) { + if (this.notZip.has(filePath)) continue + + try { + if (!this.baseFs.lstatSync(filePath).isFile()) { + this.notZip.add(filePath) + continue + } + } catch (_a) { + return null + } + + this.isZip.add(filePath) + } + + return { + archivePath: filePath, + subPath: this.pathUtils.join( + PortablePath.root, + p.substr(filePath.length) + ), + } + } + } + + limitOpenFiles(max) { + if (this.zipInstances === null) return + const now = Date.now() + let nextExpiresAt = now + this.maxAge + let closeCount = max === null ? 0 : this.zipInstances.size - max + + for (const [ + path, + { zipFs, expiresAt, refCount }, + ] of this.zipInstances.entries()) { + if (refCount !== 0 || zipFs.hasOpenFileHandles()) { + continue + } else if (now >= expiresAt) { + zipFs.saveAndClose() + this.zipInstances.delete(path) + closeCount -= 1 + continue + } else if (max === null || closeCount <= 0) { + nextExpiresAt = expiresAt + break + } + + zipFs.saveAndClose() + this.zipInstances.delete(path) + closeCount -= 1 + } + + if ( + this.limitOpenFilesTimeout === null && + ((max === null && this.zipInstances.size > 0) || max !== null) + ) { + this.limitOpenFilesTimeout = setTimeout(() => { + this.limitOpenFilesTimeout = null + this.limitOpenFiles(null) + }, nextExpiresAt - now).unref() + } + } + + async getZipPromise(p, accept) { + const getZipOptions = async () => ({ + baseFs: this.baseFs, + libzip: this.libzip, + readOnly: this.readOnlyArchives, + stats: await this.baseFs.statPromise(p), + }) + + if (this.zipInstances) { + let cachedZipFs = this.zipInstances.get(p) + + if (!cachedZipFs) { + const zipOptions = await getZipOptions() // We need to recheck because concurrent getZipPromise calls may + // have instantiated the zip archive while we were waiting + + cachedZipFs = this.zipInstances.get(p) + + if (!cachedZipFs) { + cachedZipFs = { + zipFs: new ZipFS(p, zipOptions), + expiresAt: 0, + refCount: 0, + } + } + } // Removing then re-adding the field allows us to easily implement + // a basic LRU garbage collection strategy + + this.zipInstances.delete(p) + this.limitOpenFiles(this.maxOpenFiles - 1) + this.zipInstances.set(p, cachedZipFs) + cachedZipFs.expiresAt = Date.now() + this.maxAge + cachedZipFs.refCount += 1 + + try { + return await accept(cachedZipFs.zipFs) + } finally { + cachedZipFs.refCount -= 1 + } + } else { + const zipFs = new ZipFS(p, await getZipOptions()) + + try { + return await accept(zipFs) + } finally { + zipFs.saveAndClose() + } + } + } + + getZipSync(p, accept) { + const getZipOptions = () => ({ + baseFs: this.baseFs, + libzip: this.libzip, + readOnly: this.readOnlyArchives, + stats: this.baseFs.statSync(p), + }) + + if (this.zipInstances) { + let cachedZipFs = this.zipInstances.get(p) + + if (!cachedZipFs) { + cachedZipFs = { + zipFs: new ZipFS(p, getZipOptions()), + expiresAt: 0, + refCount: 0, + } + } // Removing then re-adding the field allows us to easily implement + // a basic LRU garbage collection strategy + + this.zipInstances.delete(p) + this.limitOpenFiles(this.maxOpenFiles - 1) + this.zipInstances.set(p, cachedZipFs) + cachedZipFs.expiresAt = Date.now() + this.maxAge + return accept(cachedZipFs.zipFs) + } else { + const zipFs = new ZipFS(p, getZipOptions()) + + try { + return accept(zipFs) + } finally { + zipFs.saveAndClose() + } + } } } - } - } - return { path: current_path, node: current }; - }, - getPath: function(node) { - var path; - while (true) { - if (FS.isRoot(node)) { - var mount = node.mount.mountpoint; - if (!path) return mount; - return mount[mount.length - 1] !== "/" - ? mount + "/" + path - : mount + path; - } - path = path ? node.name + "/" + path : node.name; - node = node.parent; - } - }, - hashName: function(parentid, name) { - var hash = 0; - for (var i = 0; i < name.length; i++) { - hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; - } - return ((parentid + hash) >>> 0) % FS.nameTable.length; - }, - hashAddNode: function(node) { - var hash = FS.hashName(node.parent.id, node.name); - node.name_next = FS.nameTable[hash]; - FS.nameTable[hash] = node; - }, - hashRemoveNode: function(node) { - var hash = FS.hashName(node.parent.id, node.name); - if (FS.nameTable[hash] === node) { - FS.nameTable[hash] = node.name_next; - } else { - var current = FS.nameTable[hash]; - while (current) { - if (current.name_next === node) { - current.name_next = node.name_next; - break; - } - current = current.name_next; - } - } - }, - lookupNode: function(parent, name) { - var errCode = FS.mayLookup(parent); - if (errCode) { - throw new FS.ErrnoError(errCode, parent); - } - var hash = FS.hashName(parent.id, name); - for (var node = FS.nameTable[hash]; node; node = node.name_next) { - var nodeName = node.name; - if (node.parent.id === parent.id && nodeName === name) { - return node; - } - } - return FS.lookup(parent, name); - }, - createNode: function(parent, name, mode, rdev) { - var node = new FS.FSNode(parent, name, mode, rdev); - FS.hashAddNode(node); - return node; - }, - destroyNode: function(node) { - FS.hashRemoveNode(node); - }, - isRoot: function(node) { - return node === node.parent; - }, - isMountpoint: function(node) { - return !!node.mounted; - }, - isFile: function(mode) { - return (mode & 61440) === 32768; - }, - isDir: function(mode) { - return (mode & 61440) === 16384; - }, - isLink: function(mode) { - return (mode & 61440) === 40960; - }, - isChrdev: function(mode) { - return (mode & 61440) === 8192; - }, - isBlkdev: function(mode) { - return (mode & 61440) === 24576; - }, - isFIFO: function(mode) { - return (mode & 61440) === 4096; - }, - isSocket: function(mode) { - return (mode & 49152) === 49152; - }, - flagModes: { - r: 0, - rs: 1052672, - "r+": 2, - w: 577, - wx: 705, - xw: 705, - "w+": 578, - "wx+": 706, - "xw+": 706, - a: 1089, - ax: 1217, - xa: 1217, - "a+": 1090, - "ax+": 1218, - "xa+": 1218 - }, - modeStringToFlags: function(str) { - var flags = FS.flagModes[str]; - if (typeof flags === "undefined") { - throw new Error("Unknown file open mode: " + str); - } - return flags; - }, - flagsToPermissionString: function(flag) { - var perms = ["r", "w", "rw"][flag & 3]; - if (flag & 512) { - perms += "w"; - } - return perms; - }, - nodePermissions: function(node, perms) { - if (FS.ignorePermissions) { - return 0; - } - if (perms.indexOf("r") !== -1 && !(node.mode & 292)) { - return 2; - } else if (perms.indexOf("w") !== -1 && !(node.mode & 146)) { - return 2; - } else if (perms.indexOf("x") !== -1 && !(node.mode & 73)) { - return 2; - } - return 0; - }, - mayLookup: function(dir) { - var errCode = FS.nodePermissions(dir, "x"); - if (errCode) return errCode; - if (!dir.node_ops.lookup) return 2; - return 0; - }, - mayCreate: function(dir, name) { - try { - var node = FS.lookupNode(dir, name); - return 20; - } catch (e) {} - return FS.nodePermissions(dir, "wx"); - }, - mayDelete: function(dir, name, isdir) { - var node; - try { - node = FS.lookupNode(dir, name); - } catch (e) { - return e.errno; - } - var errCode = FS.nodePermissions(dir, "wx"); - if (errCode) { - return errCode; - } - if (isdir) { - if (!FS.isDir(node.mode)) { - return 54; - } - if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { - return 10; - } - } else { - if (FS.isDir(node.mode)) { - return 31; - } - } - return 0; - }, - mayOpen: function(node, flags) { - if (!node) { - return 44; - } - if (FS.isLink(node.mode)) { - return 32; - } else if (FS.isDir(node.mode)) { - if (FS.flagsToPermissionString(flags) !== "r" || flags & 512) { - return 31; - } - } - return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); - }, - MAX_OPEN_FDS: 4096, - nextfd: function(fd_start, fd_end) { - fd_start = fd_start || 0; - fd_end = fd_end || FS.MAX_OPEN_FDS; - for (var fd = fd_start; fd <= fd_end; fd++) { - if (!FS.streams[fd]) { - return fd; - } - } - throw new FS.ErrnoError(33); - }, - getStream: function(fd) { - return FS.streams[fd]; - }, - createStream: function(stream, fd_start, fd_end) { - if (!FS.FSStream) { - FS.FSStream = function() {}; - FS.FSStream.prototype = { - object: { - get: function() { - return this.node; + // CONCATENATED MODULE: ../yarnpkg-libzip/sources/makeInterface.ts + const number64 = [`number`, `number`] + var Errors + ;(function (Errors) { + Errors[(Errors['ZIP_ER_OK'] = 0)] = 'ZIP_ER_OK' + Errors[(Errors['ZIP_ER_MULTIDISK'] = 1)] = 'ZIP_ER_MULTIDISK' + Errors[(Errors['ZIP_ER_RENAME'] = 2)] = 'ZIP_ER_RENAME' + Errors[(Errors['ZIP_ER_CLOSE'] = 3)] = 'ZIP_ER_CLOSE' + Errors[(Errors['ZIP_ER_SEEK'] = 4)] = 'ZIP_ER_SEEK' + Errors[(Errors['ZIP_ER_READ'] = 5)] = 'ZIP_ER_READ' + Errors[(Errors['ZIP_ER_WRITE'] = 6)] = 'ZIP_ER_WRITE' + Errors[(Errors['ZIP_ER_CRC'] = 7)] = 'ZIP_ER_CRC' + Errors[(Errors['ZIP_ER_ZIPCLOSED'] = 8)] = 'ZIP_ER_ZIPCLOSED' + Errors[(Errors['ZIP_ER_NOENT'] = 9)] = 'ZIP_ER_NOENT' + Errors[(Errors['ZIP_ER_EXISTS'] = 10)] = 'ZIP_ER_EXISTS' + Errors[(Errors['ZIP_ER_OPEN'] = 11)] = 'ZIP_ER_OPEN' + Errors[(Errors['ZIP_ER_TMPOPEN'] = 12)] = 'ZIP_ER_TMPOPEN' + Errors[(Errors['ZIP_ER_ZLIB'] = 13)] = 'ZIP_ER_ZLIB' + Errors[(Errors['ZIP_ER_MEMORY'] = 14)] = 'ZIP_ER_MEMORY' + Errors[(Errors['ZIP_ER_CHANGED'] = 15)] = 'ZIP_ER_CHANGED' + Errors[(Errors['ZIP_ER_COMPNOTSUPP'] = 16)] = 'ZIP_ER_COMPNOTSUPP' + Errors[(Errors['ZIP_ER_EOF'] = 17)] = 'ZIP_ER_EOF' + Errors[(Errors['ZIP_ER_INVAL'] = 18)] = 'ZIP_ER_INVAL' + Errors[(Errors['ZIP_ER_NOZIP'] = 19)] = 'ZIP_ER_NOZIP' + Errors[(Errors['ZIP_ER_INTERNAL'] = 20)] = 'ZIP_ER_INTERNAL' + Errors[(Errors['ZIP_ER_INCONS'] = 21)] = 'ZIP_ER_INCONS' + Errors[(Errors['ZIP_ER_REMOVE'] = 22)] = 'ZIP_ER_REMOVE' + Errors[(Errors['ZIP_ER_DELETED'] = 23)] = 'ZIP_ER_DELETED' + Errors[(Errors['ZIP_ER_ENCRNOTSUPP'] = 24)] = 'ZIP_ER_ENCRNOTSUPP' + Errors[(Errors['ZIP_ER_RDONLY'] = 25)] = 'ZIP_ER_RDONLY' + Errors[(Errors['ZIP_ER_NOPASSWD'] = 26)] = 'ZIP_ER_NOPASSWD' + Errors[(Errors['ZIP_ER_WRONGPASSWD'] = 27)] = 'ZIP_ER_WRONGPASSWD' + Errors[(Errors['ZIP_ER_OPNOTSUPP'] = 28)] = 'ZIP_ER_OPNOTSUPP' + Errors[(Errors['ZIP_ER_INUSE'] = 29)] = 'ZIP_ER_INUSE' + Errors[(Errors['ZIP_ER_TELL'] = 30)] = 'ZIP_ER_TELL' + Errors[(Errors['ZIP_ER_COMPRESSED_DATA'] = 31)] = + 'ZIP_ER_COMPRESSED_DATA' + })(Errors || (Errors = {})) + + const makeInterface = (libzip) => ({ + // Those are getters because they can change after memory growth + get HEAP8() { + return libzip.HEAP8 + }, + + get HEAPU8() { + return libzip.HEAPU8 + }, + + errors: Errors, + SEEK_SET: 0, + SEEK_CUR: 1, + SEEK_END: 2, + ZIP_CHECKCONS: 4, + ZIP_CREATE: 1, + ZIP_EXCL: 2, + ZIP_TRUNCATE: 8, + ZIP_RDONLY: 16, + ZIP_FL_OVERWRITE: 8192, + ZIP_FL_COMPRESSED: 4, + ZIP_OPSYS_DOS: 0x00, + ZIP_OPSYS_AMIGA: 0x01, + ZIP_OPSYS_OPENVMS: 0x02, + ZIP_OPSYS_UNIX: 0x03, + ZIP_OPSYS_VM_CMS: 0x04, + ZIP_OPSYS_ATARI_ST: 0x05, + ZIP_OPSYS_OS_2: 0x06, + ZIP_OPSYS_MACINTOSH: 0x07, + ZIP_OPSYS_Z_SYSTEM: 0x08, + ZIP_OPSYS_CPM: 0x09, + ZIP_OPSYS_WINDOWS_NTFS: 0x0a, + ZIP_OPSYS_MVS: 0x0b, + ZIP_OPSYS_VSE: 0x0c, + ZIP_OPSYS_ACORN_RISC: 0x0d, + ZIP_OPSYS_VFAT: 0x0e, + ZIP_OPSYS_ALTERNATE_MVS: 0x0f, + ZIP_OPSYS_BEOS: 0x10, + ZIP_OPSYS_TANDEM: 0x11, + ZIP_OPSYS_OS_400: 0x12, + ZIP_OPSYS_OS_X: 0x13, + ZIP_CM_DEFAULT: -1, + ZIP_CM_STORE: 0, + ZIP_CM_DEFLATE: 8, + uint08S: libzip._malloc(1), + uint16S: libzip._malloc(2), + uint32S: libzip._malloc(4), + uint64S: libzip._malloc(8), + malloc: libzip._malloc, + free: libzip._free, + getValue: libzip.getValue, + open: libzip.cwrap(`zip_open`, `number`, [ + `string`, + `number`, + `number`, + ]), + openFromSource: libzip.cwrap(`zip_open_from_source`, `number`, [ + `number`, + `number`, + `number`, + ]), + close: libzip.cwrap(`zip_close`, `number`, [`number`]), + discard: libzip.cwrap(`zip_discard`, null, [`number`]), + getError: libzip.cwrap(`zip_get_error`, `number`, [`number`]), + getName: libzip.cwrap(`zip_get_name`, `string`, [ + `number`, + `number`, + `number`, + ]), + getNumEntries: libzip.cwrap(`zip_get_num_entries`, `number`, [ + `number`, + `number`, + ]), + delete: libzip.cwrap(`zip_delete`, `number`, [`number`, `number`]), + stat: libzip.cwrap(`zip_stat`, `number`, [ + `number`, + `string`, + `number`, + `number`, + ]), + statIndex: libzip.cwrap(`zip_stat_index`, `number`, [ + `number`, + ...number64, + `number`, + `number`, + ]), + fopen: libzip.cwrap(`zip_fopen`, `number`, [ + `number`, + `string`, + `number`, + ]), + fopenIndex: libzip.cwrap(`zip_fopen_index`, `number`, [ + `number`, + ...number64, + `number`, + ]), + fread: libzip.cwrap(`zip_fread`, `number`, [ + `number`, + `number`, + `number`, + `number`, + ]), + fclose: libzip.cwrap(`zip_fclose`, `number`, [`number`]), + dir: { + add: libzip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]), + }, + file: { + add: libzip.cwrap(`zip_file_add`, `number`, [ + `number`, + `string`, + `number`, + `number`, + ]), + getError: libzip.cwrap(`zip_file_get_error`, `number`, [`number`]), + getExternalAttributes: libzip.cwrap( + `zip_file_get_external_attributes`, + `number`, + [`number`, ...number64, `number`, `number`, `number`] + ), + setExternalAttributes: libzip.cwrap( + `zip_file_set_external_attributes`, + `number`, + [`number`, ...number64, `number`, `number`, `number`] + ), + setMtime: libzip.cwrap(`zip_file_set_mtime`, `number`, [ + `number`, + ...number64, + `number`, + `number`, + ]), + setCompression: libzip.cwrap(`zip_set_file_compression`, `number`, [ + `number`, + ...number64, + `number`, + `number`, + ]), + }, + ext: { + countSymlinks: libzip.cwrap(`zip_ext_count_symlinks`, `number`, [ + `number`, + ]), + }, + error: { + initWithCode: libzip.cwrap(`zip_error_init_with_code`, null, [ + `number`, + `number`, + ]), + strerror: libzip.cwrap(`zip_error_strerror`, `string`, [`number`]), + }, + name: { + locate: libzip.cwrap(`zip_name_locate`, `number`, [ + `number`, + `string`, + `number`, + ]), }, - set: function(val) { - this.node = val; + source: { + fromUnattachedBuffer: libzip.cwrap( + `zip_source_buffer_create`, + `number`, + [`number`, `number`, `number`, `number`] + ), + fromBuffer: libzip.cwrap(`zip_source_buffer`, `number`, [ + `number`, + `number`, + ...number64, + `number`, + ]), + free: libzip.cwrap(`zip_source_free`, null, [`number`]), + keep: libzip.cwrap(`zip_source_keep`, null, [`number`]), + open: libzip.cwrap(`zip_source_open`, `number`, [`number`]), + close: libzip.cwrap(`zip_source_close`, `number`, [`number`]), + seek: libzip.cwrap(`zip_source_seek`, `number`, [ + `number`, + ...number64, + `number`, + ]), + tell: libzip.cwrap(`zip_source_tell`, `number`, [`number`]), + read: libzip.cwrap(`zip_source_read`, `number`, [ + `number`, + `number`, + `number`, + ]), + error: libzip.cwrap(`zip_source_error`, `number`, [`number`]), + setMtime: libzip.cwrap(`zip_source_set_mtime`, `number`, [ + `number`, + `number`, + ]), + }, + struct: { + stat: libzip.cwrap(`zipstruct_stat`, `number`, []), + statS: libzip.cwrap(`zipstruct_statS`, `number`, []), + statName: libzip.cwrap(`zipstruct_stat_name`, `string`, [`number`]), + statIndex: libzip.cwrap(`zipstruct_stat_index`, `number`, [ + `number`, + ]), + statSize: libzip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), + statCompSize: libzip.cwrap(`zipstruct_stat_comp_size`, `number`, [ + `number`, + ]), + statCompMethod: libzip.cwrap( + `zipstruct_stat_comp_method`, + `number`, + [`number`] + ), + statMtime: libzip.cwrap(`zipstruct_stat_mtime`, `number`, [ + `number`, + ]), + error: libzip.cwrap(`zipstruct_error`, `number`, []), + errorS: libzip.cwrap(`zipstruct_errorS`, `number`, []), + errorCodeZip: libzip.cwrap(`zipstruct_error_code_zip`, `number`, [ + `number`, + ]), + }, + }) + // CONCATENATED MODULE: ../yarnpkg-libzip/sources/sync.ts + + let mod = null + function getLibzipSync() { + if (mod === null) mod = makeInterface(__webpack_require__(368)) + return mod + } + async function getLibzipPromise() { + return getLibzipSync() + } + // EXTERNAL MODULE: external "module" + var external_module_ = __webpack_require__(282) + var external_module_default = + /*#__PURE__*/ __webpack_require__.n(external_module_) + + // CONCATENATED MODULE: external "string_decoder" + const external_string_decoder_namespaceObject = require('string_decoder') + var external_string_decoder_default = + /*#__PURE__*/ __webpack_require__.n( + external_string_decoder_namespaceObject + ) + + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/index.ts + + function getTempName(prefix) { + const tmpdir = npath.toPortablePath(external_os_default().tmpdir()) + const hash = Math.ceil(Math.random() * 0x100000000) + .toString(16) + .padStart(8, `0`) + return ppath.join(tmpdir, `${prefix}${hash}`) + } + + function patchFs(patchedFs, fakeFs) { + const SYNC_IMPLEMENTATIONS = new Set([ + `accessSync`, + `appendFileSync`, + `createReadStream`, + `chmodSync`, + `chownSync`, + `closeSync`, + `copyFileSync`, + `linkSync`, + `lstatSync`, + `lutimesSync`, + `mkdirSync`, + `openSync`, + `opendirSync`, + `readSync`, + `readlinkSync`, + `readFileSync`, + `readdirSync`, + `readlinkSync`, + `realpathSync`, + `renameSync`, + `rmdirSync`, + `statSync`, + `symlinkSync`, + `truncateSync`, + `unlinkSync`, + `unwatchFile`, + `utimesSync`, + `watch`, + `watchFile`, + `writeFileSync`, + `writeSync`, + ]) + const ASYNC_IMPLEMENTATIONS = new Set([ + `accessPromise`, + `appendFilePromise`, + `chmodPromise`, + `chownPromise`, + `closePromise`, + `copyFilePromise`, + `linkPromise`, + `lstatPromise`, + `lutimesPromise`, + `mkdirPromise`, + `openPromise`, + `opendirPromise`, + `readdirPromise`, + `realpathPromise`, + `readFilePromise`, + `readdirPromise`, + `readlinkPromise`, + `renamePromise`, + `rmdirPromise`, + `statPromise`, + `symlinkPromise`, + `truncatePromise`, + `unlinkPromise`, + `utimesPromise`, + `writeFilePromise`, + `writeSync`, + ]) + const FILEHANDLE_IMPLEMENTATIONS = new Set([ + `appendFilePromise`, + `chmodPromise`, + `chownPromise`, + `closePromise`, + `readPromise`, + `readFilePromise`, + `statPromise`, + `truncatePromise`, + `utimesPromise`, + `writePromise`, + `writeFilePromise`, + ]) + + const setupFn = (target, name, replacement) => { + const orig = target[name] + target[name] = replacement // Preserve any util.promisify implementations + + if ( + typeof (orig === null || orig === void 0 + ? void 0 + : orig[external_util_namespaceObject.promisify.custom]) !== + `undefined` + ) { + replacement[external_util_namespaceObject.promisify.custom] = + orig[external_util_namespaceObject.promisify.custom] + } } - }, - isRead: { - get: function() { - return (this.flags & 2097155) !== 1; + /** Callback implementations */ + + { + setupFn(patchedFs, `exists`, (p, ...args) => { + const hasCallback = typeof args[args.length - 1] === `function` + const callback = hasCallback ? args.pop() : () => {} + process.nextTick(() => { + fakeFs.existsPromise(p).then( + (exists) => { + callback(exists) + }, + () => { + callback(false) + } + ) + }) + }) + setupFn(patchedFs, `read`, (p, buffer, ...args) => { + const hasCallback = typeof args[args.length - 1] === `function` + const callback = hasCallback ? args.pop() : () => {} + process.nextTick(() => { + fakeFs.readPromise(p, buffer, ...args).then( + (bytesRead) => { + callback(null, bytesRead, buffer) + }, + (error) => { + callback(error) + } + ) + }) + }) + + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``) + if (typeof patchedFs[origName] === `undefined`) continue + const fakeImpl = fakeFs[fnName] + if (typeof fakeImpl === `undefined`) continue + + const wrapper = (...args) => { + const hasCallback = typeof args[args.length - 1] === `function` + const callback = hasCallback ? args.pop() : () => {} + process.nextTick(() => { + fakeImpl.apply(fakeFs, args).then( + (result) => { + callback(null, result) + }, + (error) => { + callback(error) + } + ) + }) + } + + setupFn(patchedFs, origName, wrapper) + } + + patchedFs.realpath.native = patchedFs.realpath } - }, - isWrite: { - get: function() { - return (this.flags & 2097155) !== 0; + /** Sync implementations */ + + { + setupFn(patchedFs, `existsSync`, (p) => { + try { + return fakeFs.existsSync(p) + } catch (error) { + return false + } + }) + + for (const fnName of SYNC_IMPLEMENTATIONS) { + const origName = fnName + if (typeof patchedFs[origName] === `undefined`) continue + const fakeImpl = fakeFs[fnName] + if (typeof fakeImpl === `undefined`) continue + setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)) + } + + patchedFs.realpathSync.native = patchedFs.realpathSync } - }, - isAppend: { - get: function() { - return this.flags & 1024; + /** Promise implementations */ + + { + // `fs.promises` is a getter that returns a reference to require(`fs/promises`), + // so we can just patch `fs.promises` and both will be updated + const origEmitWarning = process.emitWarning + + process.emitWarning = () => {} + + let patchedFsPromises + + try { + patchedFsPromises = patchedFs.promises + } finally { + process.emitWarning = origEmitWarning + } + + if (typeof patchedFsPromises !== `undefined`) { + // `fs.promises.exists` doesn't exist + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``) + if (typeof patchedFsPromises[origName] === `undefined`) continue + const fakeImpl = fakeFs[fnName] + if (typeof fakeImpl === `undefined`) continue // Open is a bit particular with fs.promises: it returns a file handle + // instance instead of the traditional file descriptor number + + if (fnName === `open`) continue + setupFn(patchedFsPromises, origName, fakeImpl.bind(fakeFs)) + } + + class FileHandle { + constructor(fd) { + this.fd = fd + } + } + + for (const fnName of FILEHANDLE_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``) + const fakeImpl = fakeFs[fnName] + if (typeof fakeImpl === `undefined`) continue + setupFn(FileHandle.prototype, origName, function (...args) { + return fakeImpl.call(fakeFs, this.fd, ...args) + }) + } + + setupFn(patchedFsPromises, `open`, async (...args) => { + // @ts-expect-error + const fd = await fakeFs.openPromise(...args) + return new FileHandle(fd) + }) // `fs.promises.realpath` doesn't have a `native` property + } + } + /** util.promisify implementations */ + + { + // Override the promisified version of `fs.read` to return an object as per + // https://github.com/nodejs/node/blob/dc79f3f37caf6f25b8efee4623bec31e2c20f595/lib/fs.js#L559-L560 + // and + // https://github.com/nodejs/node/blob/ba684805b6c0eded76e5cd89ee00328ac7a59365/lib/internal/util.js#L293 + // @ts-expect-error + patchedFs.read[external_util_namespaceObject.promisify.custom] = + async (p, buffer, ...args) => { + const res = fakeFs.readPromise(p, buffer, ...args) + return { + bytesRead: await res, + buffer, + } + } } } - }; - } - var newStream = new FS.FSStream(); - for (var p in stream) { - newStream[p] = stream[p]; - } - stream = newStream; - var fd = FS.nextfd(fd_start, fd_end); - stream.fd = fd; - FS.streams[fd] = stream; - return stream; - }, - closeStream: function(fd) { - FS.streams[fd] = null; - }, - chrdev_stream_ops: { - open: function(stream) { - var device = FS.getDevice(stream.node.rdev); - stream.stream_ops = device.stream_ops; - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - }, - llseek: function() { - throw new FS.ErrnoError(70); - } - }, - major: function(dev) { - return dev >> 8; - }, - minor: function(dev) { - return dev & 255; - }, - makedev: function(ma, mi) { - return (ma << 8) | mi; - }, - registerDevice: function(dev, ops) { - FS.devices[dev] = { stream_ops: ops }; - }, - getDevice: function(dev) { - return FS.devices[dev]; - }, - getMounts: function(mount) { - var mounts = []; - var check = [mount]; - while (check.length) { - var m = check.pop(); - mounts.push(m); - check.push.apply(check, m.mounts); - } - return mounts; - }, - syncfs: function(populate, callback) { - if (typeof populate === "function") { - callback = populate; - populate = false; - } - FS.syncFSRequests++; - if (FS.syncFSRequests > 1) { - err( - "warning: " + - FS.syncFSRequests + - " FS.syncfs operations in flight at once, probably just doing extra work" - ); - } - var mounts = FS.getMounts(FS.root.mount); - var completed = 0; - function doCallback(errCode) { - FS.syncFSRequests--; - return callback(errCode); - } - function done(errCode) { - if (errCode) { - if (!done.errored) { - done.errored = true; - return doCallback(errCode); + function extendFs(realFs, fakeFs) { + const patchedFs = Object.create(realFs) + patchFs(patchedFs, fakeFs) + return patchedFs } - return; - } - if (++completed >= mounts.length) { - doCallback(null); - } - } - mounts.forEach(function(mount) { - if (!mount.type.syncfs) { - return done(null); - } - mount.type.syncfs(mount, populate, done); - }); - }, - mount: function(type, opts, mountpoint) { - var root = mountpoint === "/"; - var pseudo = !mountpoint; - var node; - if (root && FS.root) { - throw new FS.ErrnoError(10); - } else if (!root && !pseudo) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - mountpoint = lookup.path; - node = lookup.node; - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - if (!FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - } - var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] }; - var mountRoot = type.mount(mount); - mountRoot.mount = mount; - mount.root = mountRoot; - if (root) { - FS.root = mountRoot; - } else if (node) { - node.mounted = mount; - if (node.mount) { - node.mount.mounts.push(mount); - } - } - return mountRoot; - }, - unmount: function(mountpoint) { - var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); - if (!FS.isMountpoint(lookup.node)) { - throw new FS.ErrnoError(28); - } - var node = lookup.node; - var mount = node.mounted; - var mounts = FS.getMounts(mount); - Object.keys(FS.nameTable).forEach(function(hash) { - var current = FS.nameTable[hash]; - while (current) { - var next = current.name_next; - if (mounts.indexOf(current.mount) !== -1) { - FS.destroyNode(current); + const tmpdirs = new Set() + let cleanExitRegistered = false + + function registerCleanExit() { + if (cleanExitRegistered) return + cleanExitRegistered = true + process.once(`exit`, () => { + xfs.rmtempSync() + }) } - current = next; - } - }); - node.mounted = null; - var idx = node.mount.mounts.indexOf(mount); - node.mount.mounts.splice(idx, 1); - }, - lookup: function(parent, name) { - return parent.node_ops.lookup(parent, name); - }, - mknod: function(path, mode, dev) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - if (!name || name === "." || name === "..") { - throw new FS.ErrnoError(28); - } - var errCode = FS.mayCreate(parent, name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.mknod) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.mknod(parent, name, mode, dev); - }, - create: function(path, mode) { - mode = mode !== undefined ? mode : 438; - mode &= 4095; - mode |= 32768; - return FS.mknod(path, mode, 0); - }, - mkdir: function(path, mode) { - mode = mode !== undefined ? mode : 511; - mode &= 511 | 512; - mode |= 16384; - return FS.mknod(path, mode, 0); - }, - mkdirTree: function(path, mode) { - var dirs = path.split("/"); - var d = ""; - for (var i = 0; i < dirs.length; ++i) { - if (!dirs[i]) continue; - d += "/" + dirs[i]; - try { - FS.mkdir(d, mode); - } catch (e) { - if (e.errno != 20) throw e; - } - } - }, - mkdev: function(path, mode, dev) { - if (typeof dev === "undefined") { - dev = mode; - mode = 438; - } - mode |= 8192; - return FS.mknod(path, mode, dev); - }, - symlink: function(oldpath, newpath) { - if (!PATH_FS.resolve(oldpath)) { - throw new FS.ErrnoError(44); - } - var lookup = FS.lookupPath(newpath, { parent: true }); - var parent = lookup.node; - if (!parent) { - throw new FS.ErrnoError(44); - } - var newname = PATH.basename(newpath); - var errCode = FS.mayCreate(parent, newname); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.symlink) { - throw new FS.ErrnoError(63); - } - return parent.node_ops.symlink(parent, newname, oldpath); - }, - rename: function(old_path, new_path) { - var old_dirname = PATH.dirname(old_path); - var new_dirname = PATH.dirname(new_path); - var old_name = PATH.basename(old_path); - var new_name = PATH.basename(new_path); - var lookup, old_dir, new_dir; - lookup = FS.lookupPath(old_path, { parent: true }); - old_dir = lookup.node; - lookup = FS.lookupPath(new_path, { parent: true }); - new_dir = lookup.node; - if (!old_dir || !new_dir) throw new FS.ErrnoError(44); - if (old_dir.mount !== new_dir.mount) { - throw new FS.ErrnoError(75); - } - var old_node = FS.lookupNode(old_dir, old_name); - var relative = PATH_FS.relative(old_path, new_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(28); - } - relative = PATH_FS.relative(new_path, old_dirname); - if (relative.charAt(0) !== ".") { - throw new FS.ErrnoError(55); - } - var new_node; - try { - new_node = FS.lookupNode(new_dir, new_name); - } catch (e) {} - if (old_node === new_node) { - return; - } - var isdir = FS.isDir(old_node.mode); - var errCode = FS.mayDelete(old_dir, old_name, isdir); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - errCode = new_node - ? FS.mayDelete(new_dir, new_name, isdir) - : FS.mayCreate(new_dir, new_name); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!old_dir.node_ops.rename) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { - throw new FS.ErrnoError(10); - } - if (new_dir !== old_dir) { - errCode = FS.nodePermissions(old_dir, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - try { - if (FS.trackingDelegate["willMovePath"]) { - FS.trackingDelegate["willMovePath"](old_path, new_path); - } - } catch (e) { - err( - "FS.trackingDelegate['willMovePath']('" + - old_path + - "', '" + - new_path + - "') threw an exception: " + - e.message - ); - } - FS.hashRemoveNode(old_node); - try { - old_dir.node_ops.rename(old_node, new_dir, new_name); - } catch (e) { - throw e; - } finally { - FS.hashAddNode(old_node); - } - try { - if (FS.trackingDelegate["onMovePath"]) - FS.trackingDelegate["onMovePath"](old_path, new_path); - } catch (e) { - err( - "FS.trackingDelegate['onMovePath']('" + - old_path + - "', '" + - new_path + - "') threw an exception: " + - e.message - ); - } - }, - rmdir: function(path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, true); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.rmdir) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - try { - if (FS.trackingDelegate["willDeletePath"]) { - FS.trackingDelegate["willDeletePath"](path); - } - } catch (e) { - err( - "FS.trackingDelegate['willDeletePath']('" + - path + - "') threw an exception: " + - e.message - ); - } - parent.node_ops.rmdir(parent, name); - FS.destroyNode(node); - try { - if (FS.trackingDelegate["onDeletePath"]) - FS.trackingDelegate["onDeletePath"](path); - } catch (e) { - err( - "FS.trackingDelegate['onDeletePath']('" + - path + - "') threw an exception: " + - e.message - ); - } - }, - readdir: function(path) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - if (!node.node_ops.readdir) { - throw new FS.ErrnoError(54); - } - return node.node_ops.readdir(node); - }, - unlink: function(path) { - var lookup = FS.lookupPath(path, { parent: true }); - var parent = lookup.node; - var name = PATH.basename(path); - var node = FS.lookupNode(parent, name); - var errCode = FS.mayDelete(parent, name, false); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - if (!parent.node_ops.unlink) { - throw new FS.ErrnoError(63); - } - if (FS.isMountpoint(node)) { - throw new FS.ErrnoError(10); - } - try { - if (FS.trackingDelegate["willDeletePath"]) { - FS.trackingDelegate["willDeletePath"](path); - } - } catch (e) { - err( - "FS.trackingDelegate['willDeletePath']('" + - path + - "') threw an exception: " + - e.message - ); - } - parent.node_ops.unlink(parent, name); - FS.destroyNode(node); - try { - if (FS.trackingDelegate["onDeletePath"]) - FS.trackingDelegate["onDeletePath"](path); - } catch (e) { - err( - "FS.trackingDelegate['onDeletePath']('" + - path + - "') threw an exception: " + - e.message - ); - } - }, - readlink: function(path) { - var lookup = FS.lookupPath(path); - var link = lookup.node; - if (!link) { - throw new FS.ErrnoError(44); - } - if (!link.node_ops.readlink) { - throw new FS.ErrnoError(28); - } - return PATH_FS.resolve( - FS.getPath(link.parent), - link.node_ops.readlink(link) - ); - }, - stat: function(path, dontFollow) { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - var node = lookup.node; - if (!node) { - throw new FS.ErrnoError(44); - } - if (!node.node_ops.getattr) { - throw new FS.ErrnoError(63); - } - return node.node_ops.getattr(node); - }, - lstat: function(path) { - return FS.stat(path, true); - }, - chmod: function(path, mode, dontFollow) { - var node; - if (typeof path === "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { - mode: (mode & 4095) | (node.mode & ~4095), - timestamp: Date.now() - }); - }, - lchmod: function(path, mode) { - FS.chmod(path, mode, true); - }, - fchmod: function(fd, mode) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chmod(stream.node, mode); - }, - chown: function(path, uid, gid, dontFollow) { - var node; - if (typeof path === "string") { - var lookup = FS.lookupPath(path, { follow: !dontFollow }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - node.node_ops.setattr(node, { timestamp: Date.now() }); - }, - lchown: function(path, uid, gid) { - FS.chown(path, uid, gid, true); - }, - fchown: function(fd, uid, gid) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - FS.chown(stream.node, uid, gid); - }, - truncate: function(path, len) { - if (len < 0) { - throw new FS.ErrnoError(28); - } - var node; - if (typeof path === "string") { - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - } else { - node = path; - } - if (!node.node_ops.setattr) { - throw new FS.ErrnoError(63); - } - if (FS.isDir(node.mode)) { - throw new FS.ErrnoError(31); - } - if (!FS.isFile(node.mode)) { - throw new FS.ErrnoError(28); - } - var errCode = FS.nodePermissions(node, "w"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); - }, - ftruncate: function(fd, len) { - var stream = FS.getStream(fd); - if (!stream) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(28); - } - FS.truncate(stream.node, len); - }, - utime: function(path, atime, mtime) { - var lookup = FS.lookupPath(path, { follow: true }); - var node = lookup.node; - node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); - }, - open: function(path, flags, mode, fd_start, fd_end) { - if (path === "") { - throw new FS.ErrnoError(44); - } - flags = typeof flags === "string" ? FS.modeStringToFlags(flags) : flags; - mode = typeof mode === "undefined" ? 438 : mode; - if (flags & 64) { - mode = (mode & 4095) | 32768; - } else { - mode = 0; - } - var node; - if (typeof path === "object") { - node = path; - } else { - path = PATH.normalize(path); - try { - var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); - node = lookup.node; - } catch (e) {} - } - var created = false; - if (flags & 64) { - if (node) { - if (flags & 128) { - throw new FS.ErrnoError(20); + + const xfs = Object.assign(new NodeFS(), { + detachTemp(p) { + tmpdirs.delete(p) + }, + + mktempSync(cb) { + registerCleanExit() + + while (true) { + const p = getTempName(`xfs-`) + + try { + this.mkdirSync(p) + } catch (error) { + if (error.code === `EEXIST`) { + continue + } else { + throw error + } + } + + const realP = this.realpathSync(p) + tmpdirs.add(realP) + + if (typeof cb !== `undefined`) { + try { + return cb(realP) + } finally { + if (tmpdirs.has(realP)) { + tmpdirs.delete(realP) + + try { + this.removeSync(realP) + } catch (_a) { + // Too bad if there's an error + } + } + } + } else { + return p + } + } + }, + + async mktempPromise(cb) { + registerCleanExit() + + while (true) { + const p = getTempName(`xfs-`) + + try { + await this.mkdirPromise(p) + } catch (error) { + if (error.code === `EEXIST`) { + continue + } else { + throw error + } + } + + const realP = await this.realpathPromise(p) + tmpdirs.add(realP) + + if (typeof cb !== `undefined`) { + try { + return await cb(realP) + } finally { + if (tmpdirs.has(realP)) { + tmpdirs.delete(realP) + + try { + await this.removePromise(realP) + } catch (_a) { + // Too bad if there's an error + } + } + } + } else { + return realP + } + } + }, + + async rmtempPromise() { + await Promise.all( + Array.from(tmpdirs.values()).map(async (p) => { + try { + await xfs.removePromise(p, { + maxRetries: 0, + }) + tmpdirs.delete(p) + } catch (_a) { + // Too bad if there's an error + } + }) + ) + }, + + rmtempSync() { + for (const p of tmpdirs) { + try { + xfs.removeSync(p) + tmpdirs.delete(p) + } catch (_a) { + // Too bad if there's an error + } + } + }, + }) + // CONCATENATED MODULE: ../yarnpkg-fslib/sources/PosixFS.ts + + class PosixFS extends ProxiedFS { + constructor(baseFs) { + super(npath) + this.baseFs = baseFs + } + + mapFromBase(path) { + return npath.fromPortablePath(path) + } + + mapToBase(path) { + return npath.toPortablePath(path) + } } - } else { - node = FS.mknod(path, mode, 0); - created = true; - } - } - if (!node) { - throw new FS.ErrnoError(44); - } - if (FS.isChrdev(node.mode)) { - flags &= ~512; - } - if (flags & 65536 && !FS.isDir(node.mode)) { - throw new FS.ErrnoError(54); - } - if (!created) { - var errCode = FS.mayOpen(node, flags); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - } - if (flags & 512) { - FS.truncate(node, 0); - } - flags &= ~(128 | 512 | 131072); - var stream = FS.createStream( - { - node: node, - path: FS.getPath(node), - flags: flags, - seekable: true, - position: 0, - stream_ops: node.stream_ops, - ungotten: [], - error: false - }, - fd_start, - fd_end - ); - if (stream.stream_ops.open) { - stream.stream_ops.open(stream); - } - if (Module["logReadFiles"] && !(flags & 1)) { - if (!FS.readFiles) FS.readFiles = {}; - if (!(path in FS.readFiles)) { - FS.readFiles[path] = 1; - err("FS.trackingDelegate error on read file: " + path); - } - } - try { - if (FS.trackingDelegate["onOpenFile"]) { - var trackingFlags = 0; - if ((flags & 2097155) !== 1) { - trackingFlags |= FS.tracking.openFlags.READ; + // CONCATENATED MODULE: external "url" + const external_url_namespaceObject = require('url') + // CONCATENATED MODULE: ./sources/loader/internalTools.ts + + var ErrorCode + ;(function (ErrorCode) { + ErrorCode['API_ERROR'] = 'API_ERROR' + ErrorCode['BLACKLISTED'] = 'BLACKLISTED' + ErrorCode['BUILTIN_NODE_RESOLUTION_FAILED'] = + 'BUILTIN_NODE_RESOLUTION_FAILED' + ErrorCode['MISSING_DEPENDENCY'] = 'MISSING_DEPENDENCY' + ErrorCode['MISSING_PEER_DEPENDENCY'] = 'MISSING_PEER_DEPENDENCY' + ErrorCode['QUALIFIED_PATH_RESOLUTION_FAILED'] = + 'QUALIFIED_PATH_RESOLUTION_FAILED' + ErrorCode['INTERNAL'] = 'INTERNAL' + ErrorCode['UNDECLARED_DEPENDENCY'] = 'UNDECLARED_DEPENDENCY' + ErrorCode['UNSUPPORTED'] = 'UNSUPPORTED' + })(ErrorCode || (ErrorCode = {})) // Some errors are exposed as MODULE_NOT_FOUND for compatibility with packages + // that expect this umbrella error when the resolution fails + + const MODULE_NOT_FOUND_ERRORS = new Set([ + ErrorCode.BLACKLISTED, + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + ErrorCode.MISSING_DEPENDENCY, + ErrorCode.MISSING_PEER_DEPENDENCY, + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + ErrorCode.UNDECLARED_DEPENDENCY, + ]) + /** + * Simple helper function that assign an error code to an error, so that it can more easily be caught and used + * by third-parties. + */ + + function internalTools_makeError(pnpCode, message, data = {}) { + const code = MODULE_NOT_FOUND_ERRORS.has(pnpCode) + ? `MODULE_NOT_FOUND` + : pnpCode + const propertySpec = { + configurable: true, + writable: true, + enumerable: false, + } + return Object.defineProperties(new Error(message), { + code: { ...propertySpec, value: code }, + pnpCode: { ...propertySpec, value: pnpCode }, + data: { ...propertySpec, value: data }, + }) } - if ((flags & 2097155) !== 0) { - trackingFlags |= FS.tracking.openFlags.WRITE; + /** + * Returns the module that should be used to resolve require calls. It's usually the direct parent, except if we're + * inside an eval expression. + */ + + function getIssuerModule(parent) { + let issuer = parent + + while ( + issuer && + (issuer.id === `[eval]` || + issuer.id === `` || + !issuer.filename) + ) + issuer = issuer.parent + + return issuer || null } - FS.trackingDelegate["onOpenFile"](path, trackingFlags); - } - } catch (e) { - err( - "FS.trackingDelegate['onOpenFile']('" + - path + - "', flags) threw an exception: " + - e.message - ); - } - return stream; - }, - close: function(stream) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (stream.getdents) stream.getdents = null; - try { - if (stream.stream_ops.close) { - stream.stream_ops.close(stream); - } - } catch (e) { - throw e; - } finally { - FS.closeStream(stream.fd); - } - stream.fd = null; - }, - isClosed: function(stream) { - return stream.fd === null; - }, - llseek: function(stream, offset, whence) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (!stream.seekable || !stream.stream_ops.llseek) { - throw new FS.ErrnoError(70); - } - if (whence != 0 && whence != 1 && whence != 2) { - throw new FS.ErrnoError(28); - } - stream.position = stream.stream_ops.llseek(stream, offset, whence); - stream.ungotten = []; - return stream.position; - }, - read: function(stream, buffer, offset, length, position) { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.read) { - throw new FS.ErrnoError(28); - } - var seeking = typeof position !== "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesRead = stream.stream_ops.read( - stream, - buffer, - offset, - length, - position - ); - if (!seeking) stream.position += bytesRead; - return bytesRead; - }, - write: function(stream, buffer, offset, length, position, canOwn) { - if (length < 0 || position < 0) { - throw new FS.ErrnoError(28); - } - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(31); - } - if (!stream.stream_ops.write) { - throw new FS.ErrnoError(28); - } - if (stream.seekable && stream.flags & 1024) { - FS.llseek(stream, 0, 2); - } - var seeking = typeof position !== "undefined"; - if (!seeking) { - position = stream.position; - } else if (!stream.seekable) { - throw new FS.ErrnoError(70); - } - var bytesWritten = stream.stream_ops.write( - stream, - buffer, - offset, - length, - position, - canOwn - ); - if (!seeking) stream.position += bytesWritten; - try { - if (stream.path && FS.trackingDelegate["onWriteToFile"]) - FS.trackingDelegate["onWriteToFile"](stream.path); - } catch (e) { - err( - "FS.trackingDelegate['onWriteToFile']('" + - stream.path + - "') threw an exception: " + - e.message - ); - } - return bytesWritten; - }, - allocate: function(stream, offset, length) { - if (FS.isClosed(stream)) { - throw new FS.ErrnoError(8); - } - if (offset < 0 || length <= 0) { - throw new FS.ErrnoError(28); - } - if ((stream.flags & 2097155) === 0) { - throw new FS.ErrnoError(8); - } - if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { - throw new FS.ErrnoError(43); - } - if (!stream.stream_ops.allocate) { - throw new FS.ErrnoError(138); - } - stream.stream_ops.allocate(stream, offset, length); - }, - mmap: function(stream, address, length, position, prot, flags) { - if ( - (prot & 2) !== 0 && - (flags & 2) === 0 && - (stream.flags & 2097155) !== 2 - ) { - throw new FS.ErrnoError(2); - } - if ((stream.flags & 2097155) === 1) { - throw new FS.ErrnoError(2); - } - if (!stream.stream_ops.mmap) { - throw new FS.ErrnoError(43); - } - return stream.stream_ops.mmap( - stream, - address, - length, - position, - prot, - flags - ); - }, - msync: function(stream, buffer, offset, length, mmapFlags) { - if (!stream || !stream.stream_ops.msync) { - return 0; - } - return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); - }, - munmap: function(stream) { - return 0; - }, - ioctl: function(stream, cmd, arg) { - if (!stream.stream_ops.ioctl) { - throw new FS.ErrnoError(59); - } - return stream.stream_ops.ioctl(stream, cmd, arg); - }, - readFile: function(path, opts) { - opts = opts || {}; - opts.flags = opts.flags || "r"; - opts.encoding = opts.encoding || "binary"; - if (opts.encoding !== "utf8" && opts.encoding !== "binary") { - throw new Error('Invalid encoding type "' + opts.encoding + '"'); - } - var ret; - var stream = FS.open(path, opts.flags); - var stat = FS.stat(path); - var length = stat.size; - var buf = new Uint8Array(length); - FS.read(stream, buf, 0, length, 0); - if (opts.encoding === "utf8") { - ret = UTF8ArrayToString(buf, 0); - } else if (opts.encoding === "binary") { - ret = buf; - } - FS.close(stream); - return ret; - }, - writeFile: function(path, data, opts) { - opts = opts || {}; - opts.flags = opts.flags || "w"; - var stream = FS.open(path, opts.flags, opts.mode); - if (typeof data === "string") { - var buf = new Uint8Array(lengthBytesUTF8(data) + 1); - var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); - FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); - } else if (ArrayBuffer.isView(data)) { - FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); - } else { - throw new Error("Unsupported data type"); - } - FS.close(stream); - }, - cwd: function() { - return FS.currentPath; - }, - chdir: function(path) { - var lookup = FS.lookupPath(path, { follow: true }); - if (lookup.node === null) { - throw new FS.ErrnoError(44); - } - if (!FS.isDir(lookup.node.mode)) { - throw new FS.ErrnoError(54); - } - var errCode = FS.nodePermissions(lookup.node, "x"); - if (errCode) { - throw new FS.ErrnoError(errCode); - } - FS.currentPath = lookup.path; - }, - createDefaultDirectories: function() { - FS.mkdir("/tmp"); - FS.mkdir("/home"); - FS.mkdir("/home/web_user"); - }, - createDefaultDevices: function() { - FS.mkdir("/dev"); - FS.registerDevice(FS.makedev(1, 3), { - read: function() { - return 0; - }, - write: function(stream, buffer, offset, length, pos) { - return length; - } - }); - FS.mkdev("/dev/null", FS.makedev(1, 3)); - TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); - TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); - FS.mkdev("/dev/tty", FS.makedev(5, 0)); - FS.mkdev("/dev/tty1", FS.makedev(6, 0)); - var random_device; - if ( - typeof crypto === "object" && - typeof crypto["getRandomValues"] === "function" - ) { - var randomBuffer = new Uint8Array(1); - random_device = function() { - crypto.getRandomValues(randomBuffer); - return randomBuffer[0]; - }; - } else if (ENVIRONMENT_IS_NODE) { - try { - var crypto_module = __webpack_require__(417); - random_device = function() { - return crypto_module["randomBytes"](1)[0]; - }; - } catch (e) {} - } else { - } - if (!random_device) { - random_device = function() { - abort("random_device"); - }; - } - FS.createDevice("/dev", "random", random_device); - FS.createDevice("/dev", "urandom", random_device); - FS.mkdir("/dev/shm"); - FS.mkdir("/dev/shm/tmp"); - }, - createSpecialDirectories: function() { - FS.mkdir("/proc"); - FS.mkdir("/proc/self"); - FS.mkdir("/proc/self/fd"); - FS.mount( - { - mount: function() { - var node = FS.createNode("/proc/self", "fd", 16384 | 511, 73); - node.node_ops = { - lookup: function(parent, name) { - var fd = +name; - var stream = FS.getStream(fd); - if (!stream) throw new FS.ErrnoError(8); - var ret = { - parent: null, - mount: { mountpoint: "fake" }, - node_ops: { - readlink: function() { - return stream.path; + function getPathForDisplay(p) { + return npath.normalize(npath.fromPortablePath(p)) + } + // CONCATENATED MODULE: ./sources/loader/applyPatch.ts + + function applyPatch(pnpapi, opts) { + // @ts-expect-error + const builtinModules = new Set( + external_module_.Module.builtinModules || + Object.keys(process.binding(`natives`)) + ) + /** + * The cache that will be used for all accesses occuring outside of a PnP context. + */ + + const defaultCache = {} + /** + * Used to disable the resolution hooks (for when we want to fallback to the previous resolution - we then need + * a way to "reset" the environment temporarily) + */ + + let enableNativeHooks = true // @ts-expect-error + + process.versions.pnp = String(pnpapi.VERSIONS.std) + + const moduleExports = __webpack_require__(282) + + moduleExports.findPnpApi = (lookupSource) => { + const lookupPath = + lookupSource instanceof external_url_namespaceObject.URL + ? (0, external_url_namespaceObject.fileURLToPath)(lookupSource) + : lookupSource + const apiPath = opts.manager.findApiPathFor(lookupPath) + if (apiPath === null) return null + const apiEntry = opts.manager.getApiEntry(apiPath, true) + return apiEntry.instance + } + + function getRequireStack(parent) { + const requireStack = [] + + for (let cursor = parent; cursor; cursor = cursor.parent) + requireStack.push(cursor.filename || cursor.id) + + return requireStack + } // A small note: we don't replace the cache here (and instead use the native one). This is an effort to not + // break code similar to "delete require.cache[require.resolve(FOO)]", where FOO is a package located outside + // of the Yarn dependency tree. In this case, we defer the load to the native loader. If we were to replace the + // cache by our own, the native loader would populate its own cache, which wouldn't be exposed anymore, so the + // delete call would be broken. + + const originalModuleLoad = external_module_.Module._load + + external_module_.Module._load = function (request, parent, isMain) { + if (!enableNativeHooks) + return originalModuleLoad.call( + external_module_.Module, + request, + parent, + isMain + ) // Builtins are managed by the regular Node loader + + if (builtinModules.has(request)) { + try { + enableNativeHooks = false + return originalModuleLoad.call( + external_module_.Module, + request, + parent, + isMain + ) + } finally { + enableNativeHooks = true + } + } + + const parentApiPath = opts.manager.getApiPathFromParent(parent) + const parentApi = + parentApiPath !== null + ? opts.manager.getApiEntry(parentApiPath, true).instance + : null // Requests that aren't covered by the PnP runtime goes through the + // parent `_load` implementation. This is required for VSCode, for example, + // which override `_load` to provide additional builtins to its extensions. + + if (parentApi === null) + return originalModuleLoad(request, parent, isMain) // The 'pnpapi' name is reserved to return the PnP api currently in use + // by the program + + if (request === `pnpapi`) return parentApi // Request `Module._resolveFilename` (ie. `resolveRequest`) to tell us + // which file we should load + + const modulePath = external_module_.Module._resolveFilename( + request, + parent, + isMain + ) // We check whether the module is owned by the dependency tree of the + // module that required it. If it isn't, then we need to create a new + // store and possibly load its sandboxed PnP runtime. + + const isOwnedByRuntime = + parentApi !== null + ? parentApi.findPackageLocator(modulePath) !== null + : false + const moduleApiPath = isOwnedByRuntime + ? parentApiPath + : opts.manager.findApiPathFor(npath.dirname(modulePath)) + const entry = + moduleApiPath !== null + ? opts.manager.getApiEntry(moduleApiPath) + : { + instance: null, + cache: defaultCache, + } // Check if the module has already been created for the given file + + const cacheEntry = entry.cache[modulePath] + if (cacheEntry) return cacheEntry.exports // Create a new module and store it into the cache + // @ts-expect-error + + const module = new external_module_.Module(modulePath, parent) // @ts-expect-error + + module.pnpApiPath = moduleApiPath + entry.cache[modulePath] = module // The main module is exposed as global variable + + if (isMain) { + process.mainModule = module + module.id = `.` + } // Try to load the module, and remove it from the cache if it fails + + let hasThrown = true + + try { + // @ts-expect-error + module.load(modulePath) + hasThrown = false + } finally { + if (hasThrown) { + delete external_module_.Module._cache[modulePath] + } + } + + return module.exports + } + + function getIssuerSpecsFromPaths(paths) { + return paths.map((path) => ({ + apiPath: opts.manager.findApiPathFor(path), + path, + module: null, + })) + } + + function getIssuerSpecsFromModule(module) { + const issuer = getIssuerModule(module) + const issuerPath = + issuer !== null ? npath.dirname(issuer.filename) : process.cwd() + return [ + { + apiPath: opts.manager.getApiPathFromParent(issuer), + path: issuerPath, + module, + }, + ] + } + + function makeFakeParent(path) { + const fakeParent = new external_module_.Module(``) + const fakeFilePath = npath.join(path, `[file]`) + fakeParent.paths = + external_module_.Module._nodeModulePaths(fakeFilePath) + return fakeParent + } // Splits a require request into its components, or return null if the request is a file path + + const pathRegExp = + /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/ + const originalModuleResolveFilename = + external_module_.Module._resolveFilename + + external_module_.Module._resolveFilename = function ( + request, + parent, + isMain, + options + ) { + if (builtinModules.has(request)) return request + if (!enableNativeHooks) + return originalModuleResolveFilename.call( + external_module_.Module, + request, + parent, + isMain, + options + ) + + if (options && options.plugnplay === false) { + const { plugnplay, ...rest } = options // Workaround a bug present in some version of Node (now fixed) + // https://github.com/nodejs/node/pull/28078 + + const forwardedOptions = + Object.keys(rest).length > 0 ? rest : undefined + + try { + enableNativeHooks = false + return originalModuleResolveFilename.call( + external_module_.Module, + request, + parent, + isMain, + forwardedOptions + ) + } finally { + enableNativeHooks = true + } + } // We check that all the options present here are supported; better + // to fail fast than to introduce subtle bugs in the runtime. + + if (options) { + const optionNames = new Set(Object.keys(options)) + optionNames.delete(`paths`) + optionNames.delete(`plugnplay`) + + if (optionNames.size > 0) { + throw internalTools_makeError( + ErrorCode.UNSUPPORTED, + `Some options passed to require() aren't supported by PnP yet (${Array.from( + optionNames + ).join(`, `)})` + ) + } + } + + const issuerSpecs = + options && options.paths + ? getIssuerSpecsFromPaths(options.paths) + : getIssuerSpecsFromModule(parent) + + if (request.match(pathRegExp) === null) { + const parentDirectory = + (parent === null || parent === void 0 + ? void 0 + : parent.filename) != null + ? npath.dirname(parent.filename) + : null + const absoluteRequest = npath.isAbsolute(request) + ? request + : parentDirectory !== null + ? npath.resolve(parentDirectory, request) + : null + + if (absoluteRequest !== null) { + const apiPath = + parentDirectory === npath.dirname(absoluteRequest) && + (parent === null || parent === void 0 + ? void 0 + : parent.pnpApiPath) + ? parent.pnpApiPath + : opts.manager.findApiPathFor(absoluteRequest) + + if (apiPath !== null) { + issuerSpecs.unshift({ + apiPath, + path: parentDirectory, + module: null, + }) + } + } + } + + let firstError + + for (const { apiPath, path, module } of issuerSpecs) { + let resolution + const issuerApi = + apiPath !== null + ? opts.manager.getApiEntry(apiPath, true).instance + : null + + try { + if (issuerApi !== null) { + resolution = issuerApi.resolveRequest( + request, + path !== null ? `${path}/` : null + ) + } else { + if (path === null) + throw new Error( + `Assertion failed: Expected the path to be set` + ) + resolution = originalModuleResolveFilename.call( + external_module_.Module, + request, + module || makeFakeParent(path), + isMain + ) + } + } catch (error) { + firstError = firstError || error + continue + } + + if (resolution !== null) { + return resolution + } + } + + const requireStack = getRequireStack(parent) + Object.defineProperty(firstError, `requireStack`, { + configurable: true, + writable: true, + enumerable: false, + value: requireStack, + }) + if (requireStack.length > 0) + firstError.message += `\nRequire stack:\n- ${requireStack.join( + `\n- ` + )}` + throw firstError + } + + const originalFindPath = external_module_.Module._findPath + + external_module_.Module._findPath = function ( + request, + paths, + isMain + ) { + if (request === `pnpapi`) return false // Node sometimes call this function with an absolute path and a `null` set + // of paths. This would cause the resolution to fail. To avoid that, we + // fallback on the regular resolution. We only do this when `isMain` is + // true because the Node default resolution doesn't handle well in-zip + // paths, even absolute, so we try to use it as little as possible. + + if (!enableNativeHooks || (isMain && npath.isAbsolute(request))) + return originalFindPath.call( + external_module_.Module, + request, + paths, + isMain + ) + + for (const path of paths || []) { + let resolution + + try { + const pnpApiPath = opts.manager.findApiPathFor(path) + + if (pnpApiPath !== null) { + const api = opts.manager.getApiEntry( + pnpApiPath, + true + ).instance + resolution = api.resolveRequest(request, path) || false + } else { + resolution = originalFindPath.call( + external_module_.Module, + request, + [path], + isMain + ) + } + } catch (error) { + continue + } + + if (resolution) { + return resolution + } + } + + return false + } + + patchFs(external_fs_default(), new PosixFS(opts.fakeFs)) + } + // CONCATENATED MODULE: ./sources/loader/hydrateRuntimeState.ts + + function hydrateRuntimeState(data, { basePath }) { + const portablePath = npath.toPortablePath(basePath) + const absolutePortablePath = ppath.resolve(portablePath) + const ignorePattern = + data.ignorePatternData !== null + ? new RegExp(data.ignorePatternData) + : null + const packageRegistry = new Map( + data.packageRegistryData.map(([packageName, packageStoreData]) => { + return [ + packageName, + new Map( + packageStoreData.map( + ([packageReference, packageInformationData]) => { + return [ + packageReference, + { + // We use ppath.join instead of ppath.resolve because: + // 1) packageInformationData.packageLocation is a relative path when part of the SerializedState + // 2) ppath.join preserves trailing slashes + packageLocation: ppath.join( + absolutePortablePath, + packageInformationData.packageLocation + ), + packageDependencies: new Map( + packageInformationData.packageDependencies + ), + packagePeers: new Set( + packageInformationData.packagePeers + ), + linkType: packageInformationData.linkType, + discardFromLookup: + packageInformationData.discardFromLookup || false, + }, + ] + } + ) + ), + ] + }) + ) + const packageLocatorsByLocations = new Map() + const packageLocationLengths = new Set() + + for (const [packageName, storeData] of data.packageRegistryData) { + for (const [ + packageReference, + packageInformationData, + ] of storeData) { + if ((packageName === null) !== (packageReference === null)) + throw new Error( + `Assertion failed: The name and reference should be null, or neither should` + ) + if (packageInformationData.discardFromLookup) continue // @ts-expect-error: TypeScript isn't smart enough to understand the type assertion + + const packageLocator = { + name: packageName, + reference: packageReference, + } + packageLocatorsByLocations.set( + packageInformationData.packageLocation, + packageLocator + ) + packageLocationLengths.add( + packageInformationData.packageLocation.length + ) + } + } + + for (const location of data.locationBlacklistData) + packageLocatorsByLocations.set(location, null) + + const fallbackExclusionList = new Map( + data.fallbackExclusionList.map( + ([packageName, packageReferences]) => { + return [packageName, new Set(packageReferences)] + } + ) + ) + const fallbackPool = new Map(data.fallbackPool) + const dependencyTreeRoots = data.dependencyTreeRoots + const enableTopLevelFallback = data.enableTopLevelFallback + return { + basePath: portablePath, + dependencyTreeRoots, + enableTopLevelFallback, + fallbackExclusionList, + fallbackPool, + ignorePattern, + packageLocationLengths: [...packageLocationLengths].sort( + (a, b) => b - a + ), + packageLocatorsByLocations, + packageRegistry, + } + } + // CONCATENATED MODULE: ./sources/loader/makeApi.ts + + function makeApi(runtimeState, opts) { + const alwaysWarnOnFallback = + Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0 + const debugLevel = Number(process.env.PNP_DEBUG_LEVEL) // @ts-expect-error + + const builtinModules = new Set( + external_module_.Module.builtinModules || + Object.keys(process.binding(`natives`)) + ) // Splits a require request into its components, or return null if the request is a file path + + const pathRegExp = + /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/ // Matches if the path starts with a valid path qualifier (./, ../, /) + // eslint-disable-next-line no-unused-vars + + const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/ // Matches if the path must point to a directory (ie ends with /) + + const isDirRegExp = /\/$/ // We only instantiate one of those so that we can use strict-equal comparisons + + const topLevelLocator = { + name: null, + reference: null, + } // Used for compatibility purposes - cf setupCompatibilityLayer + + const fallbackLocators = [] // To avoid emitting the same warning multiple times + + const emittedWarnings = new Set() + if (runtimeState.enableTopLevelFallback === true) + fallbackLocators.push(topLevelLocator) + + if (opts.compatibilityMode !== false) { + // ESLint currently doesn't have any portable way for shared configs to + // specify their own plugins that should be used (cf issue #10125). This + // will likely get fixed at some point but it'll take time, so in the + // meantime we'll just add additional fallback entries for common shared + // configs. + // Similarly, Gatsby generates files within the `public` folder located + // within the project, but doesn't pre-resolve the `require` calls to use + // its own dependencies. Meaning that when PnP see a file from the `public` + // folder making a require, it thinks that your project forgot to list one + // of your dependencies. + for (const name of [`react-scripts`, `gatsby`]) { + const packageStore = runtimeState.packageRegistry.get(name) + + if (packageStore) { + for (const reference of packageStore.keys()) { + if (reference === null) { + throw new Error( + `Assertion failed: This reference shouldn't be null` + ) + } else { + fallbackLocators.push({ + name, + reference, + }) + } + } + } + } + } + /** + * The setup code will be injected here. The tables listed below are guaranteed to be filled after the call to + * the $$DYNAMICALLY_GENERATED_CODE function. + */ + + const { + ignorePattern, + packageRegistry, + packageLocatorsByLocations, + packageLocationLengths, + } = runtimeState + /** + * Allows to print useful logs just be setting a value in the environment + */ + + function makeLogEntry(name, args) { + return { + fn: name, + args, + error: null, + result: null, + } + } + + function maybeLog(name, fn) { + if (opts.allowDebug === false) return fn + + if (Number.isFinite(debugLevel)) { + if (debugLevel >= 2) { + return (...args) => { + const logEntry = makeLogEntry(name, args) + + try { + return (logEntry.result = fn(...args)) + } catch (error) { + throw (logEntry.error = error) + } finally { + console.trace(logEntry) + } + } + } else if (debugLevel >= 1) { + return (...args) => { + try { + return fn(...args) + } catch (error) { + const logEntry = makeLogEntry(name, args) + logEntry.error = error + console.trace(logEntry) + throw error + } + } + } + } + + return fn + } + /** + * Returns information about a package in a safe way (will throw if they cannot be retrieved) + */ + + function getPackageInformationSafe(packageLocator) { + const packageInformation = getPackageInformation(packageLocator) + + if (!packageInformation) { + throw internalTools_makeError( + ErrorCode.INTERNAL, + `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` + ) + } + + return packageInformation + } + /** + * Returns whether the specified locator is a dependency tree root (in which case it's part of the project) or not + */ + + function isDependencyTreeRoot(packageLocator) { + if (packageLocator.name === null) return true + + for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) + if ( + dependencyTreeRoot.name === packageLocator.name && + dependencyTreeRoot.reference === packageLocator.reference + ) + return true + + return false + } + /** + * Implements the node resolution for folder access and extension selection + */ + + function applyNodeExtensionResolution( + unqualifiedPath, + candidates, + { extensions } + ) { + let stat + + try { + candidates.push(unqualifiedPath) + stat = opts.fakeFs.statSync(unqualifiedPath) + } catch (error) {} // If the file exists and is a file, we can stop right there + + if (stat && !stat.isDirectory()) + return opts.fakeFs.realpathSync(unqualifiedPath) // If the file is a directory, we must check if it contains a package.json with a "main" entry + + if (stat && stat.isDirectory()) { + let pkgJson + + try { + pkgJson = JSON.parse( + opts.fakeFs.readFileSync( + ppath.join(unqualifiedPath, `package.json`), + `utf8` + ) + ) + } catch (error) {} + + let nextUnqualifiedPath + if (pkgJson && pkgJson.main) + nextUnqualifiedPath = ppath.resolve( + unqualifiedPath, + pkgJson.main + ) // If the "main" field changed the path, we start again from this new location + + if ( + nextUnqualifiedPath && + nextUnqualifiedPath !== unqualifiedPath + ) { + const resolution = applyNodeExtensionResolution( + nextUnqualifiedPath, + candidates, + { + extensions, + } + ) + + if (resolution !== null) { + return resolution + } + } + } // Otherwise we check if we find a file that match one of the supported extensions + + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = `${unqualifiedPath}${extensions[i]}` + candidates.push(candidateFile) + + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile + } + } // Otherwise, we check if the path is a folder - in such a case, we try to use its index + + if (stat && stat.isDirectory()) { + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = ppath.format({ + dir: unqualifiedPath, + name: `index`, + ext: extensions[i], + }) + candidates.push(candidateFile) + + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile + } + } + } // Otherwise there's nothing else we can do :( + + return null + } + /** + * This function creates fake modules that can be used with the _resolveFilename function. + * Ideally it would be nice to be able to avoid this, since it causes useless allocations + * and cannot be cached efficiently (we recompute the nodeModulePaths every time). + * + * Fortunately, this should only affect the fallback, and there hopefully shouldn't have a + * lot of them. + */ + + function makeFakeModule(path) { + // @ts-expect-error + const fakeModule = new external_module_.Module(path, null) + fakeModule.filename = path + fakeModule.paths = external_module_.Module._nodeModulePaths(path) + return fakeModule + } + /** + * Normalize path to posix format. + */ + + function normalizePath(p) { + return npath.toPortablePath(p) + } + /** + * Forward the resolution to the next resolver (usually the native one) + */ + + function callNativeResolution(request, issuer) { + if (issuer.endsWith(`/`)) issuer = ppath.join(issuer, `internal.js`) // Since we would need to create a fake module anyway (to call _resolveLookupPath that + // would give us the paths to give to _resolveFilename), we can as well not use + // the {paths} option at all, since it internally makes _resolveFilename create another + // fake module anyway. + + return external_module_.Module._resolveFilename( + npath.fromPortablePath(request), + makeFakeModule(npath.fromPortablePath(issuer)), + false, + { + plugnplay: false, + } + ) + } + /** + * + */ + + function isPathIgnored(path) { + if (ignorePattern === null) return false + const subPath = ppath.contains(runtimeState.basePath, path) + if (subPath === null) return false + + if (ignorePattern.test(subPath.replace(/\/$/, ``))) { + return true + } else { + return false + } + } + /** + * This key indicates which version of the standard is implemented by this resolver. The `std` key is the + * Plug'n'Play standard, and any other key are third-party extensions. Third-party extensions are not allowed + * to override the standard, and can only offer new methods. + * + * If a new version of the Plug'n'Play standard is released and some extensions conflict with newly added + * functions, they'll just have to fix the conflicts and bump their own version number. + */ + + const VERSIONS = { + std: 3, + resolveVirtual: 1, + getAllLocators: 1, + } + /** + * We export a special symbol for easy access to the top level locator. + */ + + const topLevel = topLevelLocator + /** + * Gets the package information for a given locator. Returns null if they cannot be retrieved. + */ + + function getPackageInformation({ name, reference }) { + const packageInformationStore = packageRegistry.get(name) + if (!packageInformationStore) return null + const packageInformation = packageInformationStore.get(reference) + if (!packageInformation) return null + return packageInformation + } + /** + * Find all packages that depend on the specified one. + * + * Note: This is a private function; we expect consumers to implement it + * themselves. We keep it that way because this implementation isn't + * optimized at all, since we only need it when printing errors. + */ + + function findPackageDependents({ name, reference }) { + const dependents = [] + + for (const [ + dependentName, + packageInformationStore, + ] of packageRegistry) { + if (dependentName === null) continue + + for (const [ + dependentReference, + packageInformation, + ] of packageInformationStore) { + if (dependentReference === null) continue + const dependencyReference = + packageInformation.packageDependencies.get(name) + if (dependencyReference !== reference) continue // Don't forget that all packages depend on themselves + + if (dependentName === name && dependentReference === reference) + continue + dependents.push({ + name: dependentName, + reference: dependentReference, + }) + } + } + + return dependents + } + /** + * Find all packages that broke the peer dependency on X, starting from Y. + * + * Note: This is a private function; we expect consumers to implement it + * themselves. We keep it that way because this implementation isn't + * optimized at all, since we only need it when printing errors. + */ + + function findBrokenPeerDependencies(dependency, initialPackage) { + const brokenPackages = new Map() + const alreadyVisited = new Set() + + const traversal = (currentPackage) => { + const identifier = JSON.stringify(currentPackage.name) + if (alreadyVisited.has(identifier)) return + alreadyVisited.add(identifier) + const dependents = findPackageDependents(currentPackage) + + for (const dependent of dependents) { + const dependentInformation = + getPackageInformationSafe(dependent) + + if (dependentInformation.packagePeers.has(dependency)) { + traversal(dependent) + } else { + let brokenSet = brokenPackages.get(dependent.name) + if (typeof brokenSet === `undefined`) + brokenPackages.set(dependent.name, (brokenSet = new Set())) + brokenSet.add(dependent.reference) + } + } + } + + traversal(initialPackage) + const brokenList = [] + + for (const name of [...brokenPackages.keys()].sort()) + for (const reference of [...brokenPackages.get(name)].sort()) + brokenList.push({ + name, + reference, + }) + + return brokenList + } + /** + * Finds the package locator that owns the specified path. If none is found, returns null instead. + */ + + function findPackageLocator(location) { + if (isPathIgnored(location)) return null + let relativeLocation = normalizePath( + ppath.relative(runtimeState.basePath, location) + ) + if (!relativeLocation.match(isStrictRegExp)) + relativeLocation = `./${relativeLocation}` + if (location.match(isDirRegExp) && !relativeLocation.endsWith(`/`)) + relativeLocation = `${relativeLocation}/` + let from = 0 // If someone wants to use a binary search to go from O(n) to O(log n), be my guest + + while ( + from < packageLocationLengths.length && + packageLocationLengths[from] > relativeLocation.length + ) + from += 1 + + for (let t = from; t < packageLocationLengths.length; ++t) { + const locator = packageLocatorsByLocations.get( + relativeLocation.substr(0, packageLocationLengths[t]) + ) + if (typeof locator === `undefined`) continue // Ensures that the returned locator isn't a blacklisted one. + // + // Blacklisted packages are packages that cannot be used because their dependencies cannot be deduced. This only + // happens with peer dependencies, which effectively have different sets of dependencies depending on their + // parents. + // + // In order to deambiguate those different sets of dependencies, the Yarn implementation of PnP will generate a + // symlink for each combination of // it will find, and will + // blacklist the target of those symlinks. By doing this, we ensure that files loaded through a specific path + // will always have the same set of dependencies, provided the symlinks are correctly preserved. + // + // Unfortunately, some tools do not preserve them, and when it happens PnP isn't able anymore to deduce the set of + // dependencies based on the path of the file that makes the require calls. But since we've blacklisted those + // paths, we're able to print a more helpful error message that points out that a third-party package is doing + // something incompatible! + + if (locator === null) { + const locationForDisplay = getPathForDisplay(location) + throw internalTools_makeError( + ErrorCode.BLACKLISTED, + `A forbidden path has been used in the package resolution process - this is usually caused by one of your tools calling 'fs.realpath' on the return value of 'require.resolve'. Since we need to use symlinks to simultaneously provide valid filesystem paths and disambiguate peer dependencies, they must be passed untransformed to 'require'.\n\nForbidden path: ${locationForDisplay}`, + { + location: locationForDisplay, + } + ) + } + + return locator + } + + return null + } + /** + * Transforms a request (what's typically passed as argument to the require function) into an unqualified path. + * This path is called "unqualified" because it only changes the package name to the package location on the disk, + * which means that the end result still cannot be directly accessed (for example, it doesn't try to resolve the + * file extension, or to resolve directories to their "index.js" content). Use the "resolveUnqualified" function + * to convert them to fully-qualified paths, or just use "resolveRequest" that do both operations in one go. + * + * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be + * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative + * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/"). + */ + + function resolveToUnqualified( + request, + issuer, + { considerBuiltins = true } = {} + ) { + // The 'pnpapi' request is reserved and will always return the path to the PnP file, from everywhere + if (request === `pnpapi`) + return npath.toPortablePath(opts.pnpapiResolution) // Bailout if the request is a native module + + if (considerBuiltins && builtinModules.has(request)) return null + const requestForDisplay = getPathForDisplay(request) + const issuerForDisplay = issuer && getPathForDisplay(issuer) // We allow disabling the pnp resolution for some subpaths. + // This is because some projects, often legacy, contain multiple + // levels of dependencies (ie. a yarn.lock inside a subfolder of + // a yarn.lock). This is typically solved using workspaces, but + // not all of them have been converted already. + + if (issuer && isPathIgnored(issuer)) { + // Absolute paths that seem to belong to a PnP tree are still + // handled by our runtime even if the issuer isn't. This is + // because the native Node resolution uses a special version + // of the `stat` syscall which would otherwise bypass the + // filesystem layer we require to access the files. + if ( + !ppath.isAbsolute(request) || + findPackageLocator(request) === null + ) { + const result = callNativeResolution(request, issuer) + + if (result === false) { + throw internalTools_makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)\n\nRequire request: "${requestForDisplay}"\nRequired by: ${issuerForDisplay}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + } + ) + } + + return npath.toPortablePath(result) + } + } + + let unqualifiedPath // If the request is a relative or absolute path, we just return it normalized + + const dependencyNameMatch = request.match(pathRegExp) + + if (!dependencyNameMatch) { + if (ppath.isAbsolute(request)) { + unqualifiedPath = ppath.normalize(request) + } else { + if (!issuer) { + throw internalTools_makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + } + ) + } // We use ppath.join instead of ppath.resolve because: + // 1) The request is a relative path in this branch + // 2) ppath.join preserves trailing slashes + + const absoluteIssuer = ppath.resolve(issuer) + + if (issuer.match(isDirRegExp)) { + unqualifiedPath = ppath.normalize( + ppath.join(absoluteIssuer, request) + ) + } else { + unqualifiedPath = ppath.normalize( + ppath.join(ppath.dirname(absoluteIssuer), request) + ) + } + } // No need to use the return value; we just want to check the blacklist status + + findPackageLocator(unqualifiedPath) + } // Things are more hairy if it's a package require - we then need to figure out which package is needed, and in + // particular the exact version for the given location on the dependency tree + else { + if (!issuer) { + throw internalTools_makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + } + ) + } + + const [, dependencyName, subPath] = dependencyNameMatch + const issuerLocator = findPackageLocator(issuer) // If the issuer file doesn't seem to be owned by a package managed through pnp, then we resort to using the next + // resolution algorithm in the chain, usually the native Node resolution one + + if (!issuerLocator) { + const result = callNativeResolution(request, issuer) + + if (result === false) { + throw internalTools_makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).\n\nRequire path: "${requestForDisplay}"\nRequired by: ${issuerForDisplay}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + } + ) + } + + return npath.toPortablePath(result) + } + + const issuerInformation = getPackageInformationSafe(issuerLocator) // We obtain the dependency reference in regard to the package that request it + + let dependencyReference = + issuerInformation.packageDependencies.get(dependencyName) + let fallbackReference = null // If we can't find it, we check if we can potentially load it from the packages that have been defined as potential fallbacks. + // It's a bit of a hack, but it improves compatibility with the existing Node ecosystem. Hopefully we should eventually be able + // to kill this logic and become stricter once pnp gets enough traction and the affected packages fix themselves. + + if (dependencyReference == null) { + if (issuerLocator.name !== null) { + // To allow programs to become gradually stricter, starting from the v2 we enforce that workspaces cannot depend on fallbacks. + // This works by having a list containing all their locators, and checking when a fallback is required whether it's one of them. + const exclusionEntry = runtimeState.fallbackExclusionList.get( + issuerLocator.name + ) + const canUseFallbacks = + !exclusionEntry || + !exclusionEntry.has(issuerLocator.reference) + + if (canUseFallbacks) { + for (let t = 0, T = fallbackLocators.length; t < T; ++t) { + const fallbackInformation = getPackageInformationSafe( + fallbackLocators[t] + ) + const reference = + fallbackInformation.packageDependencies.get( + dependencyName + ) + if (reference == null) continue + if (alwaysWarnOnFallback) fallbackReference = reference + else dependencyReference = reference + break + } + + if (runtimeState.enableTopLevelFallback) { + if ( + dependencyReference == null && + fallbackReference === null + ) { + const reference = + runtimeState.fallbackPool.get(dependencyName) + + if (reference != null) { + fallbackReference = reference + } + } + } + } + } + } // If we can't find the path, and if the package making the request is the top-level, we can offer nicer error messages + + let error = null + + if (dependencyReference === null) { + if (isDependencyTreeRoot(issuerLocator)) { + error = internalTools_makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + dependencyName, + } + ) + } else { + const brokenAncestors = findBrokenPeerDependencies( + dependencyName, + issuerLocator + ) + + if ( + brokenAncestors.every((ancestor) => + isDependencyTreeRoot(ancestor) + ) + ) { + error = internalTools_makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${ + issuerLocator.name + } tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${ + issuerLocator.name + }@${ + issuerLocator.reference + } (via ${issuerForDisplay})\n${brokenAncestors + .map( + (ancestorLocator) => + `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n` + ) + .join(``)}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + issuerLocator: Object.assign({}, issuerLocator), + dependencyName, + brokenAncestors, + } + ) + } else { + error = internalTools_makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${ + issuerLocator.name + } tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${ + issuerLocator.name + }@${ + issuerLocator.reference + } (via ${issuerForDisplay})\n${brokenAncestors + .map( + (ancestorLocator) => + `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference}\n` + ) + .join(``)}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + issuerLocator: Object.assign({}, issuerLocator), + dependencyName, + brokenAncestors, + } + ) + } + } + } else if (dependencyReference === undefined) { + if (!considerBuiltins && builtinModules.has(request)) { + if (isDependencyTreeRoot(issuerLocator)) { + error = internalTools_makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + dependencyName, + } + ) + } else { + error = internalTools_makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + issuerLocator: Object.assign({}, issuerLocator), + dependencyName, + } + ) + } + } else { + if (isDependencyTreeRoot(issuerLocator)) { + error = internalTools_makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerForDisplay}\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + dependencyName, + } + ) + } else { + error = internalTools_makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.\n\nRequired package: ${dependencyName} (via "${requestForDisplay}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + issuerLocator: Object.assign({}, issuerLocator), + dependencyName, + } + ) + } + } + } + + if (dependencyReference == null) { + if (fallbackReference === null || error === null) + throw ( + error || + new Error( + `Assertion failed: Expected an error to have been set` + ) + ) + dependencyReference = fallbackReference + const message = error.message.replace(/\n.*/g, ``) + error.message = message + + if (!emittedWarnings.has(message)) { + emittedWarnings.add(message) + process.emitWarning(error) + } + } // We need to check that the package exists on the filesystem, because it might not have been installed + + const dependencyLocator = Array.isArray(dependencyReference) + ? { + name: dependencyReference[0], + reference: dependencyReference[1], + } + : { + name: dependencyName, + reference: dependencyReference, + } + const dependencyInformation = + getPackageInformationSafe(dependencyLocator) + + if (!dependencyInformation.packageLocation) { + throw internalTools_makeError( + ErrorCode.MISSING_DEPENDENCY, + `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.\n\nRequired package: ${dependencyLocator.name}@${dependencyLocator.reference} (via "${requestForDisplay}")\nRequired by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay})\n`, + { + request: requestForDisplay, + issuer: issuerForDisplay, + dependencyLocator: Object.assign({}, dependencyLocator), + } + ) + } // Now that we know which package we should resolve to, we only have to find out the file location + // packageLocation is always absolute as it's returned by getPackageInformationSafe + + const dependencyLocation = dependencyInformation.packageLocation + + if (subPath) { + // We use ppath.join instead of ppath.resolve because: + // 1) subPath is always a relative path + // 2) ppath.join preserves trailing slashes + unqualifiedPath = ppath.join(dependencyLocation, subPath) + } else { + unqualifiedPath = dependencyLocation + } + } + + return ppath.normalize(unqualifiedPath) + } + /** + * Transforms an unqualified path into a qualified path by using the Node resolution algorithm (which automatically + * appends ".js" / ".json", and transforms directory accesses into "index.js"). + */ + + function resolveUnqualified( + unqualifiedPath, + { + extensions = Object.keys(external_module_.Module._extensions), + } = {} + ) { + const candidates = [] + const qualifiedPath = applyNodeExtensionResolution( + unqualifiedPath, + candidates, + { + extensions, + } + ) + + if (qualifiedPath) { + return ppath.normalize(qualifiedPath) + } else { + const unqualifiedPathForDisplay = + getPathForDisplay(unqualifiedPath) + throw internalTools_makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `Qualified path resolution failed - none of the candidates can be found on the disk.\n\nSource path: ${unqualifiedPathForDisplay}\n${candidates + .map( + (candidate) => + `Rejected candidate: ${getPathForDisplay(candidate)}\n` + ) + .join(``)}`, + { + unqualifiedPath: unqualifiedPathForDisplay, + } + ) + } + } + /** + * Transforms a request into a fully qualified path. + * + * Note that it is extremely important that the `issuer` path ends with a forward slash if the issuer is to be + * treated as a folder (ie. "/tmp/foo/" rather than "/tmp/foo" if "foo" is a directory). Otherwise relative + * imports won't be computed correctly (they'll get resolved relative to "/tmp/" instead of "/tmp/foo/"). + */ + + function resolveRequest( + request, + issuer, + { considerBuiltins, extensions } = {} + ) { + const unqualifiedPath = resolveToUnqualified(request, issuer, { + considerBuiltins, + }) + if (unqualifiedPath === null) return null + + try { + return resolveUnqualified(unqualifiedPath, { + extensions, + }) + } catch (resolutionError) { + if ( + resolutionError.pnpCode === `QUALIFIED_PATH_RESOLUTION_FAILED` + ) + Object.assign(resolutionError.data, { + request: getPathForDisplay(request), + issuer: issuer && getPathForDisplay(issuer), + }) + throw resolutionError + } + } + + function resolveVirtual(request) { + const normalized = ppath.normalize(request) + const resolved = VirtualFS.resolveVirtual(normalized) + return resolved !== normalized ? resolved : null + } + + return { + VERSIONS, + topLevel, + getLocator: (name, referencish) => { + if (Array.isArray(referencish)) { + return { + name: referencish[0], + reference: referencish[1], + } + } else { + return { + name, + reference: referencish, + } + } + }, + getDependencyTreeRoots: () => { + return [...runtimeState.dependencyTreeRoots] + }, + + getAllLocators() { + const locators = [] + + for (const [name, entry] of packageRegistry) + for (const reference of entry.keys()) + if (name !== null && reference !== null) + locators.push({ + name, + reference, + }) + + return locators + }, + + getPackageInformation: (locator) => { + const info = getPackageInformation(locator) + if (info === null) return null + const packageLocation = npath.fromPortablePath( + info.packageLocation + ) + const nativeInfo = { ...info, packageLocation } + return nativeInfo + }, + findPackageLocator: (path) => { + return findPackageLocator(npath.toPortablePath(path)) + }, + resolveToUnqualified: maybeLog( + `resolveToUnqualified`, + (request, issuer, opts) => { + const portableIssuer = + issuer !== null ? npath.toPortablePath(issuer) : null + const resolution = resolveToUnqualified( + npath.toPortablePath(request), + portableIssuer, + opts + ) + if (resolution === null) return null + return npath.fromPortablePath(resolution) + } + ), + resolveUnqualified: maybeLog( + `resolveUnqualified`, + (unqualifiedPath, opts) => { + return npath.fromPortablePath( + resolveUnqualified( + npath.toPortablePath(unqualifiedPath), + opts + ) + ) + } + ), + resolveRequest: maybeLog( + `resolveRequest`, + (request, issuer, opts) => { + const portableIssuer = + issuer !== null ? npath.toPortablePath(issuer) : null + const resolution = resolveRequest( + npath.toPortablePath(request), + portableIssuer, + opts + ) + if (resolution === null) return null + return npath.fromPortablePath(resolution) + } + ), + resolveVirtual: maybeLog(`resolveVirtual`, (path) => { + const result = resolveVirtual(npath.toPortablePath(path)) + + if (result !== null) { + return npath.fromPortablePath(result) + } else { + return null + } + }), + } + } + // CONCATENATED MODULE: ./sources/loader/makeManager.ts + + function makeManager(pnpapi, opts) { + const initialApiPath = npath.toPortablePath( + pnpapi.resolveToUnqualified(`pnpapi`, null) + ) + const initialApiStats = opts.fakeFs.statSync( + npath.toPortablePath(initialApiPath) + ) + const apiMetadata = new Map([ + [ + initialApiPath, + { + cache: external_module_.Module._cache, + instance: pnpapi, + stats: initialApiStats, + lastRefreshCheck: Date.now(), + }, + ], + ]) + + function loadApiInstance(pnpApiPath) { + const nativePath = npath.fromPortablePath(pnpApiPath) // @ts-expect-error + + const module = new external_module_.Module(nativePath, null) // @ts-expect-error + + module.load(nativePath) + return module.exports + } + + function refreshApiEntry(pnpApiPath, apiEntry) { + const timeNow = Date.now() + if (timeNow - apiEntry.lastRefreshCheck < 500) return + apiEntry.lastRefreshCheck = timeNow + const stats = opts.fakeFs.statSync(pnpApiPath) + + if (stats.mtime > apiEntry.stats.mtime) { + console.warn( + `[Warning] The runtime detected new informations in a PnP file; reloading the API instance (${npath.fromPortablePath( + pnpApiPath + )})` + ) + apiEntry.stats = stats + apiEntry.instance = loadApiInstance(pnpApiPath) + } + } + + function getApiEntry(pnpApiPath, refresh = false) { + let apiEntry = apiMetadata.get(pnpApiPath) + + if (typeof apiEntry !== `undefined`) { + if (refresh) { + refreshApiEntry(pnpApiPath, apiEntry) + } + } else { + apiMetadata.set( + pnpApiPath, + (apiEntry = { + cache: {}, + instance: loadApiInstance(pnpApiPath), + stats: opts.fakeFs.statSync(pnpApiPath), + lastRefreshCheck: Date.now(), + }) + ) + } + + return apiEntry + } + + const findApiPathCache = new Map() + + function addToCacheAndReturn(start, end, target) { + if (target !== null) target = VirtualFS.resolveVirtual(target) + let curr + let next = start + + do { + curr = next + findApiPathCache.set(curr, target) + next = ppath.dirname(curr) + } while (curr !== end) + + return target + } + + function findApiPathFor(modulePath) { + const controlledBy = [] + + for (const [apiPath, apiEntry] of apiMetadata) { + const locator = apiEntry.instance.findPackageLocator(modulePath) + + if (locator) { + if (apiMetadata.size === 1) { + return apiPath + } else { + controlledBy.push(apiPath) + } + } + } + + if (controlledBy.length !== 0) { + if (controlledBy.length === 1) return controlledBy[0] + throw new Error( + `Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances.\nThis is usually caused by using the global cache (enableGlobalCache: true)\n\nControlled by:\n${controlledBy + .map((pnpPath) => ` ${npath.fromPortablePath(pnpPath)}`) + .join(`\n`)}` + ) + } + + const start = ppath.resolve(npath.toPortablePath(modulePath)) + let curr + let next = start + + do { + curr = next + const cached = findApiPathCache.get(curr) + if (cached !== undefined) + return addToCacheAndReturn(start, curr, cached) + const candidate = ppath.join(curr, `.pnp.js`) + if (xfs.existsSync(candidate) && xfs.statSync(candidate).isFile()) + return addToCacheAndReturn(start, curr, candidate) + const cjsCandidate = ppath.join(curr, `.pnp.cjs`) + if ( + xfs.existsSync(cjsCandidate) && + xfs.statSync(cjsCandidate).isFile() + ) + return addToCacheAndReturn(start, curr, cjsCandidate) + next = ppath.dirname(curr) + } while (curr !== PortablePath.root) + + return addToCacheAndReturn(start, curr, null) + } + + function getApiPathFromParent(parent) { + if (parent == null) return initialApiPath + + if (typeof parent.pnpApiPath === `undefined`) { + if (parent.filename !== null) { + return (parent.pnpApiPath = findApiPathFor(parent.filename)) + } else { + return initialApiPath + } + } + + if (parent.pnpApiPath !== null) return parent.pnpApiPath + return null + } + + return { + getApiPathFromParent, + findApiPathFor, + getApiEntry, + } + } + // CONCATENATED MODULE: ./sources/loader/_entryPoint.ts + + // We must copy the fs into a local, because otherwise + // 1. we would make the NodeFS instance use the function that we patched (infinite loop) + // 2. Object.create(fs) isn't enough, since it won't prevent the proto from being modified + + const localFs = { ...external_fs_default() } + const nodeFs = new NodeFS(localFs) + const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState) + const defaultPnpapiResolution = __filename // We create a virtual filesystem that will do three things: + // 1. all requests inside a folder named "$$virtual" will be remapped according the virtual folder rules + // 2. all requests going inside a Zip archive will be handled by the Zip fs implementation + // 3. any remaining request will be forwarded to Node as-is + + const defaultFsLayer = new VirtualFS({ + baseFs: new ZipOpenFS({ + baseFs: nodeFs, + libzip: getLibzipSync(), + maxOpenFiles: 80, + readOnlyArchives: true, + }), + }) + let manager + const defaultApi = Object.assign( + makeApi(defaultRuntimeState, { + fakeFs: defaultFsLayer, + pnpapiResolution: defaultPnpapiResolution, + }), + { + /** + * Can be used to generate a different API than the default one (for example + * to map it on `/` rather than the local directory path, or to use a + * different FS layer than the default one). + */ + makeApi: ({ + basePath = undefined, + fakeFs = defaultFsLayer, + pnpapiResolution = defaultPnpapiResolution, + ...rest + }) => { + const apiRuntimeState = + typeof basePath !== `undefined` + ? $$SETUP_STATE(hydrateRuntimeState, basePath) + : defaultRuntimeState + return makeApi(apiRuntimeState, { + fakeFs, + pnpapiResolution, + ...rest, + }) + }, + + /** + * Will inject the specified API into the environment, monkey-patching FS. Is + * automatically called when the hook is loaded through `--require`. + */ + setup: (api) => { + applyPatch(api || defaultApi, { + fakeFs: defaultFsLayer, + manager, + }) + }, + } + ) + manager = makeManager(defaultApi, { + fakeFs: defaultFsLayer, + }) // eslint-disable-next-line arca/no-default-export + + /* harmony default export */ const _entryPoint = defaultApi + + if ( + __non_webpack_module__.parent && + __non_webpack_module__.parent.id === `internal/preload` + ) { + defaultApi.setup() + + if (__non_webpack_module__.filename) { + // We delete it from the cache in order to support the case where the CLI resolver is invoked from "yarn run" + // It's annoying because it might cause some issues when the file is multiple times in NODE_OPTIONS, but it shouldn't happen anyway. + delete external_module_default()._cache[ + __non_webpack_module__.filename + ] + } + } + + if (process.mainModule === __non_webpack_module__) { + const reportError = (code, message, data) => { + process.stdout.write( + `${JSON.stringify([ + { + code, + message, + data, + }, + null, + ])}\n` + ) + } + + const reportSuccess = (resolution) => { + process.stdout.write(`${JSON.stringify([null, resolution])}\n`) + } + + const processResolution = (request, issuer) => { + try { + reportSuccess(defaultApi.resolveRequest(request, issuer)) + } catch (error) { + reportError(error.code, error.message, error.data) + } + } + + const processRequest = (data) => { + try { + const [request, issuer] = JSON.parse(data) + processResolution(request, issuer) + } catch (error) { + reportError(`INVALID_JSON`, error.message, error.data) + } + } + + if (process.argv.length > 2) { + if (process.argv.length !== 4) { + process.stderr.write( + `Usage: ${process.argv[0]} ${process.argv[1]} \n` + ) + process.exitCode = 64 + /* EX_USAGE */ + } else { + processResolution(process.argv[2], process.argv[3]) + } + } else { + let buffer = `` + const decoder = + new (external_string_decoder_default().StringDecoder)() + process.stdin.on(`data`, (chunk) => { + buffer += decoder.write(chunk) + + do { + const index = buffer.indexOf(`\n`) + if (index === -1) break + const line = buffer.slice(0, index) + buffer = buffer.slice(index + 1) + processRequest(line) + } while (true) + }) + } + } + + /***/ + }, + + /***/ 368: /***/ ( + module, + __unused_webpack_exports, + __webpack_require__ + ) => { + var frozenFs = Object.assign({}, __webpack_require__(747)) + var Module = typeof Module !== 'undefined' ? Module : {} + var moduleOverrides = {} + var key + for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key] + } + } + var arguments_ = [] + var thisProgram = './this.program' + var quit_ = function (status, toThrow) { + throw toThrow + } + var ENVIRONMENT_IS_WORKER = false + var ENVIRONMENT_IS_NODE = true + var scriptDirectory = '' + function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory) + } + return scriptDirectory + path + } + var read_, readBinary + var nodeFS + var nodePath + if (ENVIRONMENT_IS_NODE) { + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = + __webpack_require__(622).dirname(scriptDirectory) + '/' + } else { + scriptDirectory = __dirname + '/' + } + read_ = function shell_read(filename, binary) { + var ret = tryParseAsDataURI(filename) + if (ret) { + return binary ? ret : ret.toString() + } + if (!nodeFS) nodeFS = frozenFs + if (!nodePath) nodePath = __webpack_require__(622) + filename = nodePath['normalize'](filename) + return nodeFS['readFileSync'](filename, binary ? null : 'utf8') + } + readBinary = function readBinary(filename) { + var ret = read_(filename, true) + if (!ret.buffer) { + ret = new Uint8Array(ret) + } + assert(ret.buffer) + return ret + } + if (process['argv'].length > 1) { + thisProgram = process['argv'][1].replace(/\\/g, '/') + } + arguments_ = process['argv'].slice(2) + if (true) { + module['exports'] = Module + } + quit_ = function (status) { + process['exit'](status) + } + Module['inspect'] = function () { + return '[Emscripten Module object]' + } + } else { + } + var out = Module['print'] || console.log.bind(console) + var err = Module['printErr'] || console.warn.bind(console) + for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key] + } + } + moduleOverrides = null + if (Module['arguments']) arguments_ = Module['arguments'] + if (Module['thisProgram']) thisProgram = Module['thisProgram'] + if (Module['quit']) quit_ = Module['quit'] + var STACK_ALIGN = 16 + function alignMemory(size, factor) { + if (!factor) factor = STACK_ALIGN + return Math.ceil(size / factor) * factor + } + var tempRet0 = 0 + var setTempRet0 = function (value) { + tempRet0 = value + } + var wasmBinary + if (Module['wasmBinary']) wasmBinary = Module['wasmBinary'] + var noExitRuntime + if (Module['noExitRuntime']) noExitRuntime = Module['noExitRuntime'] + if (typeof WebAssembly !== 'object') { + abort('no native wasm support detected') + } + function getValue(ptr, type, noSafe) { + type = type || 'i8' + if (type.charAt(type.length - 1) === '*') type = 'i32' + switch (type) { + case 'i1': + return HEAP8[ptr >> 0] + case 'i8': + return HEAP8[ptr >> 0] + case 'i16': + return HEAP16[ptr >> 1] + case 'i32': + return HEAP32[ptr >> 2] + case 'i64': + return HEAP32[ptr >> 2] + case 'float': + return HEAPF32[ptr >> 2] + case 'double': + return HEAPF64[ptr >> 3] + default: + abort('invalid type for getValue: ' + type) + } + return null + } + var wasmMemory + var wasmTable = new WebAssembly.Table({ + initial: 31, + maximum: 31, + element: 'anyfunc', + }) + var ABORT = false + var EXITSTATUS = 0 + function assert(condition, text) { + if (!condition) { + abort('Assertion failed: ' + text) + } + } + function getCFunc(ident) { + var func = Module['_' + ident] + assert( + func, + 'Cannot call unknown function ' + + ident + + ', make sure it is exported' + ) + return func + } + function ccall(ident, returnType, argTypes, args, opts) { + var toC = { + string: function (str) { + var ret = 0 + if (str !== null && str !== undefined && str !== 0) { + var len = (str.length << 2) + 1 + ret = stackAlloc(len) + stringToUTF8(str, ret, len) + } + return ret + }, + array: function (arr) { + var ret = stackAlloc(arr.length) + writeArrayToMemory(arr, ret) + return ret + }, + } + function convertReturnValue(ret) { + if (returnType === 'string') return UTF8ToString(ret) + if (returnType === 'boolean') return Boolean(ret) + return ret + } + var func = getCFunc(ident) + var cArgs = [] + var stack = 0 + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]] + if (converter) { + if (stack === 0) stack = stackSave() + cArgs[i] = converter(args[i]) + } else { + cArgs[i] = args[i] + } + } + } + var ret = func.apply(null, cArgs) + ret = convertReturnValue(ret) + if (stack !== 0) stackRestore(stack) + return ret + } + function cwrap(ident, returnType, argTypes, opts) { + argTypes = argTypes || [] + var numericArgs = argTypes.every(function (type) { + return type === 'number' + }) + var numericRet = returnType !== 'string' + if (numericRet && numericArgs && !opts) { + return getCFunc(ident) + } + return function () { + return ccall(ident, returnType, argTypes, arguments, opts) + } + } + var UTF8Decoder = + typeof TextDecoder !== 'undefined' + ? new TextDecoder('utf8') + : undefined + function UTF8ArrayToString(heap, idx, maxBytesToRead) { + var endIdx = idx + maxBytesToRead + var endPtr = idx + while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr + if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) { + return UTF8Decoder.decode(heap.subarray(idx, endPtr)) + } else { + var str = '' + while (idx < endPtr) { + var u0 = heap[idx++] + if (!(u0 & 128)) { + str += String.fromCharCode(u0) + continue + } + var u1 = heap[idx++] & 63 + if ((u0 & 224) == 192) { + str += String.fromCharCode(((u0 & 31) << 6) | u1) + continue + } + var u2 = heap[idx++] & 63 + if ((u0 & 240) == 224) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2 + } else { + u0 = + ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heap[idx++] & 63) + } + if (u0 < 65536) { + str += String.fromCharCode(u0) + } else { + var ch = u0 - 65536 + str += String.fromCharCode( + 55296 | (ch >> 10), + 56320 | (ch & 1023) + ) + } + } + } + return str + } + function UTF8ToString(ptr, maxBytesToRead) { + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : '' + } + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) return 0 + var startIdx = outIdx + var endIdx = outIdx + maxBytesToWrite - 1 + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i) + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i) + u = (65536 + ((u & 1023) << 10)) | (u1 & 1023) + } + if (u <= 127) { + if (outIdx >= endIdx) break + heap[outIdx++] = u + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break + heap[outIdx++] = 192 | (u >> 6) + heap[outIdx++] = 128 | (u & 63) + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break + heap[outIdx++] = 224 | (u >> 12) + heap[outIdx++] = 128 | ((u >> 6) & 63) + heap[outIdx++] = 128 | (u & 63) + } else { + if (outIdx + 3 >= endIdx) break + heap[outIdx++] = 240 | (u >> 18) + heap[outIdx++] = 128 | ((u >> 12) & 63) + heap[outIdx++] = 128 | ((u >> 6) & 63) + heap[outIdx++] = 128 | (u & 63) + } + } + heap[outIdx] = 0 + return outIdx - startIdx + } + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite) + } + function lengthBytesUTF8(str) { + var len = 0 + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i) + if (u >= 55296 && u <= 57343) + u = (65536 + ((u & 1023) << 10)) | (str.charCodeAt(++i) & 1023) + if (u <= 127) ++len + else if (u <= 2047) len += 2 + else if (u <= 65535) len += 3 + else len += 4 + } + return len + } + function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1 + var ret = _malloc(size) + if (ret) stringToUTF8Array(str, HEAP8, ret, size) + return ret + } + function writeArrayToMemory(array, buffer) { + HEAP8.set(array, buffer) + } + var WASM_PAGE_SIZE = 65536 + function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - (x % multiple) + } + return x + } + var buffer, + HEAP8, + HEAPU8, + HEAP16, + HEAPU16, + HEAP32, + HEAPU32, + HEAPF32, + HEAPF64 + function updateGlobalBufferAndViews(buf) { + buffer = buf + Module['HEAP8'] = HEAP8 = new Int8Array(buf) + Module['HEAP16'] = HEAP16 = new Int16Array(buf) + Module['HEAP32'] = HEAP32 = new Int32Array(buf) + Module['HEAPU8'] = HEAPU8 = new Uint8Array(buf) + Module['HEAPU16'] = HEAPU16 = new Uint16Array(buf) + Module['HEAPU32'] = HEAPU32 = new Uint32Array(buf) + Module['HEAPF32'] = HEAPF32 = new Float32Array(buf) + Module['HEAPF64'] = HEAPF64 = new Float64Array(buf) + } + var INITIAL_INITIAL_MEMORY = Module['INITIAL_MEMORY'] || 16777216 + if (Module['wasmMemory']) { + wasmMemory = Module['wasmMemory'] + } else { + wasmMemory = new WebAssembly.Memory({ + initial: INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE, + maximum: 2147483648 / WASM_PAGE_SIZE, + }) + } + if (wasmMemory) { + buffer = wasmMemory.buffer + } + INITIAL_INITIAL_MEMORY = buffer.byteLength + updateGlobalBufferAndViews(buffer) + var __ATPRERUN__ = [] + var __ATINIT__ = [] + var __ATMAIN__ = [] + var __ATPOSTRUN__ = [] + var runtimeInitialized = false + function preRun() { + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') + Module['preRun'] = [Module['preRun']] + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()) + } + } + callRuntimeCallbacks(__ATPRERUN__) + } + function initRuntime() { + runtimeInitialized = true + if (!Module['noFSInit'] && !FS.init.initialized) FS.init() + TTY.init() + callRuntimeCallbacks(__ATINIT__) + } + function preMain() { + FS.ignorePermissions = false + callRuntimeCallbacks(__ATMAIN__) + } + function postRun() { + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') + Module['postRun'] = [Module['postRun']] + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()) + } + } + callRuntimeCallbacks(__ATPOSTRUN__) + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb) + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb) + } + var Math_abs = Math.abs + var Math_ceil = Math.ceil + var Math_floor = Math.floor + var Math_min = Math.min + var runDependencies = 0 + var runDependencyWatcher = null + var dependenciesFulfilled = null + function getUniqueRunDependency(id) { + return id + } + function addRunDependency(id) { + runDependencies++ + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies) + } + } + function removeRunDependency(id) { + runDependencies-- + if (Module['monitorRunDependencies']) { + Module['monitorRunDependencies'](runDependencies) + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher) + runDependencyWatcher = null + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled + dependenciesFulfilled = null + callback() + } + } + } + Module['preloadedImages'] = {} + Module['preloadedAudios'] = {} + function abort(what) { + if (Module['onAbort']) { + Module['onAbort'](what) + } + what += '' + err(what) + ABORT = true + EXITSTATUS = 1 + what = + 'abort(' + what + '). Build with -s ASSERTIONS=1 for more info.' + var e = new WebAssembly.RuntimeError(what) + throw e + } + function hasPrefix(str, prefix) { + return String.prototype.startsWith + ? str.startsWith(prefix) + : str.indexOf(prefix) === 0 + } + var dataURIPrefix = 'data:application/octet-stream;base64,' + function isDataURI(filename) { + return hasPrefix(filename, dataURIPrefix) + } + var wasmBinaryFile = + 'data:application/octet-stream;base64,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AkEgaiQAC4sDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEEATQ0AIAMpAxhC////////////AFYNACADKQMYQgBYDQEgAygCIA0BCyADKAIkQQxqQRJBABAVIANCfzcDKAwBCyADKAIkLQA1QQFxBEAgA0J/NwMoDAELAn8jAEEQayIAIAMoAiQ2AgwgACgCDC0ANEEBcQsEQCADQgA3AygMAQsgAykDGFAEQCADQgA3AygMAQsgA0IANwMQA0AgAykDECADKQMYVARAIAMgAygCJCADKAIgIAMpAxCnaiADKQMYIAMpAxB9QQEQIiICNwMIIAJCAFMEQCADKAIkQQE6ADUgAykDEFAEQCADQn83AygMBAsgAyADKQMQNwMoDAMLIAMpAwhQBEAgAygCJEEBOgA0BSADIAMpAwggAykDEHw3AxAMAgsLCyADIAMpAxA3AygLIAMpAyghAiADQTBqJAAgAgs2AQF/IwBBEGsiASAANgIMAn4gASgCDC0AAEEBcQRAIAEoAgwpAwggASgCDCkDEH0MAQtCAAsLsgECAX8BfiMAQRBrIgEkACABIAA2AgQgASABKAIEQggQHzYCAAJAIAEoAgBFBEAgAUIANwMIDAELIAEgASgCAC0AAK0gASgCAC0AB61COIYgASgCAC0ABq1CMIZ8IAEoAgAtAAWtQiiGfCABKAIALQAErUIghnwgASgCAC0AA61CGIZ8IAEoAgAtAAKtQhCGfCABKAIALQABrUIIhnx8NwMICyABKQMIIQIgAUEQaiQAIAILqAEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCIEEATQRAIAEoAghBDGpBEkEAEBUgAUF/NgIMDAELIAEoAggiACAAKAIgQX9qNgIgIAEoAggoAiBFBEAgASgCCEEAQgBBAhAiGiABKAIIKAIABEAgASgCCCgCABAyQQBIBEAgASgCCEEMakEUQQAQFQsLCyABQQA2AgwLIAEoAgwhACABQRBqJAAgAAvxAgICfwF+AkAgAkUNACAAIAJqIgNBf2ogAToAACAAIAE6AAAgAkEDSQ0AIANBfmogAToAACAAIAE6AAEgA0F9aiABOgAAIAAgAToAAiACQQdJDQAgA0F8aiAB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ECwQMwsgASgCDCgCVBAWIAEoAgxBADYCVAsgAUEQaiQAC/EBAQF/IwBBEGsiASAANgIMIAEoAgxBADYCACABKAIMQQA6AAQgASgCDEEAOgAFIAEoAgxBAToABiABKAIMQb8GOwEIIAEoAgxBCjsBCiABKAIMQQA7AQwgASgCDEF/NgIQIAEoAgxBADYCFCABKAIMQQA2AhggASgCDEIANwMgIAEoAgxCADcDKCABKAIMQQA2AjAgASgCDEEANgI0IAEoAgxBADYCOCABKAIMQQA2AjwgASgCDEEAOwFAIAEoAgxBgIDYjXg2AkQgASgCDEIANwNIIAEoAgxBADsBUCABKAIMQQA7AVIgASgCDEEANgJUC9oTAQF/IwBBsAFrIgMkACADIAA2AqgBIAMgATYCpAEgAyACNgKgASADQQA2ApABIAMgAygCpAEoAjBBABA7NgKUASADIAMoAqQBKAI4QQAQOzYCmAECQAJAAkACQCADKAKUAUECRgRAIAMoApgBQQFGDQELIAMoApQBQQFGBEAgAygCmAFBAkYNAQsgAygClAFBAkcNASADKAKYAUECRw0BCyADKAKkASIAIAAvAQxBgBByOwEMDAELIAMoAqQBIgAgAC8BDEH/7wNxOwEMIAMoApQBQQJGBEAgA0H14AEgAygCpAEoAjAgAygCqAFBCGoQxAE2ApABIAMoApABRQRAIANBfzYCrAEMAwsLAkAgAygCoAFBgAJxDQAgAygCmAFBAkcNACADQfXGASADKAKkASgCOCADKAKoAUEIahDEATYCSCADKAJIRQRAIAMoApABECQgA0F/NgKsAQwDCyADKAJIIAMoApABNgIAIAMgAygCSDYCkAELCwJAIAMoAqQBLwFSRQRAIAMoAqQBIgAgAC8BDEH+/wNxOwEMDAELIAMoAqQBIgAgAC8BDEEBcjsBDAsgAyADKAKkASADKAKgARCAAUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBAqNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBUgAygCkAEQJCADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAuIAMoAhwgAygCpAEpAyAQLgwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLgsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAuCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC4LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFSADKAIcEBcgAygCkAEQJCADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQUDYCjAEgAygCHBAXIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECo2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFSADKAKQARAkIANBfzYCrAEMAgsgAygCEEECECAgAygCEEHP0wBBAhBAIAMoAhAgAygCpAEvAVJB/wFxEIoBIAMoAhAgAygCpAEoAhBB//8DcRAgAn8jAEEQayIAIAMoAhA2AgwgACgCDC0AAEEBcUULBEAgAygCqAFBCGpBFEEAEBUgAygCEBAXIAMoApABECQgA0F/NgKsAQwCCyADQYGyAkEHIANBFWpBgAYQUDYCDCADKAIQEBcgAygCDCADKAKQATYCACADIAMoAgw2ApABCyADIANB0ABqQi4QKiIANgJMIABFBEAgAygCqAFBCGpBDkEAEBUgAygCkAEQJCADQX82AqwBDAELIAMoAkxBxdMAQcrTACADKAKgAUGAAnEbQQQQQCADKAKgAUGAAnFFBEAgAygCTAJ/QS0gAy0AhgFBAXENABogAygCpAEvAQgLQf//A3EQIAsgAygCTAJ/QS0gAy0AhgFBAXENABogAygCpAEvAQoLQf//A3EQICADKAJMIAMoAqQBLwEMECACQCADLQCFAUEBcQRAIAMoAkxB4wAQIAwBCyADKAJMIAMoAqQBKAIQQf//A3EQIAsgAygCpAEoAhQgA0GeAWogA0GcAWoQwwEgAygCTCADLwGeARAgIAMoAkwgAy8BnAEQIAJAAkAgAy0AhQFBAXFFDQAgAygCpAEpAyhCFFoNACADKAJMQQAQIQwBCyADKAJMIAMoAqQBKAIYECELAkACQCADKAKgAUGAAnFBgAJHDQAgAygCpAEpAyBC/////w9UBEAgAygCpAEpAyhC/////w9UDQELIAMoAkxBfxAhIAMoAkxBfxAhDAELAkAgAygCpAEpAyBC/////w9UBEAgAygCTCADKAKkASkDIKcQIQwBCyADKAJMQX8QIQsCQCADKAKkASkDKEL/////D1QEQCADKAJMIAMoAqQBKQMopxAhDAELIAMoAkxBfxAhCwsgAygCTCADKAKkASgCMBBSQf//A3EQICADIAMoAqQBKAI0IAMoAqABEIIBQf//A3EgAygCkAFBgAYQggFB//8DcWo2AogBIAMoAkwgAygCiAFB//8DcRAgIAMoAqABQYACcUUEQCADKAJMIAMoAqQBKAI4EFJB//8DcRAgIAMoAkwgAygCpAEoAjxB//8DcRAgIAMoAkwgAygCpAEvAUAQICADKAJMIAMoAqQBKAJEECECQCADKAKkASkDSEL/////D1QEQCADKAJMIAMoAqQBKQNIpxAhDAELIAMoAkxBfxAhCwsCfyMAQRBrIgAgAygCTDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFSADKAJMEBcgAygCkAEQJCADQX82AqwBDAELIAMoAqgBIANB0ABqAn4jAEEQayIAIAMoAkw2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACwsQNkEASARAIAMoAkwQFyADKAKQARAkIANBfzYCrAEMAQsgAygCTBAXIAMoAqQBKAIwBEAgAygCqAEgAygCpAEoAjAQhgFBAEgEQCADKAKQARAkIANBfzYCrAEMAgsLIAMoApABBEAgAygCqAEgAygCkAFBgAYQgQFBAEgEQCADKAKQARAkIANBfzYCrAEMAgsLIAMoApABECQgAygCpAEoAjQEQCADKAKoASADKAKkASgCNCADKAKgARCBAUEASARAIANBfzYC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IAMoAoABKAIAIAMpA3CnQQR0aigCACADEPEBBEAgAygCfEEVQQAQFSADEFwgA0J/NwOIAQwDBSADKAKAASgCACADKQNwp0EEdGooAgAoAjQgAygCNBCFASEAIAMoAoABKAIAIAMpA3CnQQR0aigCACAANgI0IAMoAoABKAIAIAMpA3CnQQR0aigCAEEBOgAEIANBADYCNCADEFwgAyADKQNwQgF8NwNwDAILAAsLIAMCfiADKQNgIAMpA2h9Qv///////////wBUBEAgAykDYCADKQNofQwBC0L///////////8ACzcDiAELIAMpA4gBIQQgA0GQAWokACAEC6YBAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCEBD6ASIANgIMAkAgAEUEQCADQQA2AhwMAQsgAygCDCADKAIYNgIAIAMoAgwgAygCFDYCBCADKAIUQRBxBEAgAygCDCIAIAAoAhRBAnI2AhQgAygCDCIAIAAoAhhBAnI2AhgLIAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC9UBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCAJAAkAgBCkDEEL///////////8AVwRAIAQpAxBCgICAgICAgICAf1kNAQsgBCgCCEEEQT0QFSAEQX82AhwMAQsCfyAEKQMQIQEgBCgCDCEAIAQoAhgiAigCTEF/TARAIAIgASAAEJYBDAELIAIgASAAEJYBC0EASARAIAQoAghBBEG0nAEoAgAQFSAEQX82AhwMAQsgBEEANgIcCyAEKAIcIQAgBEEgaiQAIAALJwACf0EAQQAgABAFIgAgAEEbRhsiAEUNABpBtJwBIAA2AgBBAAsaC14BAX8jAEEQayIDJAAgAyABQcCAgAJxBH8gAyACQQRqNgIMIAIoAgAFQQALNgIAIAAgAUGAgAJyIAMQESIAQYFgTwRAQbScAUEAIABrNgIAQX8hAAsgA0EQaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwCQAJAIAEoAgwoAiRBAUYNACABKAIMKAIkQQJGDQAMAQsgASgCDEEAQgBBChAiGiABKAIMQQA2AiQLIAFBEGokAAszAQF/An8gABAGIgFBYUYEQCAAEBIhAQsgAUGBYE8LBH9BtJwBQQAgAWs2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IEUNACABKAIIKAIkDQELIAFBATYCDAwBCyABIAEoAggoAhw2AgQCQAJAIAEoAgRFDQAgASgCBCgCACABKAIIRw0AIAEoAgQoAgRBKkYNASABKAIEKAIEQTlGDQEgASgCBCgCBEHFAEYNASABKAIEKAIEQckARg0BIAEoAgQoAgRB2wBGDQEgASgCBCgCBEHnAEYNASABKAIEKAIEQfEARg0BIAEoAgQoAgRBmgVGDQELIAFBATYCDAwBCyABQQA2AgwLIAEoAgwL0gQBAX8jAEEgayIDIAA2AhwgAyABNgIYIAMgAjYCFCADIAMoAhxB3BZqIAMoAhRBAnRqKAIANgIQIAMgAygCFEEBdDYCDANAAkAgAygCDCADKAIcKALQKEoNAAJAIAMoAgwgAygCHCgC0ChODQAgAygCGCADKAIcIAMoAgxBAnRqQeAWaigCAEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBOBEAgAygCGCADKAIcIAMoAgxBAnRqQeAWaigCAEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBHDQEgAygCHCADKAIMQQJ0akHgFmooAgAgAygCHEHYKGpqLQAAIAMoAhxB3BZqIAMoAgxBAnRqKAIAIAMoAhxB2Chqai0AAEoNAQsgAyADKAIMQQFqNgIMCyADKAIYIAMoAhBBAnRqLwEAIAMoAhggAygCHEHcFmogAygCDEECdGooAgBBAnRqLwEASA0AAkAgAygCGCADKAIQQQJ0ai8BACADKAIYIAMoAhxB3BZqIAMoAgxBAnRqKAIAQQJ0ai8BAEcNACADKAIQIAMoAhxB2Chqai0AACADKAIcQdwWaiADKAIMQQJ0aigCACADKAIcQdgoamotAABKDQAMAQsgAygCHEHcFmogAygCFEECdGogAygCHEHcFmogAygCDEECdGooAgA2AgAgAyADKAIMNgIUIAMgAygCDEEBdDYCDAwBCwsgAygCHEHcFmogAygCFEECdGogAygCEDYCAAvnCAEDfyMAQTBrIgIkACACIAA2AiwgAiABNgIoIAIgAigCKCgCADYCJCACIAIoAigoAggoAgA2AiAgAiACKAIoKAIIKAIMNgIcIAJBfzYCECACKAIsQQA2AtAoIAIoAixBvQQ2AtQoIAJBADYCGANAIAIoAhggAigCHE5FBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUF/ajYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAUhFBEAgAigCLCACKAIkIAIoAhgQdSACIAIoAhhBf2o2AhgMAQsLIAIgAigCHDYCDANAIAIgAigCLCgC4BY2AhggAigCLEHcFmohASACKAIsIgMoAtAoIQAgAyAAQX9qNgLQKCACKAIsIABBAnQgAWooAgA2AuAWIAIoAiwgAigCJEEBEHUgAiACKAIsKALgFjYCFCACKAIYIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQX9qIQAgBCAANgLUKCAAQQJ0IANqIAE2AgAgAigCFCEBIAIoAixB3BZqIQMgAigCLCIEKALUKEF/aiEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAiQgAigCDEECdGogAigCJCACKAIYQQJ0ai8BACACKAIkIAIoAhRBAnRqLwEAajsBACACKAIMIAIoAixB2ChqagJ/IAIoAhggAigCLEHYKGpqLQAAIAIoAhQgAigCLEHYKGpqLQAATgRAIAIoAhggAigCLEHYKGpqLQAADAELIAIoAhQgAigCLEHYKGpqLQAAC0EBajoAACACKAIkIAIoAhRBAnRqIAIoAgwiADsBAiACKAIkIAIoAhhBAnRqIAA7AQIgAiACKAIMIgBBAWo2AgwgAigCLCAANgLgFiACKAIs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AykDKCEBIANBMGokACABC3cBAX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC9kCAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgA0EMakIEECo2AggCQCADKAIIRQRAIANBfzYCHAwBCwNAIAMoAhQEQCADKAIUKAIEIAMoAhBxQYAGcQRAIAMoAghCABAtGiADKAIIIAMoAhQvAQgQICADKAIIIAMoAhQvAQoQIAJ/IwBBEGsiACADKAIINgIMIAAoAgwtAABBAXFFCwRAIAMoAhhBCGpBFEEAEBUgAygCCBAXIANBfzYCHAwECyADKAIYIANBDGpCBBA2QQBIBEAgAygCCBAXIANBfzYCHAwECyADKAIULwEKQQBKBEAgAygCGCADKAIUKAIMIAMoAhQvAQqtEDZBAEgEQCADKAIIEBcgA0F/NgIcDAULCwsgAyADKAIUKAIANgIUDAELCyADKAIIEBcgA0EANgIcCyADKAIcIQAgA0EgaiQAIAALaAEBfyMAQRBrIgIgADYCDCACIAE2AgggAkEAOwEGA0AgAigCDARAIAIoAgwoAgQgAigCCHFBgAZxBEAgAiACKAIMLwEKIAIvAQZBBGpqOwEGCyACIAIoAgwoAgA2AgwMAQsLIAIvAQYL8AEBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABQQA2AgQDQCABKAIMBEACQAJAIAEoAgwvAQhB9cYBRg0AIAEoAgwvAQhB9eABRg0AIAEoAgwvAQhBgbICRg0AIAEoAgwvAQhBAUcNAQsgASABKAIMKAIANgIAIAEoAgggASgCDEYEQCABIAEoAgA2AggLIAEoAgxBADYCACABKAIMECQgASgCBARAIAEoAgQgASgCADYCAAsgASABKAIANgIMDAILIAEgASgCDDYCBCABIAEoAgwoAgA2AgwMAQsLIAEoAgghACABQRBqJAAgAAuzBAEBfyMAQUBqIgUkACAFIAA2AjggBSABOwE2IAUgAjYCMCAFIAM2AiwgBSAENgIoIAUgBSgCOCAFLwE2rRAqIgA2AiQC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ACgCDCgCBDYCAAsLIAIoAgwEQCACKAIMIAIoAgQ2AgALIAJBEGokAAuVAQEBfyMAQRBrIgEkACABIAA2AggCQAJ/IwBBEGsiACABKAIINgIMIAAoAgwpAxhCgIAQg1ALBEAgASgCCCgCAARAIAEgASgCCCgCABCUAUEBcToADwwCCyABQQE6AA8MAQsgASABKAIIQQBCAEESECI+AgQgASABKAIEQQBHOgAPCyABLQAPQQFxIQAgAUEQaiQAIAALfwEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIANBADYCDCADIAI2AggCQCADKQMQQv///////////wBWBEAgAygCCEEEQT0QFSADQX82AhwMAQsgAyADKAIYIAMpAxAgAygCDCADKAIIEGc2AhwLIAMoAhwhACADQSBqJAAgAAt9ACACQQFGBEAgASAAKAIIIAAoAgRrrH0hAQsCQCAAKAIUIAAoAhxLBEAgAEEAQQAgACgCJBEBABogACgCFEUNAQsgAEEANgIcIABCADcDECAAIAEgAiAAKAIoERAAQgBTDQAgAEIANwIEIAAgACgCAEFvcTYCAEEADwtBfwviAgECfyMAQSBrIgMkAAJ/AkACQEH0lwEgASwAABCYAUUEQEG0nAFBHDYCAAwBC0GYCRAZIgINAQtBAAwBCyACQQBBkAEQMyABQSsQmAFFBEAgAkEIQQQgAS0AAEHyAEYbNgIACwJAIAEtAABB4QBHBEAgAigCACEBDAELIABBA0EAEAQiAUGACHFFBEAgAyABQYAIcjYCECAAQQQgA0EQahAEGgsgAiACKAIAQYABciIBNgIACyACQf8BOgBLIAJBgAg2AjAgAiAANgI8IAIgAkGYAWo2AiwCQCABQQhxDQAgAyADQRhqNgIAIABBk6gBIAMQDg0AIAJBCjoASwsgAkEaNgIoIAJBGzYCJCACQRw2AiAgAkEdNgIMQdygASgCAEUEQCACQX82AkwLIAJBsKEBKAIANgI4QbChASgCACIABEAgACACNgI0C0GwoQEgAjYCACACCyEAIANBIGokACAACxoAIAAgARCFAiIAQQAgAC0AACABQf8BcUYbCxgAIAAoAkxBf0wEQCAAEJoBDwsgABCaAQtgAgJ/AX4gACgCKCEBQQEhAiAAQgAgAC0AAEGAAXEEf0ECQQEgACgCFCAAKAIcSxsFQQELIAEREAAiA0IAWQR+IAAoAhQgACgCHGusIAMgACgCCCAAKAIEa6x9fAUgAwsLdgEBfyAABEAgACgCTEF/TARAIAAQbA8LIAAQbA8LQbShASgCAARAQbShASgCABCbASEBC0GwoQEoAgAiAARAA0AgACgCTEEATgR/QQEFQQALGiAAKAIUIAAoAhxLBEAgABBsIAFyIQELIAAoAjgiAA0ACwsgAQsiACAAIAEQAiIAQYFgTwR/QbScAUEAIABrNgIAQX8FIAALC9YBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCCAEIAQoAhggBCgCGCAEKQMQIAQoAgwgBCgCCBCpASIANgIAAkAgAEUEQCAEQQA2AhwMAQsgBCgCABBJQQBIBEAgBCgCGEEIaiAEKAIAEBggBCgCABAcIARBADYCHAwBCyAEIAQoAhgQlQIiADYCBCAARQRAIAQoAgAQHCAEQQA2AhwMAQsgBCgCBCAEKAIANgIUIAQgBCgCBDYCHAsgBCgCHCEAIARBIGokACAAC6YBAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE3AxAgBSACNgIMIAUgAzYCCCAFIAQ2AgQgBSAFKAIYIAUpAxAgBSgCDEEAEEUiADYCAAJAIABFBEAgBUF/NgIcDAELIAUoAggEQCAFKAIIIAUoAgAvAQhBCHU6AAALIAUoAgQEQCAFKAIEIAUoAgAoAkQ2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAAC6UEAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE3AyAgBSACNgIcIAUgAzoAGyAFIAQ2AhQCQCAFKAIoIAUpAyBBAEEAEEVFBEAgBUF/NgIsDAELIAUoAigoAhhBAnEEQCAFKAIoQQhqQRlBABAVIAVBfzYCLAwBCyAFIAUoAigoAkAgBSkDIKdBBHRqNgIQIAUCfyAFKAIQKAIABEAgBSgCECgCAC8BCEEIdQwBC0EDCzoACyAFAn8gBSgCECgCAARAIAUoAhAoAgAoAkQMAQtBgIDYjXgLNgIEQQEhACAFIAUtABsgBS0AC0YEfyAFKAIUIAUoAgRHBUEBC0EBcTYCDAJAIAUoAgwEQCAFKAIQKAIERQRAIAUoAhAoAgAQRiEAIAUoAhAgADYCBCAARQRAIAUoAihBCGpBDkEAEBUgBUF/NgIsDAQLCyAFKAIQKAIEIAUoAhAoAgQvAQhB/wFxIAUtABtBCHRyOwEIIAUoAhAoAgQgBSgCFDYCRCAFKAIQKAIEIgAgACgCAEEQcjYCAAwBCyAFKAIQKAIEBEAgBSgCECgCBCIAIAAoAgBBb3E2AgACQCAFKAIQKAIEKAIARQRAIAUoAhAoAgQQOiAFKAIQQQA2AgQMAQsgBSgCECgCBCAFKAIQKAIELwEIQf8BcSAFLQALQQh0cjsBCCAFKAIQKAIEIAUoAgQ2AkQLCwsgBUEANgIsCyAFKAIsIQAgBUEwaiQAIAAL7QQCAX8BfiMAQUBqIgQkACAEIAA2AjQgBEJ/NwMoIAQgATYCJCAEIAI2AiAgBCADNgIcAkAgBCgCNCgCGEECcQRAIAQoAjRBCGpBGUEAEBUgBEJ/NwM4DAELIAQgBCgCNCkDMDcDECAEKQMoQn9RBEAgBEJ/NwMIIAQoAhxBgMAAcQRAIAQgBCgCNCAEKAIkIAQoAhxBABBVNwMICyAEKQMIQn9RBEAgBCAEKAI0EJ4CIgU3AwggBUIAUwRAIARCfzcDOAwDCwsgBCAEKQMINwMoCwJAIAQoAiRFDQAgBCgCNCAEKQMoIAQoAiQgBCgCHBCdAkUNACAEKAI0KQMwIAQpAxBSBEAgBCgCNCgCQCAEKQMop0EEdGoQYiAEKAI0IAQpAxA3AzALIARCfzcDOAwBCyAEKAI0KAJAIAQpAyinQQR0ahBjAkAgBCgCNCgCQCAEKQMop0EEdGooAgBFDQAgBCgCNCgCQCAEKQMop0EEdGooAgQEQCAEKAI0KAJAIAQpAyinQQR0aigCBCgCAEEBcQ0BCyAEKAI0KAJAIAQpAyinQQR0aigCBEUEQCAEKAI0KAJAIAQpAyinQQR0aigCABBGIQAgBCgCNCgCQCAEKQMop0EEdGogADYCBCAARQRAIAQoAjRBCGpBDkEAEBUgBEJ/NwM4DAMLCyAEKAI0KAJAIAQpAyinQQR0aigCBEF+NgIQIAQoAjQoAkAgBCkDKKdBBHRqKAIEIgAgACgCAEEBcjYCAAsgBCgCNCgCQCAEKQMop0EEdGogBCgCIDYCCCAEIAQpAyg3AzgLIAQpAzghBSAEQUBrJAAgBQuFAgEBfyMAQSBrIgIkACACIAA2AhggAiABNwMQAkAgAikDECACKAIYKQMwWgRAIAIoAhhBCGpBEkEAEBUgAkF/NgIcDAELIAIoAhgoAhhBAnEEQCACKAIYQQhqQRlBABAVIAJBfzYCHAwBCyACIAIoAhggAikDEEEAIAIoAhhBCGoQTyIANgIMIABFBEAgAkF/NgIcDAELIAIoAhgoAlAgAigCDCACKAIYQQhqEFlBAXFFBEAgAkF/NgIcDAELIAIoAhggAikDEBCgAgRAIAJBfzYCHAwBCyACKAIYKAJAIAIpAxCnQQR0akEBOgAMIAJBADYCHAsgAigCHCEAIAJBIGokACAAC5gCAAJAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQCABQXdqDgoAAQIJAwQFBgkHCAsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgACACQRYRBAALDwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC0oBA38gACgCACwAAEFQakEKSQRAA0AgACgCACIBLAAAIQMgACABQQFqNgIAIAMgAkEKbGpBUGohAiABLAABQVBqQQpJDQALCyACC38CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEKQBIQAgASgCAEFAags2AgAgAA8LIAEgAkGCeGo2AgAgA0L/////////h4B/g0KAgICAgICA8D+EvwUgAAsLEgAgAEUEQEEADwsgACABELQCC+UBAQJ/IAJBAEchAwJAAkACQCACRQ0AIABBA3FFDQAgAUH/AXEhBANAIAAtAAAgBEYNAiAAQQFqIQAgAkF/aiICQQBHIQMgAkUNASAAQQNxDQALCyADRQ0BCwJAIAAtAAAgAUH/AXFGDQAgAkEESQ0AIAFB/wFxQYGChAhsIQMDQCAAKAIAIANzIgRBf3MgBEH//ft3anFBgIGChHhxDQEgAEEEaiEAIAJB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HAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBkiADYCDAJAIABFBEAgAygCEEEBQbScASgCABAVIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEH+fWo2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEF/aiIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5gQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAgxBBWsgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcUVFNgIQIAIoAihBAEEAIAIoAhAQVyACKAIoKAIIIAIoAigoAhRBBGtqIAIoAhw6AAAgAigCKCgCCCACKAIoKAIUQQNraiACKAIcQQh2OgAAIAIoAigoAgggAigCKCgCFEECa2ogAigCHEF/czoAACACKAIoKAIIIAIoAigoAhRBAWtqIAIoAhxBf3NBCHY6AAAgAigCKCgCABAdIAIoAhgEQCACKAIYIAIoAhxLBEAgAiACKAIcNgIYCyACKAIoKAIAKAIMIAIoAigoAjggAigCKCgCXGogAigCGBAaGiACKAIoKAIAIgAgAigCGCAAKAIMajYCDCACKAIoKAIAIgAgACgCECACKAIYazYCECACKAIoKAIAIgAgAigCGCAAKAIUajYCFCACKAIoIgAgAigCGCAAKAJcajYCXCACIAIoAhwgAigCGGs2AhwLIAIoAhwEQCACKAIoKAIAIAIoAigoAgAoAgwgAigCHBBzGiACKAIoKAIAIgAgAigCHCAAKAIMajYCDCACKAIoKAIAIgAgACgCECACKAIcazYCECACKAIoKAIAIgAgAigCHCAAKAIUajYCFAsgAigCEEUNAQsLIAIgAigCDCACKAIoKAIAKAIEazYCDCACKAIMBEACQCACKAIMIAIoAigoAixPBEAgAigCKEECNgKwLSACKAIoKAI4IAIoAigoAgAoAgAgAigCKCgCLGsgAigCKCgCLBAaGiACKAIoIAIoAigoAiw2AmwMAQsgAigCKCgCPCACKAIoKAJsayACKAIMTQRAIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBoaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsLIAIoAigoAjggAigCKCgCbGogAigCKCgCACgCACACKAIMayACKAIMEBoaIAIoAigiACACKAIMIAAoAmxqNgJsCyACKAIoIAIoAigoAmw2AlwgAigCKCIBAn8gAigCDCACKAIoKAIsIAIoAigoArQta0sEQCACKAIoKAIsIAIoAigoArQtawwBCyACKAIMCyABKAK0LWo2ArQtCyACKAIoKALALSACKAIoKAJsSQRAIAIoAiggAigCKCgCbDYCwC0LAkAgAigCEARAIAJBAzYCLAwBCwJAIAIoAiRFDQAgAigCJEEERg0AIAIoAigoAgAoAgQNACACKAIoKAJsIAIoAigoAlxHDQAgAkEBNgIsDAELIAIgAigCKCgCPCACKAIoKAJsa0EBazYCFAJAIAIoAigoAgAoAgQgAigCFE0NACACKAIoKAJcIAIoAigoAixIDQAgAigCKCIAIAAoAlwgAigCKCgCLGs2AlwgAigCKCIAIAAoAmwgAigCKCgCLGs2AmwgAigCKCgCOCACKAIoKAI4IAIoAigoAixqIAIoAigoAmwQGhogAigCKCgCsC1BAkkEQCACKAIoIgAgACgCsC1BAWo2ArAtCyACIAIoAigoAiwgAigCFGo2AhQLIAIoAhQgAigCKCgCACgCBEsEQCACIAIoAigoAgAoAgQ2AhQLIAIoAhQEQCACKAIoKAIAIAIoAigoAjggAigCKCgCbGogAigCFBBzGiACKAIoIgAgAigCFCAAKAJsajYCbAsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCyACIAIoAigoArwtQSpqQQN1NgIUIAICf0H//wMgAigCKCgCDCACKAIUa0H//wNLDQAaIAIoAigoAgwgAigCFGsLNgIUIAICfyACKAIUIAIoAigoAixLBEAgAigCKCgCLAwBCyACKAIUCzYCICACIAIoAigoAmwgAigCKCgCXGs2AhgCQCACKAIYIAIoAiBJBEAgAigCGEUEQCACKAIkQQRHDQILIAIoAiRFDQEgAigCKCgCACgCBA0BIAIoAhggAigCFEsNAQsgAgJ/IAIoAhggAigCFEsEQCACKAIUDAELIAIoAhgLNgIcIAICf0EAIAIoAiRBBEcNABpBACACKAIoKAIAKAIEDQAaIAIoAhwgAigCGEYLQQFxRUU2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBXIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHQsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHQEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCABKAIIKAIcKAJAIAEoAggoAiQRBAALIAEoAggoAhwoAjgEQCABKAIIKAIoIAEoAggoAhwoAjggASgCCCgCJBEEAAsgASgCCCgCKCABKAIIKAIcIAEoAggoAiQRBAAgASgCCEEANgIcIAFBfUEAIAEoAgRB8QBGGzYCDAsgASgCDCEAIAFBEGokACAAC+sXAQJ/IwBB8ABrIgMgADYCbCADIAE2AmggAyACNgJkIANBfzYCXCADIAMoAmgvAQI2AlQgA0EANgJQIANBBzYCTCADQQQ2AkggAygCVEUEQCADQYoBNgJMIANBAzYCSAsgA0EANgJgA0AgAygCYCADKAJkSkUEQCADIAMoAlQ2AlggAyADKAJoIAMoAmBBAWpBAnRqLwECNgJUIAMgAygCUEEBaiIANgJQAkACQCAAIAMoAkxODQAgAygCWCADKAJURw0ADAELAkAgAygCUCADKAJISARAA0AgAyADKAJsQfwUaiADKAJYQQJ0ai8BAjYCRAJAIAMoAmwoArwtQRAgAygCRGtKBEAgAyADKAJsQfwUaiADKAJYQQJ0ai8BADYCQCADKAJsIgAgAC8BuC0gAygCQEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAJAQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCREEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsQfwUaiADKAJYQQJ0ai8BACADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCRCAAKAK8LWo2ArwtCyADIAMoAlBBf2oiADYCUCAADQALDAELAkAgAygCWARAIAMoAlggAygCXEcEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwECNgI8AkAgAygCbCgCvC1BECADKAI8a0oEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwEANgI4IAMoAmwiACAALwG4LSADKAI4Qf//A3EgAygCbCgCvC10cjsBuC0gAygCbC8BuC1B/wFxIQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbC8BuC1BCHUhASADKAJsKAIIIQIgAygCbCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJsIAMoAjhB//8DcUEQIAMoAmwoArwta3U7AbgtIAMoAmwiACAAKAK8LSADKAI8QRBrajYCvC0MAQsgAygCbCIAIAAvAbgtIAMoAmxB/BRqIAMoAlhBAnRqLwEAIAMoAmwoArwtdHI7AbgtIAMoAmwiACADKAI8IAAoArwtajYCvC0LIAMgAygCUEF/ajYCUAsgAyADKAJsLwG+FTYCNAJAIAMoAmwoArwtQRAgAygCNGtKBEAgAyADKAJsLwG8FTYCMCADKAJsIgAgAC8BuC0gAygCMEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIwQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCNEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwG8FSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCNCAAKAK8LWo2ArwtCyADQQI2AiwCQCADKAJsKAK8LUEQIAMoAixrSgRAIAMgAygCUEEDazYCKCADKAJsIgAgAC8BuC0gAygCKEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIoQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAiwgACgCvC1qNgK8LQsMAQsCQCADKAJQQQpMBEAgAyADKAJsLwHCFTYCJAJAIAMoAmwoArwtQRAgAygCJGtKBEAgAyADKAJsLwHAFTYCICADKAJsIgAgAC8BuC0gAygCIEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIgQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHAFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCJCAAKAK8LWo2ArwtCyADQQM2AhwCQCADKAJsKAK8LUEQIAMoAhxrSgRAIAMgAygCUEEDazYCGCADKAJsIgAgAC8BuC0gAygCGEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIYQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCHEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAhwgACgCvC1qNgK8LQsMAQsgAyADKAJsLwHGFTYCFAJAIAMoAmwoArwtQRAgAygCFGtKBEAgAyADKAJsLwHEFTYCECADKAJsIgAgAC8BuC0gAygCEEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIQQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHEFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCFCAAKAK8LWo2ArwtCyADQQc2AgwCQCADKAJsKAK8LUEQIAMoAgxrSgRAIAMgAygCUEELazYCCCADKAJsIgAgAC8BuC0gAygCCEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh1IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIIQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQtrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAgwgACgCvC1qNgK8LQsLCwsgA0EANgJQIAMgAygCWDYCXAJAIAMoAlRFBEAgA0GKATYCTCADQQM2AkgMAQsCQCADKAJYIAMoAlRGBEAgA0EGNgJMIANBAzYCSAwBCyADQQc2AkwgA0EENgJICwsLIAMgAygCYEEBajYCYAwBCwsLkQQBAX8jAEEwayIDIAA2AiwgAyABNgIoIAMgAjYCJCADQX82AhwgAyADKAIoLwECNgIUIANBADYCECADQQc2AgwgA0EENgIIIAMoAhRFBEAgA0GKATYCDCADQQM2AggLIAMoAiggAygCJEEBakECdGpB//8DOwECIANBADYCIANAIAMoAiAgAygCJEpFBEAgAyADKAIUNgIYIAMgAygCKCADKAIgQQFqQQJ0ai8BAjYCFCADIAMoAhBBAWoiADYCEAJAAkAgACADKAIMTg0AIAMoAhggAygCFEcNAAwBCwJAIAMoAhAgAygCCEgEQCADKAIsQfwUaiADKAIYQQJ0aiIAIAMoAhAgAC8BAGo7AQAMAQsCQCADKAIYBEAgAygCGCADKAIcRwRAIAMoAiwgAygCGEECdGpB/BRqIgAgAC8BAEEBajsBAAsgAygCLCIAIABBvBVqLwEAQQFqOwG8FQwBCwJAIAMoAhBBCkwEQCADKAIsIgAgAEHAFWovAQBBAWo7AcAVDAELIAMoAiwiACAAQcQVai8BAEEBajsBxBULCwsgA0EANgIQIAMgAygCGDYCHAJAIAMoAhRFBEAgA0GKATYCDCADQQM2AggMAQsCQCADKAIYIAMoAhRGBEAgA0EGNgIMIANBAzYCCAwBCyADQQc2AgwgA0EENgIICwsLIAMgAygCIEEBajYCIAwBCwsLpxIBAn8jAEHQAGsiAyAANgJMIAMgATYCSCADIAI2AkQgA0EANgI4IAMoAkwoAqAtBEADQCADIAMoAkwoAqQtIAMoAjhBAXRqLwEANgJAIAMoAkwoApgtIQAgAyADKAI4IgFBAWo2AjggAyAAIAFqLQAANgI8AkAgAygCQEUEQCADIAMoAkggAygCPEECdGovAQI2AiwCQCADKAJMKAK8LUEQIAMoAixrSgRAIAMgAygCSCADKAI8QQJ0ai8BADYCKCADKAJMIgAgAC8BuC0gAygCKEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh1IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIoQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjxBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIsIAAoArwtajYCvC0LDAELIAMgAygCPC0AgFk2AjQgAyADKAJIIAMoAjRBgQJqQQJ0ai8BAjYCJAJAIAMoAkwoArwtQRAgAygCJGtKBEAgAyADKAJIIAMoAjRBgQJqQQJ0ai8BADYCICADKAJMIgAgAC8BuC0gAygCIEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh1IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIgQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjRBgQJqQQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCJCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBwOUAaigCADYCMCADKAIwBEAgAyADKAI8IAMoAjRBAnRBsOgAaigCAGs2AjwgAyADKAIwNgIcAkAgAygCTCgCvC1BECADKAIca0oEQCADIAMoAjw2AhggAygCTCIAIAAvAbgtIAMoAhhB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCGEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCPEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIcIAAoArwtajYCvC0LCyADIAMoAkBBf2o2AkAgAwJ/IAMoAkBBgAJJBEAgAygCQC0AgFUMAQsgAygCQEEHdkGAAmotAIBVCzYCNCADIAMoAkQgAygCNEECdGovAQI2AhQCQCADKAJMKAK8LUEQIAMoAhRrSgRAIAMgAygCRCADKAI0QQJ0ai8BADYCECADKAJMIgAgAC8BuC0gAygCEEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh1IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIQQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJEIAMoAjRBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIUIAAoArwtajYCvC0LIAMgAygCNEECdEHA5gBqKAIANgIwIAMoAjAEQCADIAMoAkAgAygCNEECdEGw6QBqKAIAazYCQCADIAMoAjA2AgwCQCADKAJMKAK8LUEQIAMoAgxrSgRAIAMgAygCQDYCCCADKAJMIgAgAC8BuC0gAygCCEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh1IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIIQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJAQf//A3EgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgwgACgCvC1qNgK8LQsLCyADKAI4IAMoAkwoAqAtSQ0ACwsgAyADKAJILwGCCDYCBAJAIAMoAkwoArwtQRAgAygCBGtKBEAgAyADKAJILwGACDYCACADKAJMIgAgAC8BuC0gAygCAEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh1IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIAQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCBEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJILwGACCADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCBCAAKAK8LWo2ArwtCwuqDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACIDIAFqIQEgACADayIAQcycASgCAEcEQEHInAEoAgAhBCADQf8BTQRAIAAoAggiBCADQQN2IgNBA3RB4JwBakcaIAQgACgCDCICRgRAQbicAUG4nAEoAgBBfiADd3E2AgAMAwsgBCACNgIMIAIgBDYCCAwCCyAAKAIYIQYCQCAAIAAoAgwiAkcEQCAEIAAoAggiA00EQCADKAIMGgsgAyACNgIMIAIgAzYCCAwBCwJAIABBFGoiAygCACIEDQAgAEEQaiIDKAIAIgQNAEEAIQIMAQsDQCADIQcgBCICQRRqIgMoAgAiBA0AIAJBEGohAyACKAIQIgQNAAsgB0EANgIACyAGRQ0BAkAgACAAKAIcIgNBAnRB6J4BaiIEKAIARgRAIAQgAjYCACACDQFBvJwBQbycASgCAEF+IAN3cTYCAAwDCyAGQRBBFCAGKAIQIABGG2ogAjYCACACRQ0CCyACIAY2AhggACgCECIDBEAgAiADNgIQIAMgAjYCGAsgACgCFCIDRQ0BIAIgAzYCFCADIAI2AhgMAQsgBSgCBCICQQNxQQNHDQBBwJwBIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCwJAIAUoAgQiAkECcUUEQCAFQdCcASgCAEYEQEHQnAEgADYCAEHEnAFBxJwBKAIAIAFqIgE2AgAgACABQQFyNgIEIABBzJwBKAIARw0DQcCcAUEANgIAQcycAUEANgIADwsgBUHMnAEoAgBGBEBBzJwBIAA2AgBBwJwBQcCcASgCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPC0HInAEoAgAhAyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgJBA3RB4JwBakcaIAQgBSgCDCIDRgRAQbicAUG4nAEoAgBBfiACd3E2AgAMAgsgBCADNgIMIAMgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiAkcEQCADIAUoAggiA00EQCADKAIMGgsgAyACNgIMIAIgAzYCCAwBCwJAIAVBFGoiAygCACIEDQAgBUEQaiIDKAIAIgQNAEEAIQIMAQsDQCADIQcgBCICQRRqIgMoAgAiBA0AIAJBEGohAyACKAIQIgQNAAsgB0EANgIACyAGRQ0AAkAgBSAFKAIcIgNBAnRB6J4BaiIEKAIARgRAIAQgAjYCACACDQFBvJwBQbycASgCAEF+IAN3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAjYCACACRQ0BCyACIAY2AhggBSgCECIDBEAgAiADNgIQIAMgAjYCGAsgBSgCFCIDRQ0AIAIgAzYCFCADIAI2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHMnAEoAgBHDQFBwJwBIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQQN2IgJBA3RB4JwBaiEBAn9BuJwBKAIAIgNBASACdCICcUUEQEG4nAEgAiADcjYCACABDAELIAEoAggLIQMgASAANgIIIAMgADYCDCAAIAE2AgwgACADNgIIDwsgAEIANwIQIAACf0EAIAFBCHYiAkUNABpBHyABQf///wdLDQAaIAIgAkGA/j9qQRB2QQhxIgJ0IgMgA0GA4B9qQRB2QQRxIgN0IgQgBEGAgA9qQRB2QQJxIgR0QQ92IAIgA3IgBHJrIgJBAXQgASACQRVqdkEBcXJBHGoLIgM2AhwgA0ECdEHongFqIQICQAJAQbycASgCACIEQQEgA3QiB3FFBEBBvJwBIAQgB3I2AgAgAiAANgIAIAAgAjYCGAwBCyABQQBBGSADQQF2ayADQR9GG3QhAyACKAIAIQIDQCACIgQoAgRBeHEgAUYNAiADQR12IQIgA0EBdCEDIAQgAkEEcWoiB0EQaigCACICDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC5cCAQR/IwBBEGsiASAANgIMAkAgASgCDCgCvC1BEEYEQCABKAIMLwG4LUH/AXEhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMLwG4LUEIdSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgxBADsBuC0gASgCDEEANgK8LQwBCyABKAIMKAK8LUEITgRAIAEoAgwvAbgtIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDCIAIAAvAbgtQQh1OwG4LSABKAIMIgAgACgCvC1BCGs2ArwtCwsL7wEBBH8jAEEQayIBIAA2AgwCQCABKAIMKAK8LUEISgRAIAEoAgwvAbgtQf8BcSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwvAbgtQQh1IQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAMAQsgASgCDCgCvC1BAEoEQCABKAIMLwG4LSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAACwsgASgCDEEAOwG4LSABKAIMQQA2ArwtC/wBAQF/IwBBEGsiASAANgIMIAFBADYCCANAIAEoAghBngJORQRAIAEoAgxBlAFqIAEoAghBAnRqQQA7AQAgASABKAIIQQFqNgIIDAELCyABQQA2AggDQCABKAIIQR5ORQRAIAEoAgxBiBNqIAEoAghBAnRqQQA7AQAgASABKAIIQQFqNgIIDAELCyABQQA2AggDQCABKAIIQRNORQRAIAEoAgxB/BRqIAEoAghBAnRqQQA7AQAgASABKAIIQQFqNgIIDAELCyABKAIMQQE7AZQJIAEoAgxBADYCrC0gASgCDEEANgKoLSABKAIMQQA2ArAtIAEoAgxBADYCoC0LIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAWIAFBEGokAAvpAQEBfyMAQTBrIgIgADYCJCACIAE3AxggAkIANwMQIAIgAigCJCkDCEIBfTcDCAJAA0AgAikDECACKQMIVARAIAIgAikDECACKQMIIAIpAxB9QgGIfDcDAAJAIAIoAiQoAgQgAikDAKdBA3RqKQMAIAIpAxhWBEAgAiACKQMAQgF9NwMIDAELAkAgAikDACACKAIkKQMIUgRAIAIoAiQoAgQgAikDAEIBfKdBA3RqKQMAIAIpAxhYDQELIAIgAikDADcDKAwECyACIAIpAwBCAXw3AxALDAELCyACIAIpAxA3AygLIAIpAygLpwEBAX8jAEEwayIEJAAgBCAANgIoIAQgATYCJCAEIAI3AxggBCADNgIUIAQgBCgCKCkDOCAEKAIoKQMwIAQoAiQgBCkDGCAEKAIUEI0BNwMIAkAgBCkDCEIAUwRAIARBfzYCLAwBCyAEKAIoIAQpAwg3AzggBCgCKCAEKAIoKQM4ELsBIQIgBCgCKCACNwNAIARBADYCLAsgBCgCLCEAIARBMGokACAAC+sBAQF/IwBBIGsiAyQAIAMgADYCGCADIAE3AxAgAyACNgIMAkAgAykDECADKAIYKQMQVARAIANBAToAHwwBCyADIAMoAhgoAgAgAykDEEIEhqcQTSIANgIIIABFBEAgAygCDEEOQQAQFSADQQA6AB8MAQsgAygCGCADKAIINgIAIAMgAygCGCgCBCADKQMQQgF8QgOGpxBNIgA2AgQgAEUEQCADKAIMQQ5BABAVIANBADoAHwwBCyADKAIYIAMoAgQ2AgQgAygCGCADKQMQNwMQIANBAToAHwsgAy0AH0EBcSEAIANBIGokACAAC9ACAQF/IwBBMGsiBCQAIAQgADYCKCAEIAE3AyAgBCACNgIcIAQgAzYCGAJAAkAgBCgCKA0AIAQpAyBCAFgNACAEKAIYQRJBABAVIARBADYCLAwBCyAEIAQoAiggBCkDICAEKAIcIAQoAhgQTiIANgIMIABFBEAgBEEANgIsDAELIARBGBAZIgA2AhQgAEUEQCAEKAIYQQ5BABAVIAQoAgwQNCAEQQA2AiwMAQsgBCgCFCAEKAIMNgIQIAQoAhRBADYCFEEAEAEhACAEKAIUIAA2AgwjAEEQayIAIAQoAhQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggBEECIAQoAhQgBCgCGBCQASIANgIQIABFBEAgBCgCFCgCEBA0IAQoAhQQFiAEQQA2AiwMAQsgBCAEKAIQNgIsCyAEKAIsIQAgBEEwaiQAIAALqQEBAX8jAEEwayIEJAAgBCAANgIoIAQgATcDICAEIAI2AhwgBCADNgIYAkAgBCgCKEUEQCAEKQMgQgBWBEAgBCgCGEESQQAQFSAEQQA2AiwMAgsgBEEAQgAgBCgCHCAEKAIYEL4BNgIsDAELIAQgBCgCKDYCCCAEIAQpAyA3AxAgBCAEQQhqQgEgBCgCHCAEKAIYEL4BNgIsCyAEKAIsIQAgBEEwaiQAIAALRgEBfyMAQSBrIgMkACADIAA2AhwgAyABNwMQIAMgAjYCDCADKAIcIAMpAxAgAygCDCADKAIcQQhqEE8hACADQSBqJAAgAAuNAgEBfyMAQTBrIgMkACADIAA2AiggAyABOwEmIAMgAjYCICADIAMoAigoAjQgA0EeaiADLwEmQYAGQQAQXzYCEAJAIAMoAhBFDQAgAy8BHkEFSA0AAkAgAygCEC0AAEEBRg0ADAELIAMgAygCECADLwEerRAqIgA2AhQgAEUEQAwBCyADKAIUEIsBGiADIAMoAhQQKzYCGCADKAIgEIgBIAMoAhhGBEAgAyADKAIUEDA9AQ4gAyADKAIUIAMvAQ6tEB8gAy8BDkGAEEEAEFE2AgggAygCCARAIAMoAiAQJiADIAMoAgg2AiALCyADKAIUEBcLIAMgAygCIDYCLCADKAIsIQAgA0EwaiQAIAALuRECAX8BfiMAQYABayIFJAAgBSAANgJ0IAUgATYCcCAFIAI2AmwgBSADOgBrIAUgBDYCZCAFIAUoAmxBAEc6AB0gBUEeQS4gBS0Aa0EBcRs2AigCQAJAIAUoAmwEQCAFKAJsEDAgBSgCKK1UBEAgBSgCZEETQQAQFSAFQn83A3gMAwsMAQsgBSAFKAJwIAUoAiitIAVBMGogBSgCZBBBIgA2AmwgAEUEQCAFQn83A3gMAgsLIAUoAmxCBBAfIQBBxdMAQcrTACAFLQBrQQFxGygAACAAKAAARwRAIAUoAmRBE0EAEBUgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwBCyAFKAJ0EF0CQCAFLQBrQQFxRQRAIAUoAmwQHiEAIAUoAnQgADsBCAwBCyAFKAJ0QQA7AQgLIAUoAmwQHiEAIAUoAnQgADsBCiAFKAJsEB4hACAFKAJ0IAA7AQwgBSgCbBAeQf//A3EhACAFKAJ0IAA2AhAgBSAFKAJsEB47AS4gBSAFKAJsEB47ASwgBS8BLiAFLwEsEI0DIQAgBSgCdCAANgIUIAUoAmwQKyEAIAUoAnQgADYCGCAFKAJsECutIQYgBSgCdCAGNwMgIAUoAmwQK60hBiAFKAJ0IAY3AyggBSAFKAJsEB47ASIgBSAFKAJsEB47AR4CQCAFLQBrQQFxBEAgBUEAOwEgIAUoAnRBADYCPCAFKAJ0QQA7AUAgBSgCdEEANgJEIAUoAnRCADcDSAwBCyAFIAUoAmwQHjsBICAFKAJsEB5B//8DcSEAIAUoAnQgADYCPCAFKAJsEB4hACAFKAJ0IAA7AUAgBSgCbBArIQAgBSgCdCAANgJEIAUoAmwQK60hBiAFKAJ0IAY3A0gLAn8jAEEQayIAIAUoAmw2AgwgACgCDC0AAEEBcUULBEAgBSgCZEEUQQAQFSAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAELAkAgBSgCdC8BDEEBcQRAIAUoAnQvAQxBwABxBEAgBSgCdEH//wM7AVIMAgsgBSgCdEEBOwFSDAELIAUoAnRBADsBUgsgBSgCdEEANgIwIAUoAnRBADYCNCAFKAJ0QQA2AjggBSAFLwEgIAUvASIgBS8BHmpqNgIkAkAgBS0AHUEBcQRAIAUoAmwQMCAFKAIkrVQEQCAFKAJkQRVBABAVIAVCfzcDeAwDCwwBCyAFKAJsEBcgBSAFKAJwIAUoAiStQQAgBSgCZBBBIgA2AmwgAEUEQCAFQn83A3gMAgsLIAUvASIEQCAFKAJsIAUoAnAgBS8BIkEBIAUoAmQQiQEhACAFKAJ0IAA2AjAgBSgCdCgCMEUEQAJ/IwBBEGsiACAFKAJkNgIMIAAoAgwoAgBBEUYLBEAgBSgCZEEVQQAQFQsgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFKAJ0LwEMQYAQcQRAIAUoAnQoAjBBAhA7QQVGBEAgBSgCZEEVQQAQFSAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAMLCwsgBS8BHgRAIAUgBSgCbCAFKAJwIAUvAR5BACAFKAJkEGA2AhggBSgCGEUEQCAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAILIAUoAhggBS8BHkGAAkGABCAFLQBrQQFxGyAFKAJ0QTRqIAUoAmQQhAFBAXFFBEAgBSgCGBAWIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsgBSgCGBAWIAUtAGtBAXEEQCAFKAJ0QQE6AAQLCyAFLwEgBEAgBSgCbCAFKAJwIAUvASBBACAFKAJkEIkBIQAgBSgCdCAANgI4IAUoAnQoAjhFBEAgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFKAJ0LwEMQYAQcQRAIAUoAnQoAjhBAhA7QQVGBEAgBSgCZEEVQQAQFSAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAMLCwsgBSgCdEH14AEgBSgCdCgCMBDBASEAIAUoAnQgADYCMCAFKAJ0QfXGASAFKAJ0KAI4EMEBIQAgBSgCdCAANgI4AkACQCAFKAJ0KQMoQv////8PUQ0AIAUoAnQpAyBC/////w9RDQAgBSgCdCkDSEL/////D1INAQsgBSAFKAJ0KAI0IAVBFmpBAUGAAkGABCAFLQBrQQFxGyAFKAJkEF82AgwgBSgCDEUEQCAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAILIAUgBSgCDCAFLwEWrRAqIgA2AhAgAEUEQCAFKAJkQQ5BABAVIAUtAB1BAXFFBEAgBSgCbBAXCyAFQn83A3gMAgsCQCAFKAJ0KQMoQv////8PUQRAIAUoAhAQMSEGIAUoAnQgBjcDKAwBCyAFLQBrQQFxBEAgBSgCEBDMAQsLIAUoAnQpAyBC/////w9RBEAgBSgCEBAxIQYgBSgCdCAGNwMgCyAFLQBrQQFxRQRAIAUoAnQpA0hC/////w9RBEAgBSgCEBAxIQYgBSgCdCAGNwNICyAFKAJ0KAI8Qf//A0YEQCAFKAIQECshACAFKAJ0IAA2AjwLCyAFKAIQEEhBAXFFBEAgBSgCZEEVQQAQFSAFKAIQEBcgBS0AHUEBcUUEQCAFKAJsEBcLIAVCfzcDeAwCCyAFKAIQEBcLAn8jAEEQayIAIAUoAmw2AgwgACgCDC0AAEEBcUULBEAgBSgCZEEUQQAQFSAFLQAdQQFxRQRAIAUoAmwQFwsgBUJ/NwN4DAELIAUtAB1BAXFFBEAgBSgCbBAXCyAFKAJ0KQNIQv///////////wBWBEAgBSgCZEEEQRYQFSAFQn83A3gMAQsgBSgCdCAFKAJkEIwDQQFxRQRAIAVCfzcDeAwBCyAFKAJ0KAI0EIMBIQAgBSgCdCAANgI0IAUgBSgCKCAFKAIkaq03A3gLIAUpA3ghBiAFQYABaiQAIAYLzQEBAX8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAyADQQxqQaygARAKNgIAAkAgAygCAEUEQCADKAIEQSE7AQAgAygCCEEAOwEADAELIAMoAgAoAhRB0ABIBEAgAygCAEHQADYCFAsgAygCBCADKAIAKAIMIAMoAgAoAhRBCXQgAygCACgCEEEFdGpBoMB9amo7AQAgAygCCCADKAIAKAIIQQt0IAMoAgAoAgRBBXRqIAMoAgAoAgBBAXVqOwEACyADQRBqJAALgwMBAX8jAEEgayIDJAAgAyAAOwEaIAMgATYCFCADIAI2AhAgAyADKAIUIANBCGpBwABBABBHIgA2AgwCQCAARQRAIANBADYCHAwBCyADKAIIQQVqQf//A0sEQCADKAIQQRJBABAVIANBADYCHAwBCyADQQAgAygCCEEFaq0QKiIANgIEIABFBEAgAygCEEEOQQAQFSADQQA2AhwMAQsgAygCBEEBEIoBIAMoAgQgAygCFBCIARAhIAMoAgQgAygCDCADKAIIEEACfyMAQRBrIgAgAygCBDYCDCAAKAIMLQAAQQFxRQsEQCADKAIQQRRBABAVIAMoAgQQFyADQQA2AhwMAQsgAyADLwEaAn8jAEEQayIAIAMoAgQ2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IAC6dB//8DcQsCfyMAQRBrIgAgAygCBDYCDCAAKAIMKAIEC0GABhBQNgIAIAMoAgQQFyADIAMoAgA2AhwLIAMoAhwhACADQSBqJAAgAAu0AgEBfyMAQTBrIgMkACADIAA2AiggAyABNwMgIAMgAjYCHAJAIAMpAyBQBEAgA0EBOgAvDAELIAMgAygCKCkDECADKQMgfDcDCAJAIAMpAwggAykDIFoEQCADKQMIQv////8AWA0BCyADKAIcQQ5BABAVIANBADoALwwBCyADIAMoAigoAgAgAykDCKdBBHQQTSIANgIEIABFBEAgAygCHEEOQQAQFSADQQA6AC8MAQsgAygCKCADKAIENgIAIAMgAygCKCkDCDcDEANAIAMpAxAgAykDCFpFBEAgAygCKCgCACADKQMQp0EEdGoQjAEgAyADKQMQQgF8NwMQDAELCyADKAIoIAMpAwgiATcDECADKAIoIAE3AwggA0EBOgAvCyADLQAvQQFxIQAgA0EwaiQAIAALzAEBAX8jAEEgayICJAAgAiAANwMQIAIgATYCDCACQTAQGSIBNgIIAkAgAUUEQCACKAIMQQ5BABAVIAJBADYCHAwBCyACKAIIQQA2AgAgAigCCEIANwMQIAIoAghCADcDCCACKAIIQgA3AyAgAigCCEIANwMYIAIoAghBADYCKCACKAIIQQA6ACwgAigCCCACKQMQIAIoAgwQxQFBAXFFBEAgAigCCBAlIAJBADYCHAwBCyACIAIoAgg2AhwLIAIoAhwhASACQSBqJAAgAQu2BQEBfyMAQTBrIgIkACACIAA2AiggAiABNwMgAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELIAIgAigCKCgCQCACKQMgp0EEdGo2AhwCQCACKAIcKAIABEAgAigCHCgCAC0ABEEBcUUNAQsgAkEANgIsDAELIAIoAhwoAgApA0hCGnxC////////////AFYEQCACKAIoQQhqQQRBFhAVIAJBfzYCLAwBCyACKAIoKAIAIAIoAhwoAgApA0hCGnxBABAoQQBIBEAgAigCKEEIaiACKAIoKAIAEBggAkF/NgIsDAELIAIgAigCKCgCAEIEIAJBGGogAigCKEEIahBBIgA2AhQgAEUEQCACQX82AiwMAQsgAiACKAIUEB47ARIgAiACKAIUEB47ARAgAigCFBBIQQFxRQRAIAIoAhQQFyACKAIoQQhqQRRBABAVIAJBfzYCLAwBCyACKAIUEBcgAi8BEEEASgRAIAIoAigoAgAgAi8BEq1BARAoQQBIBEAgAigCKEEIakEEQbScASgCABAVIAJBfzYCLAwCCyACQQAgAigCKCgCACACLwEQQQAgAigCKEEIahBgNgIIIAIoAghFBEAgAkF/NgIsDAILIAIoAgggAi8BEEGAAiACQQxqIAIoAihBCGoQhAFBAXFFBEAgAigCCBAWIAJBfzYCLAwCCyACKAIIEBYgAigCDARAIAIgAigCDBCDATYCDCACKAIcKAIAKAI0IAIoAgwQhQEhACACKAIcKAIAIAA2AjQLCyACKAIcKAIAQQE6AAQCQCACKAIcKAIERQ0AIAIoAhwoAgQtAARBAXENACACKAIcKAIEIAIoAhwoAgAoAjQ2AjQgAigCHCgCBEEBOgAECyACQQA2AiwLIAIoAiwhACACQTBqJAAgAAsHACAAKAIAC4wBAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQgAkEANgIQAkAgAigCFEUEQCACQQA2AhwMAQsgAiACKAIUEBk2AgwgAigCDEUEQCACKAIQQQ5BABAVIAJBADYCHAwBCyACKAIMIAIoAhggAigCFBAaGiACIAIoAgw2AhwLIAIoAhwhACACQSBqJAAgAAsYAEGonAFCADcCAEGwnAFBADYCAEGonAELiAEBAX8jAEEgayIDJAAgAyAANgIUIAMgATYCECADIAI3AwgCQAJAIAMoAhQoAiRBAUYEQCADKQMIQv///////////wBYDQELIAMoAhRBDGpBEkEAEBUgA0J/NwMYDAELIAMgAygCFCADKAIQIAMpAwhBCxAiNwMYCyADKQMYIQIgA0EgaiQAIAILcwEBfyMAQSBrIgEkACABIAA2AhggAUIINwMQIAEgASgCGCkDECABKQMQfDcDCAJAIAEpAwggASgCGCkDEFQEQCABKAIYQQA6AAAgAUF/NgIcDAELIAEgASgCGCABKQMIEC02AhwLIAEoAhwaIAFBIGokAAsIAEEBQQwQewuWAQEBfyMAQSBrIgIgADYCGCACIAE3AxACQAJAAkAgAigCGC0AAEEBcUUNACACKAIYKQMQIAIpAxB8IAIpAxBUDQAgAigCGCkDECACKQMQfCACKAIYKQMIWA0BCyACKAIYQQA6AAAgAkEANgIcDAELIAIgAigCGCgCBCACKAIYKQMQp2o2AgwgAiACKAIMNgIcCyACKAIcCwcAIAAoAigLuQIBAX8jAEEQayICIAA2AgggAiABNgIEAkAgAigCCEGAAUkEQCACKAIEIAIoAgg6AAAgAkEBNgIMDAELIAIoAghBgBBJBEAgAigCBCACKAIIQQZ2QR9xQcABcjoAACACKAIEIAIoAghBP3FBgAFyOgABIAJBAjYCDAwBCyACKAIIQYCABEkEQCACKAIEIAIoAghBDHZBD3FB4AFyOgAAIAIoAgQgAigCCEEGdkE/cUGAAXI6AAEgAigCBCACKAIIQT9xQYABcjoAAiACQQM2AgwMAQsgAigCBCACKAIIQRJ2QQdxQfABcjoAACACKAIEIAIoAghBDHZBP3FBgAFyOgABIAIoAgQgAigCCEEGdkE/cUGAAXI6AAIgAigCBCACKAIIQT9xQYABcjoAAyACQQQ2AgwLIAIoAgwLXwEBfyMAQRBrIgEgADYCCAJAIAEoAghBgAFJBEAgAUEBNgIMDAELIAEoAghBgBBJBEAgAUECNgIMDAELIAEoAghBgIAESQRAIAFBAzYCDAwBCyABQQQ2AgwLIAEoAgwL/gIBAX8jAEEwayIEJAAgBCAANgIoIAQgATYCJCAEIAI2AiAgBCADNgIcIAQgBCgCKDYCGAJAIAQoAiRFBEAgBCgCIARAIAQoAiBBADYCAAsgBEEANgIsDAELIARBATYCECAEQQA2AgwDQCAEKAIMIAQoAiRPRQRAIAQgBCgCGCAEKAIMai0AAEEBdEGwzwBqLwEAENEBIAQoAhBqNgIQIAQgBCgCDEEBajYCDAwBCwsgBCAEKAIQEBkiADYCFCAARQRAIAQoAhxBDkEAEBUgBEEANgIsDAELIARBADYCCCAEQQA2AgwDQCAEKAIMIAQoAiRPRQRAIAQgBCgCGCAEKAIMai0AAEEBdEGwzwBqLwEAIAQoAhQgBCgCCGoQ0AEgBCgCCGo2AgggBCAEKAIMQQFqNgIMDAELCyAEKAIUIAQoAhBBAWtqQQA6AAAgBCgCIARAIAQoAiAgBCgCEEEBazYCAAsgBCAEKAIUNgIsCyAEKAIsIQAgBEEwaiQAIAALBwAgACgCGAvyCwEBfyMAQSBrIgMgADYCHCADIAE2AhggAyACNgIUIAMgAygCHEEIdkGA/gNxIAMoAhxBGHZqIAMoAhxBgP4DcUEIdGogAygCHEH/AXFBGHRqNgIQIAMgAygCEEF/czYCEANAQQAhACADKAIUBH8gAygCGEEDcUEARwVBAAtBAXEEQCADKAIQQRh2IQAgAyADKAIYIgFBAWo2AhggAyABLQAAIABzQQJ0QbAvaigCACADKAIQQQh0czYCECADIAMoAhRBf2o2AhQMAQsLIAMgAygCGDYCDANAIAMoAhRBIElFBEAgAyADKAIMIgBBBGo2AgwgAyAAKAIAIAMoAhBzNgIQIAMgAygCEEEYdkECdEGwxwBqKAIAIAMoAhBBEHZB/wFxQQJ0QbA/aigCACADKAIQQf8BcUECdEGwL2ooAgAgAygCEEEIdkH/AXFBAnRBsDdqKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsMcAaigCACADKAIQQRB2Qf8BcUECdEGwP2ooAgAgAygCEEH/AXFBAnRBsC9qKAIAIAMoAhBBCHZB/wFxQQJ0QbA3aigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbDHAGooAgAgAygCEEEQdkH/AXFBAnRBsD9qKAIAIAMoAhBB/wFxQQJ0QbAvaigCACADKAIQQQh2Qf8BcUECdEGwN2ooAgBzc3M2AhAgAyADKAIMIgBBBGo2AgwgAyAAKAIAIAMoAhBzNgIQIAMgAygCEEEYdkECdEGwxwBqKAIAIAMoAhBBEHZB/wFxQQJ0QbA/aigCACADKAIQQf8BcUECdEGwL2ooAgAgAygCEEEIdkH/AXFBAnRBsDdqKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsMcAaigCACADKAIQQRB2Qf8BcUECdEGwP2ooAgAgAygCEEH/AXFBAnRBsC9qKAIAIAMoAhBBCHZB/wFxQQJ0QbA3aigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbDHAGooAgAgAygCEEEQdkH/AXFBAnRBsD9qKAIAIAMoAhBB/wFxQQJ0QbAvaigCACADKAIQQQh2Qf8BcUECdEGwN2ooAgBzc3M2AhAgAyADKAIMIgBBBGo2AgwgAyAAKAIAIAMoAhBzNgIQIAMgAygCEEEYdkECdEGwxwBqKAIAIAMoAhBBEHZB/wFxQQJ0QbA/aigCACADKAIQQf8BcUECdEGwL2ooAgAgAygCEEEIdkH/AXFBAnRBsDdqKAIAc3NzNgIQIAMgAygCDCIAQQRqNgIMIAMgACgCACADKAIQczYCECADIAMoAhBBGHZBAnRBsMcAaigCACADKAIQQRB2Qf8BcUECdEGwP2ooAgAgAygCEEH/AXFBAnRBsC9qKAIAIAMoAhBBCHZB/wFxQQJ0QbA3aigCAHNzczYCECADIAMoAhRBIGs2AhQMAQsLA0AgAygCFEEESUUEQCADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbDHAGooAgAgAygCEEEQdkH/AXFBAnRBsD9qKAIAIAMoAhBB/wFxQQJ0QbAvaigCACADKAIQQQh2Qf8BcUECdEGwN2ooAgBzc3M2AhAgAyADKAIUQQRrNgIUDAELCyADIAMoAgw2AhggAygCFARAA0AgAygCEEEYdiEAIAMgAygCGCIBQQFqNgIYIAMgAS0AACAAc0ECdEGwL2ooAgAgAygCEEEIdHM2AhAgAyADKAIUQX9qIgA2AhQgAA0ACwsgAyADKAIQQX9zNgIQIAMoAhBBCHZBgP4DcSADKAIQQRh2aiADKAIQQYD+A3FBCHRqIAMoAhBB/wFxQRh0aguTCwEBfyMAQSBrIgMgADYCHCADIAE2AhggAyACNgIUIAMgAygCHDYCECADIAMoAhBBf3M2AhADQEEAIQAgAygCFAR/IAMoAhhBA3FBAEcFQQALQQFxBEAgAygCECEAIAMgAygCGCIBQQFqNgIYIAMgAS0AACAAc0H/AXFBAnRBsA9qKAIAIAMoAhBBCHZzNgIQIAMgAygCFEF/ajYCFAwBCwsgAyADKAIYNgIMA0AgAygCFEEgSUUEQCADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAhRBIGs2AhQMAQsLA0AgAygCFEEESUUEQCADIAMoAgwiAEEEajYCDCADIAAoAgAgAygCEHM2AhAgAyADKAIQQRh2QQJ0QbAPaigCACADKAIQQRB2Qf8BcUECdEGwF2ooAgAgAygCEEH/AXFBAnRBsCdqKAIAIAMoAhBBCHZB/wFxQQJ0QbAfaigCAHNzczYCECADIAMoAhRBBGs2AhQMAQsLIAMgAygCDDYCGCADKAIUBEADQCADKAIQIQAgAyADKAIYIgFBAWo2AhggAyABLQAAIABzQf8BcUECdEGwD2ooAgAgAygCEEEIdnM2AhAgAyADKAIUQX9qIgA2AhQgAA0ACwsgAyADKAIQQX9zNgIQIAMoAhALhgEBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhACQCADKAIURQRAIANBADYCHAwBCyADQQE2AgwgAy0ADARAIAMgAygCGCADKAIUIAMoAhAQ1QE2AhwMAQsgAyADKAIYIAMoAhQgAygCEBDUATYCHAsgAygCHCEAIANBIGokACAACwcAIAAoAhALIgEBfyMAQRBrIgEgADYCDCABKAIMIgAgACgCMEEBajYCMAsUACAAIAGtIAKtQiCGhCADIAQQegsTAQF+IAAQSiIBQiCIpxAAIAGnCxIAIAAgAa0gAq1CIIaEIAMQKAsfAQF+IAAgASACrSADrUIghoQQLyIEQiCIpxAAIASnCxUAIAAgAa0gAq1CIIaEIAMgBBC/AQsUACAAIAEgAq0gA61CIIaEIAQQeQsVACAAIAGtIAKtQiCGhCADIAQQ8AELFwEBfiAAIAEgAhBuIgNCIIinEAAgA6cLFgEBfiAAIAEQkQIiAkIgiKcQACACpwsTACAAIAGtIAKtQiCGhCADEMABCyABAX4gACABIAKtIAOtQiCGhBCSAiIEQiCIpxAAIASnCxMAIAAgAa0gAq1CIIaEIAMQkwILFQAgACABrSACrUIghoQgAyAEEJYCCxcAIAAgAa0gAq1CIIaEIAMgBCAFEJ8BCxcAIAAgAa0gAq1CIIaEIAMgBCAFEJ4BCxoBAX4gACABIAIgAxCaAiIEQiCIpxAAIASnCxgBAX4gACABIAIQnAIiA0IgiKcQACADpwsRACAAIAGtIAKtQiCGhBChAQsQACMAIABrQXBxIgAkACAACwYAIAAkAAsEACMAC8QBAQF/IwBBMGsiASQAIAEgADYCKCABQQA2AiQgAUIANwMYAkADQCABKQMYIAEoAigpAzBUBEAgASABKAIoIAEpAxhBACABQRdqIAFBEGoQngE2AgwgASgCDEF/RgRAIAFBfzYCLAwDBQJAIAEtABdBA0cNACABKAIQQRB2QYDgA3FBgMACRw0AIAEgASgCJEEBajYCJAsgASABKQMYQgF8NwMYDAILAAsLIAEgASgCJDYCLAsgASgCLCEAIAFBMGokACAAC4IBAgF/AX4jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMIAQgBCgCGCAEKAIUIAQoAhAQbiIFNwMAAkAgBUIAUwRAIARBfzYCHAwBCyAEIAQoAhggBCkDACAEKAIQIAQoAgwQejYCHAsgBCgCHCEAIARBIGokACAAC9IDAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCAJAAkAgBCkDECAEKAIYKQMwVARAIAQoAghBCU0NAQsgBCgCGEEIakESQQAQFSAEQX82AhwMAQsgBCgCGCgCGEECcQRAIAQoAhhBCGpBGUEAEBUgBEF/NgIcDAELIAQoAgwQwwJBAXFFBEAgBCgCGEEIakEQQQAQFSAEQX82AhwMAQsgBCAEKAIYKAJAIAQpAxCnQQR0ajYCBCAEAn9BfyAEKAIEKAIARQ0AGiAEKAIEKAIAKAIQCzYCAAJAIAQoAgwgBCgCAEYEQCAEKAIEKAIEBEAgBCgCBCgCBCIAIAAoAgBBfnE2AgAgBCgCBCgCBEEAOwFQIAQoAgQoAgQoAgBFBEAgBCgCBCgCBBA6IAQoAgRBADYCBAsLDAELIAQoAgQoAgRFBEAgBCgCBCgCABBGIQAgBCgCBCAANgIEIABFBEAgBCgCGEEIakEOQQAQFSAEQX82AhwMAwsLIAQoAgQoAgQgBCgCDDYCECAEKAIEKAIEIAQoAgg7AVAgBCgCBCgCBCIAIAAoAgBBAXI2AgALIARBADYCHAsgBCgCHCEAIARBIGokACAAC5ACAQF/IwBBEGsiAiQAIAIgADYCCCACIAE2AgQCQAJAAkAgAigCCC8BCiACKAIELwEKSA0AIAIoAggoAhAgAigCBCgCEEcNACACKAIIKAIUIAIoAgQoAhRHDQAgAigCCCgCMCACKAIEKAIwEIcBDQELIAJBfzYCDAwBCwJAAkAgAigCCCgCGCACKAIEKAIYRw0AIAIoAggpAyAgAigCBCkDIFINACACKAIIKQMoIAIoAgQpAyhRDQELAkACQCACKAIELwEMQQhxRQ0AIAIoAgQoAhgNACACKAIEKQMgQgBSDQAgAigCBCkDKFANAQsgAkF/NgIMDAILCyACQQA2AgwLIAIoAgwhACACQRBqJAAgAAv6AwEBfyMAQdAAayIEJAAgBCAANgJIIAQgATcDQCAEIAI2AjwgBCADNgI4AkAgBCgCSBAwQhZUBEAgBCgCOEEVQQAQFSAEQQA2AkwMAQsjAEEQayIAIAQoAkg2AgwgBAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALNwMIIAQoAkhCBBAfGiAEKAJIECsEQCAEKAI4QQFBABAVIARBADYCTAwBCyAEIAQoAkgQHkH//wNxrTcDKCAEIAQoAkgQHkH//wNxrTcDICAEKQMgIAQpAyhSBEAgBCgCOEETQQAQFSAEQQA2AkwMAQsgBCAEKAJIECutNwMYIAQgBCgCSBArrTcDECAEKQMQIAQpAxh8IAQpAxBUBEAgBCgCOEEEQRYQFSAEQQA2AkwMAQsgBCkDECAEKQMYfCAEKQNAIAQpAwh8VgRAIAQoAjhBFUEAEBUgBEEANgJMDAELAkAgBCgCPEEEcUUNACAEKQMQIAQpAxh8IAQpA0AgBCkDCHxRDQAgBCgCOEEVQQAQFSAEQQA2AkwMAQsgBCAEKQMgIAQoAjgQxgEiADYCNCAARQRAIARBADYCTAwBCyAEKAI0QQA6ACwgBCgCNCAEKQMYNwMYIAQoAjQgBCkDEDcDICAEIAQoAjQ2AkwLIAQoAkwhACAEQdAAaiQAIAAL1QoBAX8jAEGwAWsiBSQAIAUgADYCqAEgBSABNgKkASAFIAI3A5gBIAUgAzYClAEgBSAENgKQASMAQRBrIgAgBSgCpAE2AgwgBQJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALNwMYIAUoAqQBQgQQHxogBSAFKAKkARAeQf//A3E2AhAgBSAFKAKkARAeQf//A3E2AgggBSAFKAKkARAxNwM4AkAgBSkDOEL///////////8AVgRAIAUoApABQQRBFhAVIAVBADYCrAEMAQsgBSkDOEI4fCAFKQMYIAUpA5gBfFYEQCAFKAKQAUEVQQAQFSAFQQA2AqwBDAELAkACQCAFKQM4IAUpA5gBVA0AIAUpAzhCOHwgBSkDmAECfiMAQRBrIgAgBSgCpAE2AgwgACgCDCkDCAt8Vg0AIAUoAqQBIAUpAzggBSkDmAF9EC0aIAVBADoAFwwBCyAFKAKoASAFKQM4QQAQKEEASARAIAUoApABIAUoAqgBEBggBUEANgKsAQwCCyAFIAUoAqgBQjggBUFAayAFKAKQARBBIgA2AqQBIABFBEAgBUEANgKsAQwCCyAFQQE6ABcLIAUoAqQBQgQQHygAAEHQlpkwRwRAIAUoApABQRVBABAVIAUtABdBAXEEQCAFKAKkARAXCyAFQQA2AqwBDAELIAUgBSgCpAEQMTcDMAJAIAUoApQBQQRxRQ0AIAUpAzAgBSkDOHxCDHwgBSkDmAEgBSkDGHxRDQAgBSgCkAFBFUEAEBUgBS0AF0EBcQRAIAUoAqQBEBcLIAVBADYCrAEMAQsgBSgCpAFCBBAfGiAFIAUoAqQBECs2AgwgBSAFKAKkARArNgIEIAUoAhBB//8DRgRAIAUgBSgCDDYCEAsgBSgCCEH//wNGBEAgBSAFKAIENgIICwJAIAUoApQBQQRxRQ0AIAUoAgggBSgCBEYEQCAFKAIQIAUoAgxGDQELIAUoApABQRVBABAVIAUtABdBAXEEQCAFKAKkARAXCyAFQQA2AqwBDAELAkAgBSgCEEUEQCAFKAIIRQ0BCyAFKAKQAUEBQQAQFSAFLQAXQQFxBEAgBSgCpAEQFwsgBUEANgKsAQwBCyAFIAUoAqQBEDE3AyggBSAFKAKkARAxNwMgIAUpAyggBSkDIFIEQCAFKAKQAUEBQQAQFSAFLQAXQQFxBEAgBSgCpAEQFwsgBUEANgKsAQwBCyAFIAUoAqQBEDE3AzAgBSAFKAKkARAxNwOAAQJ/IwBBEGsiACAFKAKkATYCDCAAKAIMLQAAQQFxRQsEQCAFKAKQAUEUQQAQFSAFLQAXQQFxBEAgBSgCpAEQFwsgBUEANgKsAQwBCyAFLQAXQQFxBEAgBSgCpAEQFwsCQCAFKQOAAUL///////////8AWARAIAUpA4ABIAUpAzB8IAUpA4ABWg0BCyAFKAKQAUEEQRYQFSAFQQA2AqwBDAELIAUpA4ABIAUpAzB8IAUpA5gBIAUpAzh8VgRAIAUoApABQRVBABAVIAVBADYCrAEMAQsCQCAFKAKUAUEEcUUNACAFKQOAASAFKQMwfCAFKQOYASAFKQM4fFENACAFKAKQAUEVQQAQFSAFQQA2AqwBDAELIAUpAyggBSkDMEIugFYEQCAFKAKQAUEVQQAQFSAFQQA2AqwBDAELIAUgBSkDKCAFKAKQARDGASIANgKMASAARQRAIAVBADYCrAEMAQsgBSgCjAFBAToALCAFKAKMASAFKQMwNwMYIAUoAowBIAUpA4ABNwMgIAUgBSgCjAE2AqwBCyAFKAKsASEAIAVBsAFqJAAgAAviCwEBfyMAQfAAayIEJAAgBCAANgJoIAQgATYCZCAEIAI3A1ggBCADNgJUIwBBEGsiACAEKAJkNgIMIAQCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACzcDMAJAIAQoAmQQMEIWVARAIAQoAlRBE0EAEBUgBEEANgJsDAELIAQoAmRCBBAfKAAAQdCWlTBHBEAgBCgCVEETQQAQFSAEQQA2AmwMAQsCQAJAIAQpAzBCFFQNACMAQRBrIgAgBCgCZDYCDCAAKAIMKAIEIAQpAzCnakFsaigAAEHQlpk4Rw0AIAQoAmQgBCkDMEIUfRAtGiAEIAQoAmgoAgAgBCgCZCAEKQNYIAQoAmgoAhQgBCgCVBDzATYCUAwBCyAEKAJkIAQpAzAQLRogBCAEKAJkIAQpA1ggBCgCaCgCFCAEKAJUEPIBNgJQCyAEKAJQRQRAIARBADYCbAwBCyAEKAJkIAQpAzBCFHwQLRogBCAEKAJkEB47AU4gBCgCUCkDICAEKAJQKQMYfCAEKQNYIAQpAzB8VgRAIAQoAlRBFUEAEBUgBCgCUBAlIARBADYCbAwBCwJAIAQvAU5FBEAgBCgCaCgCBEEEcUUNAQsgBCgCZCAEKQMwQhZ8EC0aIAQgBCgCZBAwNwMgAkAgBCkDICAELwFOrVoEQCAEKAJoKAIEQQRxRQ0BIAQpAyAgBC8BTq1RDQELIAQoAlRBFUEAEBUgBCgCUBAlIARBADYCbAwCCyAELwFOBEAgBCgCZCAELwFOrRAfIAQvAU5BACAEKAJUEFEhACAEKAJQIAA2AiggAEUEQCAEKAJQECUgBEEANgJsDAMLCwsCQCAEKAJQKQMgIAQpA1haBEAgBCgCZCAEKAJQKQMgIAQpA1h9EC0aIAQgBCgCZCAEKAJQKQMYEB8iADYCHCAARQRAIAQoAlRBFUEAEBUgBCgCUBAlIARBADYCbAwDCyAEIAQoAhwgBCgCUCkDGBAqIgA2AiwgAEUEQCAEKAJUQQ5BABAVIAQoAlAQJSAEQQA2AmwMAwsMAQsgBEEANgIsIAQoAmgoAgAgBCgCUCkDIEEAEChBAEgEQCAEKAJUIAQoAmgoAgAQGCAEKAJQECUgBEEANgJsDAILIAQoAmgoAgAQSiAEKAJQKQMgUgRAIAQoAlRBE0EAEBUgBCgCUBAlIARBADYCbAwCCwsgBCAEKAJQKQMYNwM4IARCADcDQANAAkAgBCkDOEIAWA0AIARBADoAGyAEKQNAIAQoAlApAwhRBEAgBCgCUC0ALEEBcQ0BIAQpAzhCLlQNASAEKAJQQoCABCAEKAJUEMUBQQFxRQRAIAQoAlAQJSAEKAIsEBcgBEEANgJsDAQLIARBAToAGwsQjgMhACAEKAJQKAIAIAQpA0CnQQR0aiAANgIAAkAgAARAIAQgBCgCUCgCACAEKQNAp0EEdGooAgAgBCgCaCgCACAEKAIsQQAgBCgCVBDCASICNwMQIAJCAFkNAQsCQCAELQAbQQFxRQ0AIwBBEGsiACAEKAJUNgIMIAAoAgwoAgBBE0cNACAEKAJUQRVBABAVCyAEKAJQECUgBCgCLBAXIARBADYCbAwDCyAEIAQpA0BCAXw3A0AgBCAEKQM4IAQpAxB9NwM4DAELCwJAIAQpA0AgBCgCUCkDCFEEQCAEKQM4QgBYDQELIAQoAlRBFUEAEBUgBCgCLBAXIAQoAlAQJSAEQQA2AmwMAQsgBCgCaCgCBEEEcQRAAkAgBCgCLARAIAQgBCgCLBBIQQFxOgAPDAELIAQgBCgCaCgCABBKNwMAIAQpAwBCAFMEQCAEKAJUIAQoAmgoAgAQGCAEKAJQECUgBEEANgJsDAMLIAQgBCkDACAEKAJQKQMgIAQoAlApAxh8UToADwsgBC0AD0EBcUUEQCAEKAJUQRVBABAVIAQoAiwQFyAEKAJQECUgBEEANgJsDAILCyAEKAIsEBcgBCAEKAJQNgJsCyAEKAJsIQAgBEHwAGokACAAC9cBAQF/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQgAkGJmAE2AhAgAkEENgIMAkACQCACKAIUIAIoAgxPBEAgAigCDA0BCyACQQA2AhwMAQsgAiACKAIYQX9qNgIIA0ACQCACIAIoAghBAWogAigCEC0AACACKAIYIAIoAghrIAIoAhQgAigCDGtqEKYBIgA2AgggAEUNACACKAIIQQFqIAIoAhBBAWogAigCDEEBaxBTDQEgAiACKAIINgIcDAILCyACQQA2AhwLIAIoAhwhACACQSBqJAAgAAvBBgEBfyMAQeAAayICJAAgAiAANgJYIAIgATcDUAJAIAIpA1BCFlQEQCACKAJYQQhqQRNBABAVIAJBADYCXAwBCyACAn4gAikDUEKqgARUBEAgAikDUAwBC0KqgAQLNwMwIAIoAlgoAgBCACACKQMwfUECEChBAEgEQCMAQRBrIgAgAigCWCgCADYCDCACIAAoAgxBDGo2AggCQAJ/IwBBEGsiACACKAIINgIMIAAoAgwoAgBBBEYLBEAjAEEQayIAIAIoAgg2AgwgACgCDCgCBEEWRg0BCyACKAJYQQhqIAIoAggQRCACQQA2AlwMAgsLIAIgAigCWCgCABBKIgE3AzggAUIAUwRAIAIoAlhBCGogAigCWCgCABAYIAJBADYCXAwBCyACIAIoAlgoAgAgAikDMEEAIAIoAlhBCGoQQSIANgIMIABFBEAgAkEANgJcDAELIAJCfzcDICACQQA2AkwgAikDMEKqgARaBEAgAigCDEIUEC0aCyACQRBqQRNBABAVIAIgAigCDEIAEB82AkQDQAJAIAIgAigCRCACKAIMEDBCEn2nEPUBIgA2AkQgAEUNACACKAIMIAIoAkQCfyMAQRBrIgAgAigCDDYCDCAAKAIMKAIEC2usEC0aIAIgAigCWCACKAIMIAIpAzggAkEQahD0ASIANgJIIAAEQAJAIAIoAkwEQCACKQMgQgBXBEAgAiACKAJYIAIoAkwgAkEQahBlNwMgCyACIAIoAlggAigCSCACQRBqEGU3AygCQCACKQMgIAIpAyhTBEAgAigCTBAlIAIgAigCSDYCTCACIAIpAyg3AyAMAQsgAigCSBAlCwwBCyACIAIoAkg2AkwCQCACKAJYKAIEQQRxBEAgAiACKAJYIAIoAkwgAkEQahBlNwMgDAELIAJCADcDIAsLIAJBADYCSAsgAiACKAJEQQFqNgJEIAIoAgwgAigCRAJ/IwBBEGsiACACKAIMNgIMIAAoAgwoAgQLa6wQLRoMAQsLIAIoAgwQFyACKQMgQgBTBEAgAigCWEEIaiACQRBqEEQgAigCTBAlIAJBADYCXAwBCyACIAIoAkw2AlwLIAIoAlwhACACQeAAaiQAIAALvwUBAX8jAEHwAGsiAyQAIAMgADYCaCADIAE2AmQgAyACNgJgIANBIGoiABA8AkAgAygCaCAAEDlBAEgEQCADKAJgIAMoAmgQGCADQQA2AmwMAQsgAykDIEIEg1AEQCADKAJgQQRBigEQFSADQQA2AmwMAQsgAyADKQM4NwMYIAMgAygCaCADKAJkIAMoAmAQZiIANgJcIABFBEAgA0EANgJsDAELAkAgAykDGFBFDQAgAygCaBCUAUEBcUUNACADIAMoAlw2AmwMAQsgAyADKAJcIAMpAxgQ9gEiADYCWCAARQRAIAMoAmAgAygCXEEIahBEIwBBEGsiACADKAJoNgIMIAAoAgwiACAAKAIwQQFqNgIwIAMoAlwQPyADQQA2AmwMAQsgAygCXCADKAJYKAIANgJAIAMoAlwgAygCWCkDCDcDMCADKAJcIAMoAlgpAxA3AzggAygCXCADKAJYKAIoNgIgIAMoAlgQFiADKAJcKAJQIAMoAlwpAzAgAygCXEEIahD9AiADQgA3AxADQCADKQMQIAMoAlwpAzBUBEAgAyADKAJcKAJAIAMpAxCnQQR0aigCACgCMEEAQQAgAygCYBBHNgIMIAMoAgxFBEAjAEEQayIAIAMoAmg2AgwgACgCDCIAIAAoAjBBAWo2AjAgAygCXBA/IANBADYCbAwDCyADKAJcKAJQIAMoAgwgAykDEEEIIAMoAlxBCGoQfUEBcUUEQAJAIAMoAlwoAghBCkYEQCADKAJkQQRxRQ0BCyADKAJgIAMoAlxBCGoQRCMAQRBrIgAgAygCaDYCDCAAKAIMIgAgACgCMEEBajYCMCADKAJcED8gA0EANgJsDAQLCyADIAMpAxBCAXw3AxAMAQsLIAMoAlwgAygCXCgCFDYCGCADIAMoAlw2AmwLIAMoAmwhACADQfAAaiQAIAALwQEBAX8jAEHQAGsiAiQAIAIgADYCSCACIAE2AkQgAkEIaiIAEDwCQCACKAJIIAAQOQRAIwBBEGsiACACKAJINgIMIAIgACgCDEEMajYCBCMAQRBrIgAgAigCBDYCDAJAIAAoAgwoAgBBBUcNACMAQRBrIgAgAigCBDYCDCAAKAIMKAIEQSxHDQAgAkEANgJMDAILIAIoAkQgAigCBBBEIAJBfzYCTAwBCyACQQE2AkwLIAIoAkwhACACQdAAaiQAIAAL6gEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGoiATYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADIAMoAiggARD7ASIANgIYAkAgAEUEQCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIAMgAygCGCADKAIkIANBCGoQkgEiADYCHCAARQRAIAMoAhgQHCADKAIgIANBCGoiABCTASAAEDggA0EANgIsDAELIANBCGoQOCADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAvIAgEBfyMAQRBrIgEkACABIAA2AgggAUHYABAZNgIEAkAgASgCBEUEQCABKAIIQQ5BABAVIAFBADYCDAwBCyABKAIIEIEDIQAgASgCBCAANgJQIABFBEAgASgCBBAWIAFBADYCDAwBCyABKAIEQQA2AgAgASgCBEEANgIEIwBBEGsiACABKAIEQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAEoAgRBADYCGCABKAIEQQA2AhQgASgCBEEANgIcIAEoAgRBADYCJCABKAIEQQA2AiAgASgCBEEAOgAoIAEoAgRCADcDOCABKAIEQgA3AzAgASgCBEEANgJAIAEoAgRBADYCSCABKAIEQQA2AkQgASgCBEEANgJMIAEoAgRBADYCVCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuBAQEBfyMAQSBrIgIkACACIAA2AhggAkIANwMQIAJCfzcDCCACIAE2AgQCQAJAIAIoAhgEQCACKQMIQn9ZDQELIAIoAgRBEkEAEBUgAkEANgIcDAELIAIgAigCGCACKQMQIAIpAwggAigCBBD/ATYCHAsgAigCHCEAIAJBIGokACAAC80BAQJ/IwBBIGsiASQAIAEgADYCGCABQQA6ABcgAUGAgCA2AgwCQCABLQAXQQFxBEAgASABKAIMQQJyNgIMDAELIAEgASgCDDYCDAsgASgCGCEAIAEoAgwhAiABQbYDNgIAIAEgACACIAEQaSIANgIQAkAgAEEASARAIAFBADYCHAwBCyABIAEoAhBBgpgBQYaYASABLQAXQQFxGxCXASIANgIIIABFBEAgAUEANgIcDAELIAEgASgCCDYCHAsgASgCHCEAIAFBIGokACAAC8gCAQF/IwBBgAFrIgEkACABIAA2AnggASABKAJ4KAIYECxBCGoQGSIANgJ0AkAgAEUEQCABKAJ4QQ5BABAVIAFBfzYCfAwBCwJAIAEoAngoAhggAUEQahCcAUUEQCABIAEoAhw2AmwMAQsgAUF/NgJsCyABKAJ0IQAgASABKAJ4KAIYNgIAIABB+JcBIAEQbyABIAEoAnQgASgCbBCGAiIANgJwIABBf0YEQCABKAJ4QQxBtJwBKAIAEBUgASgCdBAWIAFBfzYCfAwBCyABIAEoAnBBgpgBEJcBIgA2AmggAEUEQCABKAJ4QQxBtJwBKAIAEBUgASgCcBBoIAEoAnQQaxogASgCdBAWIAFBfzYCfAwBCyABKAJ4IAEoAmg2AoQBIAEoAnggASgCdDYCgAEgAUEANgJ8CyABKAJ8IQAgAUGAAWokACAAC8AQAQF/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAVIARCfzcDWAwRCyAEIAQoAkAQ/QGsNwNYDBALIAQoAkAoAhgEQCAEKAJAKAIcEFQaIAQoAkBBADYCHAsgBEIANwNYDA8LIAQoAkAoAoQBEFRBAEgEQCAEKAJAQQA2AoQBIAQoAkBBBkG0nAEoAgAQFQsgBCgCQEEANgKEASAEKAJAKAKAASAEKAJAKAIYEAciAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAAC0EASARAIAQoAkBBAkG0nAEoAgAQFSAEQn83A1gMDwsgBCgCQCgCgAEQFiAEKAJAQQA2AoABIARCADcDWAwOCyAEIAQoAkAgBCgCUCAEKQNIEEI3A1gMDQsgBCgCQCgCGBAWIAQoAkAoAoABEBYgBCgCQCgCHARAIAQoAkAoAhwQVBoLIAQoAkAQFiAEQgA3A1gMDAsgBCgCQCgCGARAIAQoAkAoAhgQ/AEhACAEKAJAIAA2AhwgAEUEQCAEKAJAQQtBtJwBKAIAEBUgBEJ/NwNYDA0LCyAEKAJAKQNoQgBWBEAgBCgCQCgCHCAEKAJAKQNoIAQoAkAQlQFBAEgEQCAEQn83A1gMDQsLIAQoAkBCADcDeCAEQgA3A1gMCwsCQCAEKAJAKQNwQgBWBEAgBCAEKAJAKQNwIAQoAkApA3h9NwMwIAQpAzAgBCkDSFYEQCAEIAQpA0g3AzALDAELIAQgBCkDSDcDMAsgBCkDMEL/////D1YEQCAEQv////8PNwMwCyAEIAQoAjwgBCkDMKcgBCgCQCgCHBCLAiIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbScASgCABAVIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBrQQBIBEAgBCgCQEEWQbScASgCABAVIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBUGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBrGiAEKAJAKAKAARAWIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFUEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGdBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEJkBIgI3AyAgAkIAUwRAIAQoAkBBBEG0nAEoAgAQFSAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAVIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQpAyAgBCgCQCkDaHwgBCgCQCkDaFoNAQsgBCgCQEESQQAQFSAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCVAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFUEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGdBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBUgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCZATcDCCAEKQMIQgBTBEAgBCgCQEEeQbScASgCABAVIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsCQCAEKAJAKAKEASIAKAJMQQBOBEAgACAAKAIAQU9xNgIADAELIAAgACgCAEFPcTYCAAsgBCAEKAJQIAQpA0inIAQoAkAoAoQBEKwCNgIEAkAgBCkDSCAEKAIErVEEQAJ/IAQoAkAoAoQBIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxRQ0BCyAEKAJAQQZBtJwBKAIAEBUgBEJ/NwNYDAILIAQgBCgCBK03A1gMAQsgBCgCQEEcQQAQFSAEQn83A1gLIAQpA1ghAiAEQeAAaiQAIAILoAkBAX8jAEGgAWsiBCQAIAQgADYCmAEgBEEANgKUASAEIAE3A4gBIAQgAjcDgAEgBEEANgJ8IAQgAzYCeAJAAkAgBCgClAENACAEKAKYAQ0AIAQoAnhBEkEAEBUgBEEANgKcAQwBCyAEKQOAAUIAUwRAIARCADcDgAELAkAgBCkDiAFC////////////AFgEQCAEKQOIASAEKQOAAXwgBCkDiAFaDQELIAQoAnhBEkEAEBUgBEEANgKcAQwBCyAEQYgBEBkiADYCdCAARQRAIAQoAnhBDkEAEBUgBEEANgKcAQwBCyAEKAJ0QQA2AhggBCgCmAEEQCAEKAKYARCQAiEAIAQoAnQgADYCGCAARQRAIAQoAnhBDkEAEBUgBCgCdBAWIARBADYCnAEMAgsLIAQoAnQgBCgClAE2AhwgBCgCdCAEKQOIATcDaCAEKAJ0IAQpA4ABNwNwAkAgBCgCfARAIAQoAnQiACAEKAJ8IgMpAwA3AyAgACADKQMwNwNQIAAgAykDKDcDSCAAIAMpAyA3A0AgACADKQMYNwM4IAAgAykDEDcDMCAAIAMpAwg3AyggBCgCdEEANgIoIAQoAnQiACAAKQMgQv7///8PgzcDIAwBCyAEKAJ0QSBqEDwLIAQoAnQpA3BCAFYEQCAEKAJ0IAQoAnQpA3A3AzggBCgCdCIAIAApAyBCBIQ3AyALIwBBEGsiACAEKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEKAJ0QQA2AoABIAQoAnRBADYChAEjAEEQayIAIAQoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggBEF/NgIEIARBBzYCAEEOIAQQN0I/hCEBIAQoAnQgATcDEAJAIAQoAnQoAhgEQCAEIAQoAnQoAhggBEEYahCcAUEATjoAFyAELQAXQQFxRQRAAkAgBCgCdCkDaFBFDQAgBCgCdCkDcFBFDQAgBCgCdEL//wM3AxALCwwBCyAEAn8CQCAEKAJ0KAIcIgAoAkxBAEgNAAsgACgCPAsgBEEYahCNAkEATjoAFwsCQCAELQAXQQFxRQRAIAQoAnRB2ABqQQVBtJwBKAIAEBUMAQsgBCgCdCkDIEIQg1AEQCAEKAJ0IAQoAlg2AkggBCgCdCIAIAApAyBCEIQ3AyALIAQoAiRBgOADcUGAgAJGBEAgBCgCdEL/gQE3AxAgBCgCdCkDaCAEKAJ0KQNwfCAEKQNAVgRAIAQoAnhBEkEAEBUgBCgCdCgCGBAWIAQoAnQQFiAEQQA2ApwBDAMLIAQoAnQpA3BQBEAgBCgCdCAEKQNAIAQoAnQpA2h9NwM4IAQoAnQiACAAKQMgQgSENwMgAkAgBCgCdCgCGEUNACAEKQOIAVBFDQAgBCgCdEL//wM3AxALCwsLIAQoAnQiACAAKQMQQoCAEIQ3AxAgBEEeIAQoAnQgBCgCeBCQASIANgJwIABFBEAgBCgCdCgCGBAWIAQoAnQQFiAEQQA2ApwBDAELIAQgBCgCcDYCnAELIAQoApwBIQAgBEGgAWokACAACwkAIAAoAjwQBQv3AQEEfyMAQSBrIgMkACADIAE2AhAgAyACIAAoAjAiBEEAR2s2AhQgACgCLCEFIAMgBDYCHCADIAU2AhgCQAJAAn8Cf0EAIAAoAjwgA0EQakECIANBDGoQDSIERQ0AGkG0nAEgBDYCAEF/CwRAIANBfzYCDEF/DAELIAMoAgwiBEEASg0BIAQLIQIgACAAKAIAIAJBMHFBEHNyNgIADAELIAQgAygCFCIGTQRAIAQhAgwBCyAAIAAoAiwiBTYCBCAAIAUgBCAGa2o2AgggACgCMEUNACAAIAVBAWo2AgQgASACakF/aiAFLQAAOgAACyADQSBqJAAgAguBAwEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQAJ/QQAgACgCPCADQRBqQQIgA0EMahADIgRFDQAaQbScASAENgIAQX8LRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUCf0EAIAAoAjwgAUEIaiABIAYbIgEgByAGayIHIANBDGoQAyIERQ0AGkG0nAEgBDYCAEF/C0UNAAsLIANBfzYCDCAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiABKAIEawshACADQSBqJAAgAAtgAQF/IwBBEGsiAyQAAn4Cf0EAIAAoAjwgAacgAUIgiKcgAkH/AXEgA0EIahALIgBFDQAaQbScASAANgIAQX8LRQRAIAMpAwgMAQsgA0J/NwMIQn8LIQEgA0EQaiQAIAELoQEBAX8jAEEQayIBJAAgASAANgIIAkAgASgCCCgCJEEDRgRAIAFBADYCDAwBCyABKAIIKAIgQQBLBEAgASgCCBAyQQBIBEAgAUF/NgIMDAILCyABKAIIKAIkBEAgASgCCBBqCyABKAIIQQBCAEEPECJCAFMEQCABQX82AgwMAQsgASgCCEEDNgIkIAFBADYCDAsgASgCDCEAIAFBEGokACAAC9oBAQJ/AkAgAUH/AXEiAwRAIABBA3EEQANAIAAtAAAiAkUNAyACIAFB/wFxRg0DIABBAWoiAEEDcQ0ACwsCQCAAKAIAIgJBf3MgAkH//ft3anFBgIGChHhxDQAgA0GBgoQIbCEDA0AgAiADcyICQX9zIAJB//37d2pxQYCBgoR4cQ0BIAAoAgQhAiAAQQRqIQAgAkH//ft3aiACQX9zcUGAgYKEeHFFDQALCwNAIAAiAi0AACIDBEAgAkEBaiEAIAMgAUH/AXFHDQELCyACDwsgABAsIABqDwsgAAvFAwEBfyMAQTBrIgIkACACIAA2AiggAiABNgIkIAJBADYCECACIAIoAiggAigCKBAsajYCGCACIAIoAhhBf2o2AhwDQCACKAIcIAIoAihPBH8gAigCHCwAAEHYAEYFQQALQQFxBEAgAiACKAIQQQFqNgIQIAIgAigCHEF/ajYCHAwBCwsCQCACKAIQRQRAQbScAUEcNgIAIAJBfzYCLAwBCyACIAIoAhxBAWo2AhwDQCACEIcCNgIMIAIgAigCHDYCFANAIAIoAhQgAigCGEkEQCACIAIoAgxBJHA6AAsCfyACLAALQQpIBEAgAiwAC0EwagwBCyACLAALQdcAagshACACIAIoAhQiAUEBajYCFCABIAA6AAAgAiACKAIMQSRuNgIMDAELCyACKAIoIQAgAgJ/QbYDIAIoAiRBf0YNABogAigCJAs2AgAgAiAAQcKBICACEGkiADYCICAAQQBOBEAgAigCJEF/RwRAIAIoAiggAigCJBAPIgBBgWBPBH9BtJwBQQAgAGs2AgBBAAUgAAsaCyACIAIoAiA2AiwMAgtBtJwBKAIAQRRGDQALIAJBfzYCLAsgAigCLCEAIAJBMGokACAAC1cBAn8jAEEQayIAJAACQCAAQQhqEIgCQQFxBEAgACAAKAIINgIMDAELQcShAS0AAEEBcUUEQEEAEAEQigILIAAQiQI2AgwLIAAoAgwhASAAQRBqJAAgAQulAQEBfyMAQRBrIgEkACABIAA2AgggAUEEOwEGIAFB55cBQQBBABBpIgA2AgACQCAAQQBIBEAgAUEAOgAPDAELIAEoAgAgASgCCCABLwEGEBAiAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAACyABLwEGRwRAIAEoAgAQaCABQQA6AA8MAQsgASgCABBoIAFBAToADwsgAS0AD0EBcSEAIAFBEGokACAAC6EBAQR/QcyaASgCACEAAkBByJoBKAIAIgNFBEAgACAAKAIAQe2cmY4EbEG54ABqQf////8HcSIANgIADAELIABB0JoBKAIAIgJBAnRqIgEgASgCACAAQcChASgCACIBQQJ0aigCAGoiADYCAEHAoQFBACABQQFqIgEgASADRhs2AgBB0JoBQQAgAkEBaiICIAIgA0YbNgIAIABBAXYhAAsgAAujAQIDfwF+QciaASgCACIBRQRAQcyaASgCACAANgIADwtB0JoBQQNBA0EBIAFBB0YbIAFBH0YbNgIAQcChAUEANgIAAkAgAUEATARAQcyaASgCACECDAELQcyaASgCACECIACtIQQDQCACIANBAnRqIARCrf7V5NSF/ajYAH5CAXwiBEIgiD4CACADQQFqIgMgAUcNAAsLIAIgAigCAEEBcjYCAAuxAQECfyACKAJMQQBOBH9BAQVBAAsaIAIgAi0ASiIDQX9qIANyOgBKAn8gASACKAIIIAIoAgQiBGsiA0EBSA0AGiAAIAQgAyABIAMgAUkbIgMQGhogAiACKAIEIANqNgIEIAAgA2ohACABIANrCyIDBEADQAJAIAIQjAJFBEAgAiAAIAMgAigCIBEBACIEQQFqQQFLDQELIAEgA2sPCyAAIARqIQAgAyAEayIDDQALCyABC3wBAn8gACAALQBKIgFBf2ogAXI6AEogACgCFCAAKAIcSwRAIABBAEEAIAAoAiQRAQAaCyAAQQA2AhwgAEIANwMQIAAoAgAiAUEEcQRAIAAgAUEgcjYCAEF/DwsgACAAKAIsIAAoAjBqIgI2AgggACACNgIEIAFBG3RBH3ULdgECfyMAQSBrIgIkAAJ/AkAgACABEAkiA0F4RgRAIAAQjwINAQsgA0GBYE8Ef0G0nAFBACADazYCAEF/BSADCwwBCyACIAAQjgIgAiABEAIiAEGBYE8Ef0G0nAFBACAAazYCAEF/BSAACwshACACQSBqJAAgAAueAQEDfwNAIAAgAmoiAyACQdiXAWotAAA6AAAgAkEORyEEIAJBAWohAiAEDQALIAEEQEEOIQIgASEDA0AgAkEBaiECIANBCUshBCADQQpuIQMgBA0ACyAAIAJqQQA6AAADQCAAIAJBf2oiAmogASABQQpuIgNBCmxrQTByOgAAIAFBCUshBCADIQEgBA0ACw8LIANBMDoAACAAQQA6AA8LNwEBfyMAQSBrIgEkAAJ/QQEgACABQQhqEAgiAEUNABpBtJwBIAA2AgBBAAshACABQSBqJAAgAAsgAQJ/IAAQLEEBaiIBEBkiAkUEQEEADwsgAiAAIAEQGgulAQEBfyMAQSBrIgIgADYCFCACIAE2AhACQCACKAIURQRAIAJCfzcDGAwBCyACKAIQQQhxBEAgAiACKAIUKQMwNwMIA0BBACEAIAIpAwhCAFYEfyACKAIUKAJAIAIpAwhCAX2nQQR0aigCAEUFQQALQQFxBEAgAiACKQMIQn98NwMIDAELCyACIAIpAwg3AxgMAQsgAiACKAIUKQMwNwMYCyACKQMYC/IBAQF/IwBBIGsiAyQAIAMgADYCFCADIAE2AhAgAyACNwMIAkAgAygCFEUEQCADQn83AxgMAQsgAygCFCgCBARAIANCfzcDGAwBCyADKQMIQv///////////wBWBEAgAygCFEEEakESQQAQFSADQn83AxgMAQsCQCADKAIULQAQQQFxRQRAIAMpAwhQRQ0BCyADQgA3AxgMAQsgAyADKAIUKAIUIAMoAhAgAykDCBAvIgI3AwAgAkIAUwRAIAMoAhRBBGogAygCFCgCFBAYIANCfzcDGAwBCyADIAMpAwA3AxgLIAMpAxghAiADQSBqJAAgAgtHAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhwoAhwQnQEhACADQSBqJAAgAAt/AgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYIAMoAhQgAygCEBBuIgQ3AwgCQCAEQgBTBEAgA0EANgIcDAELIAMgAygCGCADKQMIIAMoAhAgAygCGCgCHBCdATYCHAsgAygCHCEAIANBIGokACAAC6oBAQF/IwBBEGsiASQAIAEgADYCCCABQRgQGSIANgIEAkAgAEUEQCABKAIIQQhqQQ5BABAVIAFBADYCDAwBCyABKAIEIAEoAgg2AgAjAEEQayIAIAEoAgRBBGo2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggASgCBEEAOgAQIAEoAgRBADYCFCABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAvVAwEBfyMAQSBrIgQkACAEIAA2AhggBCABNwMQIAQgAjYCDCAEIAM2AggCQCAEKAIYIAQpAxBBAEEAEEVFBEAgBEF/NgIcDAELIAQoAhgoAhhBAnEEQCAEKAIYQQhqQRlBABAVIARBfzYCHAwBCyAEKAIYKAJAIAQpAxCnQQR0aigCCARAIAQoAhgoAkAgBCkDEKdBBHRqKAIIIAQoAgwQbUEASARAIAQoAhhBCGpBD0EAEBUgBEF/NgIcDAILIARBADYCHAwBCyAEIAQoAhgoAkAgBCkDEKdBBHRqNgIEQQEhACAEIAQoAgQoAgAEfyAEKAIMIAQoAgQoAgAoAhRHBUEBC0EBcTYCAAJAIAQoAgAEQCAEKAIEKAIERQRAIAQoAgQoAgAQRiEAIAQoAgQgADYCBCAARQRAIAQoAhhBCGpBDkEAEBUgBEF/NgIcDAQLCyAEKAIEKAIEIAQoAgw2AhQgBCgCBCgCBCIAIAAoAgBBIHI2AgAMAQsgBCgCBCgCBARAIAQoAgQoAgQiACAAKAIAQV9xNgIAIAQoAgQoAgQoAgBFBEAgBCgCBCgCBBA6IAQoAgRBADYCBAsLCyAEQQA2AhwLIAQoAhwhACAEQSBqJAAgAAsHACAAKAIICxgBAX8jAEEQayIBIAA2AgwgASgCDEEEagsYAQF/IwBBEGsiASAANgIMIAEoAgxBCGoLgwECAX8BfiMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAjYCDCAEIAM2AggCQAJAIAQoAhAEQCAEKAIMDQELIAQoAhRBCGpBEkEAEBUgBEJ/NwMYDAELIAQgBCgCFCAEKAIQIAQoAgwgBCgCCBCgATcDGAsgBCkDGCEFIARBIGokACAFC2kBAX8jAEEQayIBJAAgASAANgIMIAEoAgwoAhQEQCABKAIMKAIUEBwLIAFBADYCCCABKAIMKAIEBEAgASABKAIMKAIENgIICyABKAIMQQRqEDggASgCDBAWIAEoAgghACABQRBqJAAgAAu4AwIBfwF+IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNgIcAkAgAygCJCgCGEECcQRAIAMoAiRBCGpBGUEAEBUgA0J/NwMoDAELIAMoAiBFBEAgAygCJEEIakESQQAQFSADQn83AygMAQsgA0EANgIMIAMgAygCIBAsNgIYIAMoAiAgAygCGEEBa2osAABBL0cEQCADIAMoAhhBAmoQGSIANgIMIABFBEAgAygCJEEIakEOQQAQFSADQn83AygMAgsgAygCDCADKAIgEJ8CIAMoAgwgAygCGGpBLzoAACADKAIMIAMoAhhBAWpqQQA6AAALIAMgAygCJEEAQgBBABB5IgA2AgggAEUEQCADKAIMEBYgA0J/NwMoDAELIAMgAygCJAJ/IAMoAgwEQCADKAIMDAELIAMoAiALIAMoAgggAygCHBCgATcDECADKAIMEBYCQCADKQMQQgBTBEAgAygCCBAcDAELIAMoAiQgAykDEEEAQQNBgID8jwQQnwFBAEgEQCADKAIkIAMpAxAQoQEaIANCfzcDKAwCCwsgAyADKQMQNwMoCyADKQMoIQQgA0EwaiQAIAQLmQgBAX8jAEFAaiIEJAAgBCAANgI4IAQgATcDMCAEIAI2AiwgBCADNgIoAkAgBCkDMCAEKAI4KQMwWgRAIAQoAjhBCGpBEkEAEBUgBEF/NgI8DAELIAQoAjgoAhhBAnEEQCAEKAI4QQhqQRlBABAVIARBfzYCPAwBCwJAAkAgBCgCLEUNACAEKAIsLAAARQ0AIAQgBCgCLCAEKAIsECxB//8DcSAEKAIoIAQoAjhBCGoQUSIANgIgIABFBEAgBEF/NgI8DAMLAkAgBCgCKEGAMHENACAEKAIgQQAQO0EDRw0AIAQoAiBBAjYCCAsMAQsgBEEANgIgCyAEIAQoAjggBCgCLEEAQQAQVSIBNwMQAkAgAUIAUw0AIAQpAxAgBCkDMFENACAEKAIgECYgBCgCOEEIakEKQQAQFSAEQX82AjwMAQsCQCAEKQMQQgBTDQAgBCkDECAEKQMwUg0AIAQoAiAQJiAEQQA2AjwMAQsgBCAEKAI4KAJAIAQpAzCnQQR0ajYCJAJAIAQoAiQoAgAEQCAEIAQoAiQoAgAoAjAgBCgCIBCHAUEARzoAHwwBCyAEQQA6AB8LAkAgBC0AH0EBcQ0AIAQoAiQoAgQNACAEKAIkKAIAEEYhACAEKAIkIAA2AgQgAEUEQCAEKAI4QQhqQQ5BABAVIAQoAiAQJiAEQX82AjwMAgsLIAQCfyAELQAfQQFxBEAgBCgCJCgCACgCMAwBCyAEKAIgC0EAQQAgBCgCOEEIahBHIgA2AgggAEUEQCAEKAIgECYgBEF/NgI8DAELAkAgBCgCJCgCBARAIAQgBCgCJCgCBCgCMDYCBAwBCwJAIAQoAiQoAgAEQCAEIAQoAiQoAgAoAjA2AgQMAQsgBEEANgIECwsCQCAEKAIEBEAgBCAEKAIEQQBBACAEKAI4QQhqEEciADYCDCAARQRAIAQoAiAQJiAEQX82AjwMAwsMAQsgBEEANgIMCyAEKAI4KAJQIAQoAgggBCkDMEEAIAQoAjhBCGoQfUEBcUUEQCAEKAIgECYgBEF/NgI8DAELIAQoAgwEQCAEKAI4KAJQIAQoAgxBABBZGgsCQCAELQAfQQFxBEAgBCgCJCgCBARAIAQoAiQoAgQoAgBBAnEEQCAEKAIkKAIEKAIwECYgBCgCJCgCBCIAIAAoAgBBfXE2AgACQCAEKAIkKAIEKAIARQRAIAQoAiQoAgQQOiAEKAIkQQA2AgQMAQsgBCgCJCgCBCAEKAIkKAIAKAIwNgIwCwsLIAQoAiAQJgwBCyAEKAIkKAIEKAIAQQJxBEAgBCgCJCgCBCgCMBAmCyAEKAIkKAIEIgAgACgCAEECcjYCACAEKAIkKAIEIAQoAiA2AjALIARBADYCPAsgBCgCPCEAIARBQGskACAAC98CAgF/AX4jAEFAaiIBJAAgASAANgI0AkAgASgCNCkDMEIBfCABKAI0KQM4WgRAIAEgASgCNCkDODcDGCABIAEpAxhCAYY3AxACQCABKQMQQhBUBEAgAUIQNwMQDAELIAEpAxBCgAhWBEAgAUKACDcDEAsLIAEgASkDECABKQMYfDcDGCABIAEpAxinQQR0rTcDCCABKAI0KQM4p0EEdK0gASkDCFYEQCABKAI0QQhqQQ5BABAVIAFCfzcDOAwCCyABIAEoAjQoAkAgASkDGKdBBHQQTTYCJCABKAIkRQRAIAEoAjRBCGpBDkEAEBUgAUJ/NwM4DAILIAEoAjQgASgCJDYCQCABKAI0IAEpAxg3AzgLIAEoAjQiACkDMCECIAAgAkIBfDcDMCABIAI3AyggASgCNCgCQCABKQMop0EEdGoQjAEgASABKQMoNwM4CyABKQM4IQIgAUFAayQAIAILyAEBAX8CQAJAIAAgAXNBA3ENACABQQNxBEADQCAAIAEtAAAiAjoAACACRQ0DIABBAWohACABQQFqIgFBA3ENAAsLIAEoAgAiAkF/cyACQf/9+3dqcUGAgYKEeHENAANAIAAgAjYCACABKAIEIQIgAEEEaiEAIAFBBGohASACQf/9+3dqIAJBf3NxQYCBgoR4cUUNAAsLIAAgAS0AACICOgAAIAJFDQADQCAAIAEtAAEiAjoAASAAQQFqIQAgAUEBaiEBIAINAAsLC5cEAQF/IwBBMGsiAiQAIAIgADYCKCACIAE3AyAgAkEBNgIcAkAgAikDICACKAIoKQMwWgRAIAIoAihBCGpBEkEAEBUgAkF/NgIsDAELAkAgAigCHA0AIAIoAigoAkAgAikDIKdBBHRqKAIERQ0AIAIoAigoAkAgAikDIKdBBHRqKAIEKAIAQQJxRQ0AAkAgAigCKCgCQCACKQMgp0EEdGooAgAEQCACIAIoAiggAikDIEEIIAIoAihBCGoQTyIANgIMIABFBEAgAkF/NgIsDAQLIAIgAigCKCACKAIMQQBBABBVNwMQAkAgAikDEEIAUw0AIAIpAxAgAikDIFENACACKAIoQQhqQQpBABAVIAJBfzYCLAwECwwBCyACQQA2AgwLIAIgAigCKCACKQMgQQAgAigCKEEIahBPIgA2AgggAEUEQCACQX82AiwMAgsgAigCDARAIAIoAigoAlAgAigCDCACKQMgQQAgAigCKEEIahB9QQFxRQRAIAJBfzYCLAwDCwsgAigCKCgCUCACKAIIIAIoAihBCGoQWUEBcUUEQCACKAIoKAJQIAIoAgxBABBZGiACQX82AiwMAgsLIAIoAigoAkAgAikDIKdBBHRqKAIEEDogAigCKCgCQCACKQMgp0EEdGpBADYCBCACKAIoKAJAIAIpAyCnQQR0ahBjIAJBADYCLAsgAigCLCEAIAJBMGokACAACyYBAX8DQCABRQRAQQAPCyAAIAFBf2oiAWoiAi0AAEEvRw0ACyACC6kBAQN/AkAgAC0AACICRQ0AA0AgAS0AACIERQRAIAIhAwwCCwJAIAIgBEYNACACQSByIAIgAkG/f2pBGkkbIAEtAAAiAkEgciACIAJBv39qQRpJG0YNACAALQAAIQMMAgsgAUEBaiEBIAAtAAEhAiAAQQFqIQAgAg0ACwsgA0H/AXEiAEEgciAAIABBv39qQRpJGyABLQAAIgBBIHIgACAAQb9/akEaSRtrC+gDAQN/IwBBsAFrIgEkACABIAA2AqgBIAEoAqgBEDgCQAJAIAEoAqgBKAIAQQBOBEAgASgCqAEoAgBBoA4oAgBIDQELIAEgASgCqAEoAgA2AhAgAUEgakG8lwEgAUEQahBvIAFBADYCpAEgASABQSBqNgKgAQwBCyABIAEoAqgBKAIAQQJ0QaANaigCADYCpAECQAJAAkACQCABKAKoASgCAEECdEGwDmooAgBBf2oOAgABAgsgASABKAKoASgCBEGQmgEoAgAQpAI2AqABDAILIwBBEGsiACABKAKoASgCBDYCDCABQQAgACgCDGtBAnRB2NQAaigCADYCoAEMAQsgAUEANgKgAQsLAkAgASgCoAFFBEAgASABKAKkATYCrAEMAQsgASABKAKgARAsAn8gASgCpAEEQCABKAKkARAsQQJqDAELQQALakEBahAZIgA2AhwgAEUEQCABQdgNKAIANgKsAQwBCyABKAIcIQACfyABKAKkAQRAIAEoAqQBDAELQdSXAQshAkHVlwFB1JcBIAEoAqQBGyEDIAEgASgCoAE2AgggASADNgIEIAEgAjYCACAAQc2XASABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAtxAQN/AkACQANAIAAgAkHQiAFqLQAARwRAQdcAIQMgAkEBaiICQdcARw0BDAILCyACIgMNAEGwiQEhAAwBC0GwiQEhAgNAIAItAAAhBCACQQFqIgAhAiAEDQAgACECIANBf2oiAw0ACwsgASgCFBogAAszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGhogACAAKAIUIAFqNgIUIAILigEBAn8jAEGgAWsiAyQAIANBCGpBuIcBQZABEBoaIAMgADYCNCADIAA2AhwgA0F+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QQhxBEAgACABQSByNgIAQX8PCyAAQgA3AgQgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCEEEACwYAQaShAQsGAEGgoQELBgBBmKEBC9kDAgJ/An4jAEEgayICJAACQCABQv///////////wCDIgVCgICAgICAwP9DfCAFQoCAgICAgMCAvH98VARAIAFCBIYgAEI8iIQhBCAAQv//////////D4MiAEKBgICAgICAgAhaBEAgBEKBgICAgICAgMAAfCEEDAILIARCgICAgICAgIBAfSEEIABCgICAgICAgIAIhUIAUg0BIARCAYMgBHwhBAwBCyAAUCAFQoCAgICAgMD//wBUIAVCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQQMAQtCgICAgICAgPj/ACEEIAVC////////v//DAFYNAEIAIQQgBUIwiKciA0GR9wBJDQAgAkEQaiAAIAFC////////P4NCgICAgICAwACEIgQgA0H/iH9qELMCIAIgACAEQYH4ACADaxCyAiACKQMIQgSGIAIpAwAiAEI8iIQhBCACKQMQIAIpAxiEQgBSrSAAQv//////////D4OEIgBCgYCAgICAgIAIWgRAIARCAXwhBAwBCyAAQoCAgICAgICACIVCAFINACAEQgGDIAR8IQQLIAJBIGokACAEIAFCgICAgICAgICAf4OEvwtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAuLAgACQCAABH8gAUH/AE0NAQJAQZCaASgCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAg8LIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMPCyABQYCAfGpB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBA8LC0G0nAFBGTYCAEF/BUEBCw8LIAAgAToAAEEBC74CAQF/IwBBwMAAayIDJAAgAyAANgK4QCADIAE2ArRAIAMgAjcDqEACQCADKAK0QBBJQQBIBEAgAygCuEBBCGogAygCtEAQGCADQX82ArxADAELIANBADYCDCADQgA3AxADQAJAIAMgAygCtEAgA0EgakKAwAAQLyICNwMYIAJCAFcNACADKAK4QCADQSBqIAMpAxgQNkEASARAIANBfzYCDAUgAykDGEKAwABSDQIgAygCuEAoAlRFDQIgAykDqEBCAFcNAiADIAMpAxggAykDEHw3AxAgAygCuEAoAlQgAykDELkgAykDqEC5oxBYDAILCwsgAykDGEIAUwRAIAMoArhAQQhqIAMoArRAEBggA0F/NgIMCyADKAK0QBAyGiADIAMoAgw2ArxACyADKAK8QCEAIANBwMAAaiQAIAALqgEBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI3AxggAyADKAIoKAIAEDUiAjcDEAJAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoIAMoAiQgAykDGBCQAyICNwMAIAJCAFMEQCADQX82AiwMAQsgAyADKAIoKAIAEDUiAjcDCCACQgBTBEAgA0F/NgIsDAELIANBADYCLAsgAygCLCEAIANBMGokACAAC/4BAQF/IwBBoMAAayICJAAgAiAANgKYQCACIAE3A5BAIAIgAikDkEC6OQMAAkADQCACKQOQQEIAVgRAIAICfkKAwAAgAikDkEBCgMAAVg0AGiACKQOQQAs+AgwgAigCmEAoAgAgAkEQaiACKAIMrSACKAKYQEEIahBhQQBIBEAgAkF/NgKcQAwDCyACKAKYQCACQRBqIAIoAgytEDZBAEgEQCACQX82ApxADAMFIAIgAikDkEAgAjUCDH03A5BAIAIoAphAKAJUIAIrAwAgAikDkEC6oSACKwMAoxBYDAILAAsLIAJBADYCnEALIAIoApxAIQAgAkGgwABqJAAgAAvnEQIBfwF+IwBBoAFrIgMkACADIAA2ApgBIAMgATYClAEgAyACNgKQAQJAIAMoApQBIANBOGoQOUEASARAIAMoApgBQQhqIAMoApQBEBggA0F/NgKcAQwBCyADKQM4QsAAg1AEQCADIAMpAzhCwACENwM4IANBADsBaAsCQAJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQsgAy8BaEUNACADKAKQASADLwFoNgIQDAELAkACQCADKAKQASgCEA0AIAMpAzhCBINQDQAgAyADKQM4QgiENwM4IAMgAykDUDcDWAwBCyADIAMpAzhC9////w+DNwM4CwsgAykDOEKAAYNQBEAgAyADKQM4QoABhDcDOCADQQA7AWoLIANBgAI2AiQCQCADKQM4QgSDUARAIAMgAygCJEGACHI2AiQgA0J/NwNwDAELIAMoApABIAMpA1A3AyggAyADKQNQNwNwAkAgAykDOEIIg1AEQAJAAkACQAJAAkACfwJAIAMoApABKAIQQX9HBEAgAygCkAEoAhBBfkcNAQtBCAwBCyADKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIANClMLk8w83AxAMAwsgA0KDg7D/DzcDEAwCCyADQv////8PNwMQDAELIANCADcDEAsgAykDUCADKQMQVgRAIAMgAygCJEGACHI2AiQLDAELIAMoApABIAMpA1g3AyALCyADIAMoApgBKAIAEDUiBDcDiAEgBEIAUwRAIAMoApgBQQhqIAMoApgBKAIAEBggA0F/NgKcAQwBCyADKAKQASIAIAAvAQxB9/8DcTsBDCADIAMoApgBIAMoApABIAMoAiQQXiIANgIoIABBAEgEQCADQX82ApwBDAELIAMgAy8BaAJ/AkAgAygCkAEoAhBBf0cEQCADKAKQASgCEEF+Rw0BC0EIDAELIAMoApABKAIQC0H//wNxRzoAIiADIAMtACJBAXEEfyADLwFoQQBHBUEAC0EBcToAISADIAMvAWgEfyADLQAhBUEBC0EBcToAICADIAMtACJBAXEEfyADKAKQASgCEEEARwVBAAtBAXE6AB8gAwJ/QQEgAy0AIkEBcQ0AGkEBIAMoApABKAIAQYABcQ0AGiADKAKQAS8BUiADLwFqRwtBAXE6AB4gAyADLQAeQQFxBH8gAy8BakEARwVBAAtBAXE6AB0gAyADLQAeQQFxBH8gAygCkAEvAVJBAEcFQQALQQFxOgAcIAMgAygClAE2AjQjAEEQayIAIAMoAjQ2AgwgACgCDCIAIAAoAjBBAWo2AjAgAy0AHUEBcQRAIAMgAy8BakEAEHciADYCDCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADLwFqQQAgAygCmAEoAhwgAygCDBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAy0AIUEBcQRAIAMgAygCmAEgAygCNCADLwFoEKsBIgA2AjAgAEUEQCADKAI0EBwgA0F/NgKcAQwCCyADKAI0EBwgAyADKAIwNgI0CyADLQAgQQFxBEAgAyADKAKYASADKAI0QQAQqgEiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtAB9BAXEEQCADIAMoApgBIAMoAjQgAygCkAEoAhAgAygCkAEvAVAQwgIiADYCMCAARQRAIAMoAjQQHCADQX82ApwBDAILIAMoAjQQHCADIAMoAjA2AjQLIAMtABxBAXEEQCADQQA2AgQCQCADKAKQASgCVARAIAMgAygCkAEoAlQ2AgQMAQsgAygCmAEoAhwEQCADIAMoApgBKAIcNgIECwsgAyADKAKQAS8BUkEBEHciADYCCCAARQRAIAMoApgBQQhqQRhBABAVIAMoAjQQHCADQX82ApwBDAILIAMgAygCmAEgAygCNCADKAKQAS8BUkEBIAMoAgQgAygCCBEGACIANgIwIABFBEAgAygCNBAcIANBfzYCnAEMAgsgAygCNBAcIAMgAygCMDYCNAsgAyADKAKYASgCABA1IgQ3A4ABIARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAyADKAKYASADKAI0IAMpA3AQtQI2AiwgAygCNCADQThqEDlBAEgEQCADKAKYAUEIaiADKAI0EBggA0F/NgIsCyADIAMoAjQQuwIiADoAIyAAQRh0QRh1QQBIBEAgAygCmAFBCGogAygCNBAYIANBfzYCLAsgAygCNBAcIAMoAixBAEgEQCADQX82ApwBDAELIAMgAygCmAEoAgAQNSIENwN4IARCAFMEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAygCmAEoAgAgAykDiAEQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgAykDOELkAINC5ABSBEAgAygCmAFBCGpBFEEAEBUgA0F/NgKcAQwBCyADKAKQASgCAEEgcUUEQAJAIAMpAzhCEINCAFIEQCADKAKQASADKAJgNgIUDAELIAMoApABQRRqEAEaCwsgAygCkAEgAy8BaDYCECADKAKQASADKAJkNgIYIAMoApABIAMpA1A3AyggAygCkAEgAykDeCADKQOAAX03AyAgAygCkAEgAygCkAEvAQxB+f8DcSADLQAjQQF0cjsBDCADKAKQASADKAIkQYAIcUEARxCKAyADIAMoApgBIAMoApABIAMoAiQQXiIANgIsIABBAEgEQCADQX82ApwBDAELIAMoAiggAygCLEcEQCADKAKYAUEIakEUQQAQFSADQX82ApwBDAELIAMoApgBKAIAIAMpA3gQqAFBAEgEQCADKAKYAUEIaiADKAKYASgCABAYIANBfzYCnAEMAQsgA0EANgKcAQsgAygCnAEhACADQaABaiQAIAALrwIBAX8jAEEgayICIAA2AhwgAiABNgIYIAJBADYCFCACQgA3AwACQCACKAIcLQAoQQFxRQRAIAIoAhwoAhggAigCHCgCFEYNAQsgAkEBNgIUCyACQgA3AwgDQCACKQMIIAIoAhwpAzBUBEACQAJAIAIoAhwoAkAgAikDCKdBBHRqKAIIDQAgAigCHCgCQCACKQMIp0EEdGotAAxBAXENACACKAIcKAJAIAIpAwinQQR0aigCBEUNASACKAIcKAJAIAIpAwinQQR0aigCBCgCAEUNAQsgAkEBNgIUCyACKAIcKAJAIAIpAwinQQR0ai0ADEEBcUUEQCACIAIpAwBCAXw3AwALIAIgAikDCEIBfDcDCAwBCwsgAigCGARAIAIoAhggAikDADcDAAsgAigCFAuMEAMCfwF+AXwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIAEgASgCWCABQUBrELkCNgIkIAEpA0BQBEACQCABKAJYKAIEQQhxRQRAIAEoAiRFDQELIAEoAlgoAgAQhAJBAEgEQAJAAn8jAEEQayICIAEoAlgoAgA2AgwjAEEQayIAIAIoAgxBDGo2AgwgACgCDCgCAEEWRgsEQCMAQRBrIgIgASgC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NgI8IAEoAlAgASgCODYCQCABKAJYIAEoAjAQ1gIgASABKAJYKAIMNgJIIAEgASgCWCgCEDYCQCABIAEoAlgoAgA2AkwgASABKAJYKAIENgJEIAEgASgCUCgCPDYCPCABIAEoAlAoAkA2AjggASgCUCgCBEG//gBGBEAgASgCUEF/NgLINwsMDQsgASgCUEEANgLINwNAAkAgASABKAJQKAJQIAEoAjxBASABKAJQKAJYdEEBa3FBAnRqKAEANgEgIAEtACEgASgCOE0NACABKAJERQ0NIAEgASgCREF/ajYCRCABIAEoAkwiAEEBajYCTCABIAEoAjwgAC0AACABKAI4dGo2AjwgASABKAI4QQhqNgI4DAELCwJAIAEtACBFDQAgAS0AIEHwAXENACABIAEoASA2ARgDQAJAIAEgASgCUCgCUCABLwEaIAEoAjxBASABLQAZIAEtABhqdEEBa3EgAS0AGXZqQQJ0aigBADYBICABLQAZIAEtACFqIAEoAjhNDQAgASgCREUNDiABIAEoAkRBf2o2AkQgASABKAJMIgBBAWo2AkwgASABKAI8IAAtAAAgASgCOHRqNgI8IAEgASgCOEEIajYCOAwBCwsgASABKAI8IAEtABl2NgI8IAEgASgCOCABLQAZazYCOCABKAJQIgAgAS0AGSAAKALIN2o2Asg3CyABIAEoAjwgAS0AIXY2AjwgASABKAI4IAEtACFrNgI4IAEoAlAiACABLQAhIAAoAsg3ajYCyDcgASgCUCABLwEiNgJEIAEtACBFBEAgASgCUEHN/gA2AgQMDQsgAS0AIEEgcQRAIAEoAlBBfzYCyDcgASgCUEG//gA2AgQMDQsgAS0AIEHAAHEEQCABKAJYQYfxADYCGCABKAJQQdH+ADYCBAwNCyABKAJQIAEtACBBD3E2AkwgASgCUEHJ/gA2AgQLIAEoAlAoAkwEQANAIAEoAjggASgCUCgCTEkEQCABKAJERQ0NIAEgASgCREF/ajYCRCABIAEoAkwiAEEBajYCTCABIAEoAjwgAC0AACABKAI4dGo2AjwgASABKAI4QQhqNgI4DAELCyABKAJQIgAgACgCRCABKAI8QQEgASgCUCgCTHRBAWtxajYCRCABIAEoAjwgASgCUCgCTHY2AjwgASABKAI4IAEoAlAoAkxrNgI4IAEoAlAiACAB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KAIMSQRAIAIgAigCUCIAQQFqNgJQIAIgAigCLCAALQAAIAIoAih0ajYCLCACIAIoAihBCGo2AiggAigCKCACKAIMSQRAIAIgAigCUCIAQQFqNgJQIAIgAigCLCAALQAAIAIoAih0ajYCLCACIAIoAihBCGo2AigLCyACIAIoAgQgAigCLEEBIAIoAgx0QQFrcWo2AgQgAiACKAIsIAIoAgx2NgIsIAIgAigCKCACKAIMazYCKCACIAIoAkggAigCRGs2AgwCQCACKAIEIAIoAgxLBEAgAiACKAIEIAIoAgxrNgIMIAIoAgwgAigCOEsEQCACKAJUKALENwRAIAIoAlxBsO0ANgIYIAIoAlRB0f4ANgIEDAoLCyACIAIoAjA2AgACQCACKAI0RQRAIAIgAigCACACKAI8IAIoAgxrajYCACACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCSCACKAIEazYCAAsMAQsCQCACKAI0IAIoAgxJBEAgAiACKAIAIAIoAjwgAigCNGogAigCDGtqNgIAIAIgAigCDCACKAI0azYCDCACKAIMIAIoAghJBEAgAiACKAIIIAIoAgxrNgIIA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgxBf2oiADYCDCAADQALIAIgAigCMDYCACACKAI0IAIoAghJBEAgAiACKAI0NgIMIAIgAigCCCACKAIMazYCCANAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIMQX9qIgA2AgwgAA0ACyACIAIoAkggAigCBGs2AgALCwwBCyACIAIoAgAgAigCNCACKAIMa2o2AgAgAigCDCACKAIISQRAIAIgAigCCCACKAIMazYCCANAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIMQX9qIgA2AgwgAA0ACyACIAIoAkggAigCBGs2AgALCwsDQCACKAIIQQJNRQRAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCCEEDazYCCAwBCwsMAQsgAiACKAJIIAIoAgRrNgIAA0AgAiACKAIAIgBBAWo2AgAgAC0AACEAIAIgAigCSCIBQQFqNgJIIAEgADoAACACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIgAigCACIAQQFqNgIAIAAtAAAhACACIAIoAkgiAUEBajYCSCABIAA6AAAgAiACKAIIQQNrNgIIIAIoAghBAksNAAsLIAIoAggEQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAAIAIoAghBAUsEQCACIAIoAgAiAEEBajYCACAALQAAIQAgAiACKAJIIgFBAWo2AkggASAAOgAACwsMAgsgAigCDEHAAHFFBEAgAkEQaiACKAIgIAIvARIgAigCLEEBIAIoAgx0QQFrcWpBAnRqKAEANgEADAELCyACKAJcQc7tADYCGCACKAJUQdH+ADYCBAwECwwCCyACKAIMQcAAcUUEQCACQRBqIAIoAiQgAi8BEiACKAIsQQEgAigCDHRBAWtxakECdGooAQA2AQAMAQsLIAIoAgxBIHEEQCACKAJUQb/+ADYCBAwCCyACKAJcQeTtADYCGCACKAJUQdH+ADYCBAwBC0EAIQAgAigCUCACKAJMSQR/IAIoAkggAigCQEkFQQALQQFxDQELCyACIAIoAihBA3Y2AgggAiACKAJQIAIoAghrNgJQIAIgAigCKCACKAIIQQN0azYCKCACIAIoAixBASACKAIodEEBa3E2AiwgAigCXCACKAJQNgIAIAIoAlwgAigCSDYCDCACKAJcAn8gAigCUCACKAJMSQRAIAIoAkwgAigCUGtBBWoMAQtBBSACKAJQIAIoAkxraws2AgQgAigCXAJ/IAIoAkggAigCQEkEQCACKAJAIAIoAkhrQYECagwBC0GBAiACKAJIIAIoAkBraws2AhAgAigCVCACKAIsNgI8IAIoAlQgAigCKDYCQAvBEAECfyMAQSBrIgIk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LSAAKAKgLUEBdGogAi8BEDsBACACLQATIQEgAigCKCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BEEF/ajsBECACKAIoIAItABNBgNkAai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIoQYgTagJ/IAIvARBBgAJIBEAgAi8BEC0AgFUMAQsgAi8BEEEHdUGAAmotAIBVC0ECdGoiACAALwEAQQFqOwEAIAIgAigCKCgCoC0gAigCKCgCnC1BAWtGNgIgIAIoAigiACAAKAJ0IAIoAigoAmBrNgJ0IAIoAigiACACKAIoKAJgIAAoAmxqNgJsIAIoAihBADYCYAwBCyACIAIoAigiACgCOCAAKAJsai0AADoADyACKAIoIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAA8hASACKAIoIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCKCACLQAPQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAigoAqAtIAIoAigoApwtQQFrRjYCICACKAIoIgAgACgCdEF/ajYCdCACKAIoIgAgACgCbEEBajYCbAsgAigCIARAIAIoAigCfyACKAIoKAJcQQBOBEAgAigCKCgCOCACKAIoKAJcagwBC0EACyACKAIoKAJsIAIoAigoAlxrQQAQKSACKAIoIAIoAigoAmw2AlwgAigCKCgCABAdIAIoAigoAgAoAhBFBEAgAkEANgIsDAQLCwwBCwsgAigCKEEANgK0LSACKAIkQQRGBEAgAigCKAJ/IAIoAigoAlxBAE4EQCACKAIoKAI4IAIoAigoAlxqDAELQQALIAIoAigoAmwgAigCKCgCXGtBARApIAIoAiggAigCKCgCbDYCXCACKAIoKAIAEB0gAigCKCgCACgCEEUEQCACQQI2AiwMAgsgAkEDNgIsDAELIAIoAigoAqAtBEAgAigCKAJ/IAIoAigoAlxBAE4EQCACKAIoKAI4IAIoAigoAlxqDAELQQALIAIoAigoAmwgAigCKCgCXGtBABApIAIoAiggAigCKCgCbDYCXCACKAIoKAIAEB0gAigCKCgCACgCEEUEQCACQQA2AiwMAgsLIAJBATYCLAsgAigCLCEAIAJBMGokACAAC8AFAQJ/IwBBIGsiAiQA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AgQgAkEANgIQA0AgAigCEEEPSkUEQCACKAI8QbwWaiACKAIQQQF0akEAOwEAIAIgAigCEEEBajYCEAwBCwsgAigCNCACKAI8QdwWaiACKAI8KALUKEECdGooAgBBAnRqQQA7AQIgAiACKAI8KALUKEEBajYCHANAIAIoAhxBvQRIBEAgAiACKAI8QdwWaiACKAIcQQJ0aigCADYCGCACIAIoAjQgAigCNCACKAIYQQJ0ai8BAkECdGovAQJBAWo2AhAgAigCECACKAIgSgRAIAIgAigCIDYCECACIAIoAgRBAWo2AgQLIAIoAjQgAigCGEECdGogAigCEDsBAiACKAIYIAIoAjBMBEAgAigCPCACKAIQQQF0akG8FmoiACAALwEAQQFqOwEAIAJBADYCDCACKAIYIAIoAiROBEAgAiACKAIoIAIoAhggAigCJGtBAnRqKAIANgIMCyACIAIoAjQgAigCGEECdGovAQA7AQogAigCPCIAIAAoAqgtIAIvAQogAigCECACKAIMamxqNgKoLSACKAIsBEAgAigCPCIAIAAoAqwtIAIvAQogAigCLCACKAIYQQJ0ai8BAiACKAIMamxqNgKsLQsLIAIgAigCHEEBajYCHAwBCwsCQCACKAIERQ0AA0AgAiACKAIgQQFrNgIQA0AgAigCPEG8FmogAigCEEEBdGovAQBFBEAgAiACKAIQQX9qNgIQDAELCyACKAI8IAIoAhBBAXRqQbwWaiIAIAAvAQBBf2o7AQAgAigCPCACKAIQQQF0akG+FmoiACAALwEAQQJqOwEAIAIoAjwgAigCIEEBdGpBvBZqIgAgAC8BAEF/ajsBACACIAIoAgRBAms2AgQgAigCBEEASg0ACyACIAIoAiA2AhADQCACKAIQRQ0BIAIgAigCPEG8FmogAigCEEEBdGovAQA2AhgDQCACKAIYBEAgAigCPEHcFmohACACIAIoAhxBf2oiATYCHCACIAFBAnQgAGooAgA2AhQgAigCFCACKAIwSg0BIAIoAjQgAigCFEECdGovAQIgAigCEEcEQCACKAI8IgAgACgCqC0gAigCNCACKAIUQQJ0ai8BACACKAIQIAIoAjQgAigCFEECdGovAQJrbGo2AqgtIAIoAjQgAigCFEECdGogAigCEDsBAgsgAiACKAIYQX9qNgIYDAELCyACIAIo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KAIMIAEoAgxB/BRqNgKwFiABKAIMQajbADYCuBYgASgCDEEAOwG4LSABKAIMQQA2ArwtIAEoAgwQuQEgAUEQaiQAC9cNAQF/IwBBIGsiAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYQRB2NgIMIAMgAygCGEH//wNxNgIYAkAgAygCEEEBRgRAIAMgAygCFC0AACADKAIYajYCGCADKAIYQfH/A08EQCADIAMoAhhB8f8DazYCGAsgAyADKAIYIAMoAgxqNgIMIAMoAgxB8f8DTwRAIAMgAygCDEHx/wNrNgIMCyADIAMoAhggAygCDEEQdHI2AhwMAQsgAygCFEUEQCADQQE2AhwMAQsgAygCEEEQSQRAA0AgAyADKAIQIgBBf2o2AhAgAARAIAMgAygCFCIAQQFqNgIUIAMgAC0AACADKAIYajYCGCADIAMoAhggAygCDGo2AgwMAQsLIAMoAhhB8f8DTwRAIAMgAygCGEHx/wNrNgIYCyADIAMoAgxB8f8DcDYCDCADIAMoAhggAygCDEEQdHI2AhwMAQsDQCADKAIQQbArSUUEQCADIAMoAhBBsCtrNgIQIANB2wI2AggDQCADIAMoAhQtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AASADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQACIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAMgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAFIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAYgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AByADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAIIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAkgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQALIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAwgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAOIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA8gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFEEQajYCFCADIAMoAghBf2oiADYCCCAADQALIAMgAygCGEHx/wNwNgIYIAMgAygCDEHx/wNwNgIMDAELCyADKAIQBEADQCADKAIQQRBJRQRAIAMgAygCEEEQazYCECADIAMoAhQtAAAgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AASADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQACIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAMgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ABCADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAFIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAYgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0AByADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAIIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAkgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ACiADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQALIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAAwgAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFC0ADSADKAIYajYCGCADIAMoAhggAygCDGo2AgwgAyADKAIULQAOIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDCADIAMoAhQtAA8gAygCGGo2AhggAyADKAIYIAMoAgxqNgIMIAMgAygCFEEQajYCFAwBCwsDQCADIAMoAhAiAEF/ajYCECAABEAgAyADKAIUIgBBAWo2AhQgAyAALQAAIAMoAhhqNgIYIAMgAygCGCADKAIMajYCDAwBCwsgAyADKAIYQfH/A3A2AhggAyADKAIMQfH/A3A2AgwLIAMgAygC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KAIEDAELIAMoAgwoAgALQYAEEF4iADYCECAAQQBIBEAgA0J/NwO4AQwDCyADKAIQBEAgA0EBOgAXCyADIAMpAxhCAXw3AxgMAQsLIAMgAygCtAEoAgAQNSICNwMgIAJCAFMEQCADKAK0AUEIaiADKAK0ASgCABAYIANCfzcDuAEMAQsgAyADKQMgIAMpA6ABfTcDmAECQCADKQOgAUL/////D1gEQCADKQOoAUL//wNYDQELIANBAToAFwsgAyADQTBqQuIAECoiADYCLCAARQRAIAMoArQBQQhqQQ5BABAVIANCfzcDuAEMAQsgAy0AF0EBcQRAIAMoAixBttMAQQQQQCADKAIsQiwQLiADKAIsQS0QICADKAIsQS0QICADKAIsQQAQISADKAIsQQAQISADKAIsIAMpA6gBEC4gAygCLCADKQOoARAuIAMoAiwgAykDmAEQLiADKAIsIAMpA6ABEC4gAygCLEG70wBBBBBAIAMoAixBABAhIAMoAiwgAykDoAEgAykDmAF8EC4gAygCLEEBECELIAMoAixBwNMAQQQQQCADKAIsQQAQISADKAIsAn5C//8DIAMpA6gBQv//A1oNABogAykDqAELp0H//wNxECAgAygCLAJ+Qv//AyADKQOoAUL//wNaDQAaIAMpA6gBC6dB//8DcRAgIAMoAiwCf0F/IAMpA5gBQv////8PWg0AGiADKQOYAacLECEgAygCLAJ/QX8gAykDoAFC/////w9aDQAaIAMpA6ABpwsQISADAn8gAygCtAEtAChBAXEEQCADKAK0ASgCJAwBCyADKAK0ASgCIAs2ApQBIAMoAiwCfyADKAKUAQRAIAMoApQBLwEEDAELQQALQf//A3EQIAJ/IwBBEGsiACADKAIsNgIMIAAoAgwtAABBAXFFCwRAIAMoArQBQQhqQRRBABAVIAMoAiwQFyADQn83A7gBDAELIAMoArQBAn8jAEEQayIAIAMoAiw2AgwgACgCDCgCBAsCfiMAQRBrIgAgAygCLDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCLBAXIANCfzcDuAEMAQsgAygCLBAXIAMoApQBBEAgAygCtAEgAygClAEoAgAgAygClAEvAQStEDZBAEgEQCADQn83A7gBDAILCyADIAMpA5gBNwO4AQsgAykDuAEhAiADQcABaiQAIAILBwAgACgCIAsIAEEBQTgQewsDAAELC/KNAScAQYAIC5QFTm8gZXJyb3IATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQAQ2xvc2luZyB6aXAgYXJjaGl2ZSBmYWlsZWQAU2VlayBlcnJvcgBSZWFkIGVycm9yAFdyaXRlIGVycm9yAENSQyBlcnJvcgBDb250YWluaW5nIHppcCBhcmNoaXZlIHdhcyBjbG9zZWQATm8gc3VjaCBmaWxlAEZpbGUgYWxyZWFkeSBleGlzdHMAQ2FuJ3Qgb3BlbiBmaWxlAEZhaWx1cmUgdG8gY3JlYXRlIHRlbXBvcmFyeSBmaWxlAFpsaWIgZXJyb3IATWFsbG9jIGZhaWx1cmUARW50cnkgaGFzIGJlZW4gY2hhbmdlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABQcmVtYXR1cmUgZW5kIG9mIGZpbGUASW52YWxpZCBhcmd1bWVudABOb3QgYSB6aXAgYXJjaGl2ZQBJbnRlcm5hbCBlcnJvcgBaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQAQ2FuJ3QgcmVtb3ZlIGZpbGUARW50cnkgaGFzIGJlZW4gZGVsZXRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAFJlYWQtb25seSBhcmNoaXZlAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAFJlc291cmNlIHN0aWxsIGluIHVzZQBUZWxsIGVycm9yAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAEGhDQuAAQQAAAkEAAAvBAAATgQAAGkEAAB0BAAAfwQAAIsEAACVBAAAtwQAAMQEAADYBAAA6AQAAAkFAAAUBQAAIwUAADoFAABbBQAAcQUAAIIFAACUBQAAowUAALwFAADOBQAA5QUAAAUGAAAXBgAALAYAAEQGAABcBgAAcgYAAH0GAAAgAEG4DgsRAQAAAAEAAAABAAAAAQAAAAEAQdwOCwkBAAAAAQAAAAIAQYgPCwEBAEGoDwsB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CAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkAvwEJAH8ACQB/AQkA/wAJAP8BCQAAAAcAQAAHACAABwBgAAcAEAAHAFAABwAwAAcAcAAHAAgA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cnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AAFVua25vd24gZXJyb3IgJWQAJXMlcyVzAAA6IAAvcHJvYy9zZWxmL2ZkLwAvZGV2L3VyYW5kb20AcndhACVzLlhYWFhYWAByK2IAcmIAUEsFBgBBkJgBC04KAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAAQAAAAgAAAAQTAAAMEwAQZCaAQsCgFAAQciaAQsJHwAAAGRNAAADAEHkmgELjAEt9FFYz4yxwEb2tcspMQPHBFtwMLRd/SB4f4ua2FkpUGhIiaunVgNs/7fNiD/Ud7QrpaNw8brkqPxBg/3Zb+GKei8tdJYHHw0JXgN2LHD3QKUsp29XQaiqdN+gWGQDSsfEPFOur18YBBWx420ohqsMpL9D8OlQgTlXFlI3/////////////////////w==' + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile) + } + function getBinary() { + try { + if (wasmBinary) { + return new Uint8Array(wasmBinary) + } + var binary = tryParseAsDataURI(wasmBinaryFile) + if (binary) { + return binary + } + if (readBinary) { + return readBinary(wasmBinaryFile) + } else { + throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)" + } + } catch (err) { + abort(err) + } + } + function createWasm() { + var info = { a: asmLibraryArg } + function receiveInstance(instance, module) { + var exports = instance.exports + Module['asm'] = exports + removeRunDependency('wasm-instantiate') + } + addRunDependency('wasm-instantiate') + function instantiateSync() { + var instance + var module + var binary + try { + binary = getBinary() + module = new WebAssembly.Module(binary) + instance = new WebAssembly.Instance(module, info) + } catch (e) { + var str = e.toString() + err('failed to compile wasm module: ' + str) + if ( + str.indexOf('imported Memory') >= 0 || + str.indexOf('memory import') >= 0 + ) { + err( + 'Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time).' + ) + } + throw e + } + receiveInstance(instance, module) + } + if (Module['instantiateWasm']) { + try { + var exports = Module['instantiateWasm'](info, receiveInstance) + return exports + } catch (e) { + err('Module.instantiateWasm callback failed with error: ' + e) + return false + } + } + instantiateSync() + return Module['asm'] + } + var tempDouble + var tempI64 + __ATINIT__.push({ + func: function () { + ___wasm_call_ctors() + }, + }) + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift() + if (typeof callback == 'function') { + callback(Module) + continue + } + var func = callback.func + if (typeof func === 'number') { + if (callback.arg === undefined) { + wasmTable.get(func)() + } else { + wasmTable.get(func)(callback.arg) + } + } else { + func(callback.arg === undefined ? null : callback.arg) + } + } + } + function demangle(func) { + return func + } + function demangleAll(text) { + var regex = /\b_Z[\w\d_]+/g + return text.replace(regex, function (x) { + var y = demangle(x) + return x === y ? x : y + ' [' + x + ']' + }) + } + function jsStackTrace() { + var error = new Error() + if (!error.stack) { + try { + throw new Error() + } catch (e) { + error = e + } + if (!error.stack) { + return '(no stack trace available)' + } + } + return error.stack.toString() + } + function stackTrace() { + var js = jsStackTrace() + if (Module['extraStackTrace']) + js += '\n' + Module['extraStackTrace']() + return demangleAll(js) + } + function _gmtime_r(time, tmPtr) { + var date = new Date(HEAP32[time >> 2] * 1e3) + HEAP32[tmPtr >> 2] = date.getUTCSeconds() + HEAP32[(tmPtr + 4) >> 2] = date.getUTCMinutes() + HEAP32[(tmPtr + 8) >> 2] = date.getUTCHours() + HEAP32[(tmPtr + 12) >> 2] = date.getUTCDate() + HEAP32[(tmPtr + 16) >> 2] = date.getUTCMonth() + HEAP32[(tmPtr + 20) >> 2] = date.getUTCFullYear() - 1900 + HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay() + HEAP32[(tmPtr + 36) >> 2] = 0 + HEAP32[(tmPtr + 32) >> 2] = 0 + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0) + var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0 + HEAP32[(tmPtr + 28) >> 2] = yday + if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8('GMT') + HEAP32[(tmPtr + 40) >> 2] = _gmtime_r.GMTString + return tmPtr + } + function ___gmtime_r(a0, a1) { + return _gmtime_r(a0, a1) + } + var PATH = { + splitPath: function (filename) { + var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/ + return splitPathRe.exec(filename).slice(1) + }, + normalizeArray: function (parts, allowAboveRoot) { + var up = 0 + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i] + if (last === '.') { + parts.splice(i, 1) + } else if (last === '..') { + parts.splice(i, 1) + up++ + } else if (up) { + parts.splice(i, 1) + up-- + } + } + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..') + } + } + return parts + }, + normalize: function (path) { + var isAbsolute = path.charAt(0) === '/', + trailingSlash = path.substr(-1) === '/' + path = PATH.normalizeArray( + path.split('/').filter(function (p) { + return !!p + }), + !isAbsolute + ).join('/') + if (!path && !isAbsolute) { + path = '.' + } + if (path && trailingSlash) { + path += '/' + } + return (isAbsolute ? '/' : '') + path + }, + dirname: function (path) { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1] + if (!root && !dir) { + return '.' + } + if (dir) { + dir = dir.substr(0, dir.length - 1) + } + return root + dir + }, + basename: function (path) { + if (path === '/') return '/' + path = PATH.normalize(path) + path = path.replace(/\/$/, '') + var lastSlash = path.lastIndexOf('/') + if (lastSlash === -1) return path + return path.substr(lastSlash + 1) + }, + extname: function (path) { + return PATH.splitPath(path)[3] + }, + join: function () { + var paths = Array.prototype.slice.call(arguments, 0) + return PATH.normalize(paths.join('/')) + }, + join2: function (l, r) { + return PATH.normalize(l + '/' + r) + }, + } + function setErrNo(value) { + HEAP32[___errno_location() >> 2] = value + return value + } + var PATH_FS = { + resolve: function () { + var resolvedPath = '', + resolvedAbsolute = false + for ( + var i = arguments.length - 1; + i >= -1 && !resolvedAbsolute; + i-- + ) { + var path = i >= 0 ? arguments[i] : FS.cwd() + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings') + } else if (!path) { + return '' + } + resolvedPath = path + '/' + resolvedPath + resolvedAbsolute = path.charAt(0) === '/' + } + resolvedPath = PATH.normalizeArray( + resolvedPath.split('/').filter(function (p) { + return !!p + }), + !resolvedAbsolute + ).join('/') + return (resolvedAbsolute ? '/' : '') + resolvedPath || '.' + }, + relative: function (from, to) { + from = PATH_FS.resolve(from).substr(1) + to = PATH_FS.resolve(to).substr(1) + function trim(arr) { + var start = 0 + for (; start < arr.length; start++) { + if (arr[start] !== '') break + } + var end = arr.length - 1 + for (; end >= 0; end--) { + if (arr[end] !== '') break + } + if (start > end) return [] + return arr.slice(start, end - start + 1) + } + var fromParts = trim(from.split('/')) + var toParts = trim(to.split('/')) + var length = Math.min(fromParts.length, toParts.length) + var samePartsLength = length + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i + break + } + } + var outputParts = [] + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..') + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)) + return outputParts.join('/') + }, + } + var TTY = { + ttys: [], + init: function () {}, + shutdown: function () {}, + register: function (dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops } + FS.registerDevice(dev, TTY.stream_ops) + }, + stream_ops: { + open: function (stream) { + var tty = TTY.ttys[stream.node.rdev] + if (!tty) { + throw new FS.ErrnoError(43) + } + stream.tty = tty + stream.seekable = false + }, + close: function (stream) { + stream.tty.ops.flush(stream.tty) + }, + flush: function (stream) { + stream.tty.ops.flush(stream.tty) + }, + read: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60) + } + var bytesRead = 0 + for (var i = 0; i < length; i++) { + var result + try { + result = stream.tty.ops.get_char(stream.tty) + } catch (e) { + throw new FS.ErrnoError(29) + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6) + } + if (result === null || result === undefined) break + bytesRead++ + buffer[offset + i] = result + } + if (bytesRead) { + stream.node.timestamp = Date.now() + } + return bytesRead + }, + write: function (stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60) + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]) + } + } catch (e) { + throw new FS.ErrnoError(29) + } + if (length) { + stream.node.timestamp = Date.now() + } + return i + }, + }, + default_tty_ops: { + get_char: function (tty) { + if (!tty.input.length) { + var result = null + if (ENVIRONMENT_IS_NODE) { + var BUFSIZE = 256 + var buf = Buffer.alloc + ? Buffer.alloc(BUFSIZE) + : new Buffer(BUFSIZE) + var bytesRead = 0 + try { + bytesRead = nodeFS.readSync( + process.stdin.fd, + buf, + 0, + BUFSIZE, + null + ) + } catch (e) { + if (e.toString().indexOf('EOF') != -1) bytesRead = 0 + else throw e + } + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8') + } else { + result = null + } + } else if ( + typeof window != 'undefined' && + typeof window.prompt == 'function' + ) { + result = window.prompt('Input: ') + if (result !== null) { + result += '\n' + } + } else if (typeof readline == 'function') { + result = readline() + if (result !== null) { + result += '\n' + } + } + if (!result) { + return null + } + tty.input = intArrayFromString(result, true) + } + return tty.input.shift() + }, + put_char: function (tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)) + tty.output = [] + } else { + if (val != 0) tty.output.push(val) + } + }, + flush: function (tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)) + tty.output = [] + } + }, + }, + default_tty1_ops: { + put_char: function (tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)) + tty.output = [] + } else { + if (val != 0) tty.output.push(val) + } + }, + flush: function (tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)) + tty.output = [] + } + }, + }, + } + var MEMFS = { + ops_table: null, + mount: function (mount) { + return MEMFS.createNode(null, '/', 16384 | 511, 0) + }, + createNode: function (parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + throw new FS.ErrnoError(63) + } + if (!MEMFS.ops_table) { + MEMFS.ops_table = { + dir: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + lookup: MEMFS.node_ops.lookup, + mknod: MEMFS.node_ops.mknod, + rename: MEMFS.node_ops.rename, + unlink: MEMFS.node_ops.unlink, + rmdir: MEMFS.node_ops.rmdir, + readdir: MEMFS.node_ops.readdir, + symlink: MEMFS.node_ops.symlink, + }, + stream: { llseek: MEMFS.stream_ops.llseek }, + }, + file: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: { + llseek: MEMFS.stream_ops.llseek, + read: MEMFS.stream_ops.read, + write: MEMFS.stream_ops.write, + allocate: MEMFS.stream_ops.allocate, + mmap: MEMFS.stream_ops.mmap, + msync: MEMFS.stream_ops.msync, + }, + }, + link: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + readlink: MEMFS.node_ops.readlink, + }, + stream: {}, + }, + chrdev: { + node: { + getattr: MEMFS.node_ops.getattr, + setattr: MEMFS.node_ops.setattr, + }, + stream: FS.chrdev_stream_ops, + }, + } + } + var node = FS.createNode(parent, name, mode, dev) + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node + node.stream_ops = MEMFS.ops_table.dir.stream + node.contents = {} + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node + node.stream_ops = MEMFS.ops_table.file.stream + node.usedBytes = 0 + node.contents = null + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node + node.stream_ops = MEMFS.ops_table.link.stream + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node + node.stream_ops = MEMFS.ops_table.chrdev.stream + } + node.timestamp = Date.now() + if (parent) { + parent.contents[name] = node + } + return node + }, + getFileDataAsRegularArray: function (node) { + if (node.contents && node.contents.subarray) { + var arr = [] + for (var i = 0; i < node.usedBytes; ++i) + arr.push(node.contents[i]) + return arr + } + return node.contents + }, + getFileDataAsTypedArray: function (node) { + if (!node.contents) return new Uint8Array(0) + if (node.contents.subarray) + return node.contents.subarray(0, node.usedBytes) + return new Uint8Array(node.contents) + }, + expandFileStorage: function (node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0 + if (prevCapacity >= newCapacity) return + var CAPACITY_DOUBLING_MAX = 1024 * 1024 + newCapacity = Math.max( + newCapacity, + (prevCapacity * + (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125)) >>> + 0 + ) + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256) + var oldContents = node.contents + node.contents = new Uint8Array(newCapacity) + if (node.usedBytes > 0) + node.contents.set(oldContents.subarray(0, node.usedBytes), 0) + return + }, + resizeFileStorage: function (node, newSize) { + if (node.usedBytes == newSize) return + if (newSize == 0) { + node.contents = null + node.usedBytes = 0 + return + } + if (!node.contents || node.contents.subarray) { + var oldContents = node.contents + node.contents = new Uint8Array(newSize) + if (oldContents) { + node.contents.set( + oldContents.subarray(0, Math.min(newSize, node.usedBytes)) + ) + } + node.usedBytes = newSize + return + } + if (!node.contents) node.contents = [] + if (node.contents.length > newSize) node.contents.length = newSize + else while (node.contents.length < newSize) node.contents.push(0) + node.usedBytes = newSize + }, + node_ops: { + getattr: function (node) { + var attr = {} + attr.dev = FS.isChrdev(node.mode) ? node.id : 1 + attr.ino = node.id + attr.mode = node.mode + attr.nlink = 1 + attr.uid = 0 + attr.gid = 0 + attr.rdev = node.rdev + if (FS.isDir(node.mode)) { + attr.size = 4096 + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length + } else { + attr.size = 0 + } + attr.atime = new Date(node.timestamp) + attr.mtime = new Date(node.timestamp) + attr.ctime = new Date(node.timestamp) + attr.blksize = 4096 + attr.blocks = Math.ceil(attr.size / attr.blksize) + return attr + }, + setattr: function (node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size) + } + }, + lookup: function (parent, name) { + throw FS.genericErrors[44] + }, + mknod: function (parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev) + }, + rename: function (old_node, new_dir, new_name) { + if (FS.isDir(old_node.mode)) { + var new_node + try { + new_node = FS.lookupNode(new_dir, new_name) + } catch (e) {} + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55) + } + } + } + delete old_node.parent.contents[old_node.name] + old_node.name = new_name + new_dir.contents[new_name] = old_node + old_node.parent = new_dir + }, + unlink: function (parent, name) { + delete parent.contents[name] + }, + rmdir: function (parent, name) { + var node = FS.lookupNode(parent, name) + for (var i in node.contents) { + throw new FS.ErrnoError(55) + } + delete parent.contents[name] + }, + readdir: function (node) { + var entries = ['.', '..'] + for (var key in node.contents) { + if (!node.contents.hasOwnProperty(key)) { + continue + } + entries.push(key) + } + return entries + }, + symlink: function (parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 | 40960, 0) + node.link = oldpath + return node + }, + readlink: function (node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28) + } + return node.link + }, + }, + stream_ops: { + read: function (stream, buffer, offset, length, position) { + var contents = stream.node.contents + if (position >= stream.node.usedBytes) return 0 + var size = Math.min(stream.node.usedBytes - position, length) + if (size > 8 && contents.subarray) { + buffer.set(contents.subarray(position, position + size), offset) + } else { + for (var i = 0; i < size; i++) + buffer[offset + i] = contents[position + i] + } + return size + }, + write: function (stream, buffer, offset, length, position, canOwn) { + if (buffer.buffer === HEAP8.buffer) { + canOwn = false + } + if (!length) return 0 + var node = stream.node + node.timestamp = Date.now() + if ( + buffer.subarray && + (!node.contents || node.contents.subarray) + ) { + if (canOwn) { + node.contents = buffer.subarray(offset, offset + length) + node.usedBytes = length + return length + } else if (node.usedBytes === 0 && position === 0) { + node.contents = buffer.slice(offset, offset + length) + node.usedBytes = length + return length + } else if (position + length <= node.usedBytes) { + node.contents.set( + buffer.subarray(offset, offset + length), + position + ) + return length + } + } + MEMFS.expandFileStorage(node, position + length) + if (node.contents.subarray && buffer.subarray) { + node.contents.set( + buffer.subarray(offset, offset + length), + position + ) + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i] + } + } + node.usedBytes = Math.max(node.usedBytes, position + length) + return length + }, + llseek: function (stream, offset, whence) { + var position = offset + if (whence === 1) { + position += stream.position + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes + } + } + if (position < 0) { + throw new FS.ErrnoError(28) + } + return position + }, + allocate: function (stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length) + stream.node.usedBytes = Math.max( + stream.node.usedBytes, + offset + length + ) + }, + mmap: function (stream, address, length, position, prot, flags) { + assert(address === 0) + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + var ptr + var allocated + var contents = stream.node.contents + if (!(flags & 2) && contents.buffer === buffer) { + allocated = false + ptr = contents.byteOffset + } else { + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length) + } else { + contents = Array.prototype.slice.call( + contents, + position, + position + length + ) + } + } + allocated = true + ptr = FS.mmapAlloc(length) + if (!ptr) { + throw new FS.ErrnoError(48) + } + HEAP8.set(contents, ptr) + } + return { ptr: ptr, allocated: allocated } + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + if (mmapFlags & 2) { + return 0 + } + var bytesWritten = MEMFS.stream_ops.write( + stream, + buffer, + 0, + length, + offset, + false + ) + return 0 + }, + }, + } + var ERRNO_CODES = { + EPERM: 63, + ENOENT: 44, + ESRCH: 71, + EINTR: 27, + EIO: 29, + ENXIO: 60, + E2BIG: 1, + ENOEXEC: 45, + EBADF: 8, + ECHILD: 12, + EAGAIN: 6, + EWOULDBLOCK: 6, + ENOMEM: 48, + EACCES: 2, + EFAULT: 21, + ENOTBLK: 105, + EBUSY: 10, + EEXIST: 20, + EXDEV: 75, + ENODEV: 43, + ENOTDIR: 54, + EISDIR: 31, + EINVAL: 28, + ENFILE: 41, + EMFILE: 33, + ENOTTY: 59, + ETXTBSY: 74, + EFBIG: 22, + ENOSPC: 51, + ESPIPE: 70, + EROFS: 69, + EMLINK: 34, + EPIPE: 64, + EDOM: 18, + ERANGE: 68, + ENOMSG: 49, + EIDRM: 24, + ECHRNG: 106, + EL2NSYNC: 156, + EL3HLT: 107, + EL3RST: 108, + ELNRNG: 109, + EUNATCH: 110, + ENOCSI: 111, + EL2HLT: 112, + EDEADLK: 16, + ENOLCK: 46, + EBADE: 113, + EBADR: 114, + EXFULL: 115, + ENOANO: 104, + EBADRQC: 103, + EBADSLT: 102, + EDEADLOCK: 16, + EBFONT: 101, + ENOSTR: 100, + ENODATA: 116, + ETIME: 117, + ENOSR: 118, + ENONET: 119, + ENOPKG: 120, + EREMOTE: 121, + ENOLINK: 47, + EADV: 122, + ESRMNT: 123, + ECOMM: 124, + EPROTO: 65, + EMULTIHOP: 36, + EDOTDOT: 125, + EBADMSG: 9, + ENOTUNIQ: 126, + EBADFD: 127, + EREMCHG: 128, + ELIBACC: 129, + ELIBBAD: 130, + ELIBSCN: 131, + ELIBMAX: 132, + ELIBEXEC: 133, + ENOSYS: 52, + ENOTEMPTY: 55, + ENAMETOOLONG: 37, + ELOOP: 32, + EOPNOTSUPP: 138, + EPFNOSUPPORT: 139, + ECONNRESET: 15, + ENOBUFS: 42, + EAFNOSUPPORT: 5, + EPROTOTYPE: 67, + ENOTSOCK: 57, + ENOPROTOOPT: 50, + ESHUTDOWN: 140, + ECONNREFUSED: 14, + EADDRINUSE: 3, + ECONNABORTED: 13, + ENETUNREACH: 40, + ENETDOWN: 38, + ETIMEDOUT: 73, + EHOSTDOWN: 142, + EHOSTUNREACH: 23, + EINPROGRESS: 26, + EALREADY: 7, + EDESTADDRREQ: 17, + EMSGSIZE: 35, + EPROTONOSUPPORT: 66, + ESOCKTNOSUPPORT: 137, + EADDRNOTAVAIL: 4, + ENETRESET: 39, + EISCONN: 30, + ENOTCONN: 53, + ETOOMANYREFS: 141, + EUSERS: 136, + EDQUOT: 19, + ESTALE: 72, + ENOTSUP: 138, + ENOMEDIUM: 148, + EILSEQ: 25, + EOVERFLOW: 61, + ECANCELED: 11, + ENOTRECOVERABLE: 56, + EOWNERDEAD: 62, + ESTRPIPE: 135, + } + var NODEFS = { + isWindows: false, + staticInit: function () { + NODEFS.isWindows = !!process.platform.match(/^win/) + var flags = { fs: fs.constants } + if (flags['fs']) { + flags = flags['fs'] + } + NODEFS.flagsForNodeMap = { + 1024: flags['O_APPEND'], + 64: flags['O_CREAT'], + 128: flags['O_EXCL'], + 0: flags['O_RDONLY'], + 2: flags['O_RDWR'], + 4096: flags['O_SYNC'], + 512: flags['O_TRUNC'], + 1: flags['O_WRONLY'], + } + }, + bufferFrom: function (arrayBuffer) { + return Buffer['alloc'] + ? Buffer.from(arrayBuffer) + : new Buffer(arrayBuffer) + }, + convertNodeCode: function (e) { + var code = e.code + return ERRNO_CODES[code] + }, + mount: function (mount) { + return NODEFS.createNode( + null, + '/', + NODEFS.getMode(mount.opts.root), + 0 + ) + }, + createNode: function (parent, name, mode, dev) { + if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { + throw new FS.ErrnoError(28) + } + var node = FS.createNode(parent, name, mode) + node.node_ops = NODEFS.node_ops + node.stream_ops = NODEFS.stream_ops + return node + }, + getMode: function (path) { + var stat + try { + stat = fs.lstatSync(path) + if (NODEFS.isWindows) { + stat.mode = stat.mode | ((stat.mode & 292) >> 2) + } + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + return stat.mode + }, + realPath: function (node) { + var parts = [] + while (node.parent !== node) { + parts.push(node.name) + node = node.parent + } + parts.push(node.mount.opts.root) + parts.reverse() + return PATH.join.apply(null, parts) + }, + flagsForNode: function (flags) { + flags &= ~2097152 + flags &= ~2048 + flags &= ~32768 + flags &= ~524288 + var newFlags = 0 + for (var k in NODEFS.flagsForNodeMap) { + if (flags & k) { + newFlags |= NODEFS.flagsForNodeMap[k] + flags ^= k + } + } + if (!flags) { + return newFlags + } else { + throw new FS.ErrnoError(28) + } + }, + node_ops: { + getattr: function (node) { + var path = NODEFS.realPath(node) + var stat + try { + stat = fs.lstatSync(path) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + if (NODEFS.isWindows && !stat.blksize) { + stat.blksize = 4096 + } + if (NODEFS.isWindows && !stat.blocks) { + stat.blocks = + ((stat.size + stat.blksize - 1) / stat.blksize) | 0 + } + return { + dev: stat.dev, + ino: stat.ino, + mode: stat.mode, + nlink: stat.nlink, + uid: stat.uid, + gid: stat.gid, + rdev: stat.rdev, + size: stat.size, + atime: stat.atime, + mtime: stat.mtime, + ctime: stat.ctime, + blksize: stat.blksize, + blocks: stat.blocks, + } + }, + setattr: function (node, attr) { + var path = NODEFS.realPath(node) + try { + if (attr.mode !== undefined) { + fs.chmodSync(path, attr.mode) + node.mode = attr.mode + } + if (attr.timestamp !== undefined) { + var date = new Date(attr.timestamp) + fs.utimesSync(path, date, date) + } + if (attr.size !== undefined) { + fs.truncateSync(path, attr.size) + } + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + lookup: function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name) + var mode = NODEFS.getMode(path) + return NODEFS.createNode(parent, name, mode) + }, + mknod: function (parent, name, mode, dev) { + var node = NODEFS.createNode(parent, name, mode, dev) + var path = NODEFS.realPath(node) + try { + if (FS.isDir(node.mode)) { + fs.mkdirSync(path, node.mode) + } else { + fs.writeFileSync(path, '', { mode: node.mode }) + } + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + return node + }, + rename: function (oldNode, newDir, newName) { + var oldPath = NODEFS.realPath(oldNode) + var newPath = PATH.join2(NODEFS.realPath(newDir), newName) + try { + fs.renameSync(oldPath, newPath) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + oldNode.name = newName + }, + unlink: function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name) + try { + fs.unlinkSync(path) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + rmdir: function (parent, name) { + var path = PATH.join2(NODEFS.realPath(parent), name) + try { + fs.rmdirSync(path) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + readdir: function (node) { + var path = NODEFS.realPath(node) + try { + return fs.readdirSync(path) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + symlink: function (parent, newName, oldPath) { + var newPath = PATH.join2(NODEFS.realPath(parent), newName) + try { + fs.symlinkSync(oldPath, newPath) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + readlink: function (node) { + var path = NODEFS.realPath(node) + try { + path = fs.readlinkSync(path) + path = NODEJS_PATH.relative( + NODEJS_PATH.resolve(node.mount.opts.root), + path + ) + return path + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + }, + stream_ops: { + open: function (stream) { + var path = NODEFS.realPath(stream.node) + try { + if (FS.isFile(stream.node.mode)) { + stream.nfd = fs.openSync( + path, + NODEFS.flagsForNode(stream.flags) + ) + } + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + close: function (stream) { + try { + if (FS.isFile(stream.node.mode) && stream.nfd) { + fs.closeSync(stream.nfd) + } + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + read: function (stream, buffer, offset, length, position) { + if (length === 0) return 0 + try { + return fs.readSync( + stream.nfd, + NODEFS.bufferFrom(buffer.buffer), + offset, + length, + position + ) + } catch (e) { + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + write: function (stream, buffer, offset, length, position) { + try { + return fs.writeSync( + stream.nfd, + NODEFS.bufferFrom(buffer.buffer), + offset, + length, + position + ) + } catch (e) { + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + }, + llseek: function (stream, offset, whence) { + var position = offset + if (whence === 1) { + position += stream.position + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + try { + var stat = fs.fstatSync(stream.nfd) + position += stat.size + } catch (e) { + throw new FS.ErrnoError(NODEFS.convertNodeCode(e)) + } + } + } + if (position < 0) { + throw new FS.ErrnoError(28) + } + return position + }, + mmap: function (stream, address, length, position, prot, flags) { + assert(address === 0) + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + var ptr = FS.mmapAlloc(length) + NODEFS.stream_ops.read(stream, HEAP8, ptr, length, position) + return { ptr: ptr, allocated: true } + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + if (mmapFlags & 2) { + return 0 + } + var bytesWritten = NODEFS.stream_ops.write( + stream, + buffer, + 0, + length, + offset, + false + ) + return 0 + }, + }, + } + var NODERAWFS = { + lookupPath: function (path) { + return { path: path, node: { mode: NODEFS.getMode(path) } } + }, + createStandardStreams: function () { + FS.streams[0] = { + fd: 0, + nfd: 0, + position: 0, + path: '', + flags: 0, + tty: true, + seekable: false, + } + for (var i = 1; i < 3; i++) { + FS.streams[i] = { + fd: i, + nfd: i, + position: 0, + path: '', + flags: 577, + tty: true, + seekable: false, + } + } + }, + cwd: function () { + return process.cwd() + }, + chdir: function () { + process.chdir.apply(void 0, arguments) + }, + mknod: function (path, mode) { + if (FS.isDir(path)) { + fs.mkdirSync(path, mode) + } else { + fs.writeFileSync(path, '', { mode: mode }) + } + }, + mkdir: function () { + fs.mkdirSync.apply(void 0, arguments) + }, + symlink: function () { + fs.symlinkSync.apply(void 0, arguments) + }, + rename: function () { + fs.renameSync.apply(void 0, arguments) + }, + rmdir: function () { + fs.rmdirSync.apply(void 0, arguments) + }, + readdir: function () { + fs.readdirSync.apply(void 0, arguments) + }, + unlink: function () { + fs.unlinkSync.apply(void 0, arguments) + }, + readlink: function () { + return fs.readlinkSync.apply(void 0, arguments) + }, + stat: function () { + return fs.statSync.apply(void 0, arguments) + }, + lstat: function () { + return fs.lstatSync.apply(void 0, arguments) + }, + chmod: function () { + fs.chmodSync.apply(void 0, arguments) + }, + fchmod: function () { + fs.fchmodSync.apply(void 0, arguments) + }, + chown: function () { + fs.chownSync.apply(void 0, arguments) + }, + fchown: function () { + fs.fchownSync.apply(void 0, arguments) + }, + truncate: function () { + fs.truncateSync.apply(void 0, arguments) + }, + ftruncate: function () { + fs.ftruncateSync.apply(void 0, arguments) + }, + utime: function () { + fs.utimesSync.apply(void 0, arguments) + }, + open: function (path, flags, mode, suggestFD) { + if (typeof flags === 'string') { + flags = VFS.modeStringToFlags(flags) + } + var nfd = fs.openSync(path, NODEFS.flagsForNode(flags), mode) + var fd = suggestFD != null ? suggestFD : FS.nextfd(nfd) + var stream = { + fd: fd, + nfd: nfd, + position: 0, + path: path, + flags: flags, + seekable: true, + } + FS.streams[fd] = stream + return stream + }, + close: function (stream) { + if (!stream.stream_ops) { + fs.closeSync(stream.nfd) + } + FS.closeStream(stream.fd) + }, + llseek: function (stream, offset, whence) { + if (stream.stream_ops) { + return VFS.llseek(stream, offset, whence) + } + var position = offset + if (whence === 1) { + position += stream.position + } else if (whence === 2) { + position += fs.fstatSync(stream.nfd).size + } else if (whence !== 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL) + } + if (position < 0) { + throw new FS.ErrnoError(ERRNO_CODES.EINVAL) + } + stream.position = position + return position + }, + read: function (stream, buffer, offset, length, position) { + if (stream.stream_ops) { + return VFS.read(stream, buffer, offset, length, position) + } + var seeking = typeof position !== 'undefined' + if (!seeking && stream.seekable) position = stream.position + var bytesRead = fs.readSync( + stream.nfd, + NODEFS.bufferFrom(buffer.buffer), + offset, + length, + position + ) + if (!seeking) stream.position += bytesRead + return bytesRead + }, + write: function (stream, buffer, offset, length, position) { + if (stream.stream_ops) { + return VFS.write(stream, buffer, offset, length, position) + } + if (stream.flags & +'1024') { + FS.llseek(stream, 0, +'2') + } + var seeking = typeof position !== 'undefined' + if (!seeking && stream.seekable) position = stream.position + var bytesWritten = fs.writeSync( + stream.nfd, + NODEFS.bufferFrom(buffer.buffer), + offset, + length, + position + ) + if (!seeking) stream.position += bytesWritten + return bytesWritten + }, + allocate: function () { + throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP) + }, + mmap: function () { + throw new FS.ErrnoError(ERRNO_CODES.ENODEV) + }, + msync: function () { + return 0 + }, + munmap: function () { + return 0 + }, + ioctl: function () { + throw new FS.ErrnoError(ERRNO_CODES.ENOTTY) + }, + } + var FS = { + root: null, + mounts: [], + devices: {}, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: '/', + initialized: false, + ignorePermissions: true, + trackingDelegate: {}, + tracking: { openFlags: { READ: 1, WRITE: 2 } }, + ErrnoError: null, + genericErrors: {}, + filesystems: null, + syncFSRequests: 0, + handleFSError: function (e) { + if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace() + return setErrNo(e.errno) + }, + lookupPath: function (path, opts) { + path = PATH_FS.resolve(FS.cwd(), path) + opts = opts || {} + if (!path) return { path: '', node: null } + var defaults = { follow_mount: true, recurse_count: 0 } + for (var key in defaults) { + if (opts[key] === undefined) { + opts[key] = defaults[key] + } + } + if (opts.recurse_count > 8) { + throw new FS.ErrnoError(32) + } + var parts = PATH.normalizeArray( + path.split('/').filter(function (p) { + return !!p + }), + false + ) + var current = FS.root + var current_path = '/' + for (var i = 0; i < parts.length; i++) { + var islast = i === parts.length - 1 + if (islast && opts.parent) { + break + } + current = FS.lookupNode(current, parts[i]) + current_path = PATH.join2(current_path, parts[i]) + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root + } + } + if (!islast || opts.follow) { + var count = 0 + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path) + current_path = PATH_FS.resolve( + PATH.dirname(current_path), + link + ) + var lookup = FS.lookupPath(current_path, { + recurse_count: opts.recurse_count, + }) + current = lookup.node + if (count++ > 40) { + throw new FS.ErrnoError(32) + } + } + } + } + return { path: current_path, node: current } + }, + getPath: function (node) { + var path + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint + if (!path) return mount + return mount[mount.length - 1] !== '/' + ? mount + '/' + path + : mount + path + } + path = path ? node.name + '/' + path : node.name + node = node.parent + } + }, + hashName: function (parentid, name) { + var hash = 0 + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0 + } + return ((parentid + hash) >>> 0) % FS.nameTable.length + }, + hashAddNode: function (node) { + var hash = FS.hashName(node.parent.id, node.name) + node.name_next = FS.nameTable[hash] + FS.nameTable[hash] = node + }, + hashRemoveNode: function (node) { + var hash = FS.hashName(node.parent.id, node.name) + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next + } else { + var current = FS.nameTable[hash] + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next + break + } + current = current.name_next + } + } + }, + lookupNode: function (parent, name) { + var errCode = FS.mayLookup(parent) + if (errCode) { + throw new FS.ErrnoError(errCode, parent) + } + var hash = FS.hashName(parent.id, name) + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name + if (node.parent.id === parent.id && nodeName === name) { + return node + } + } + return FS.lookup(parent, name) + }, + createNode: function (parent, name, mode, rdev) { + var node = new FS.FSNode(parent, name, mode, rdev) + FS.hashAddNode(node) + return node + }, + destroyNode: function (node) { + FS.hashRemoveNode(node) + }, + isRoot: function (node) { + return node === node.parent + }, + isMountpoint: function (node) { + return !!node.mounted + }, + isFile: function (mode) { + return (mode & 61440) === 32768 + }, + isDir: function (mode) { + return (mode & 61440) === 16384 + }, + isLink: function (mode) { + return (mode & 61440) === 40960 + }, + isChrdev: function (mode) { + return (mode & 61440) === 8192 + }, + isBlkdev: function (mode) { + return (mode & 61440) === 24576 + }, + isFIFO: function (mode) { + return (mode & 61440) === 4096 + }, + isSocket: function (mode) { + return (mode & 49152) === 49152 + }, + flagModes: { + r: 0, + rs: 1052672, + 'r+': 2, + w: 577, + wx: 705, + xw: 705, + 'w+': 578, + 'wx+': 706, + 'xw+': 706, + a: 1089, + ax: 1217, + xa: 1217, + 'a+': 1090, + 'ax+': 1218, + 'xa+': 1218, + }, + modeStringToFlags: function (str) { + var flags = FS.flagModes[str] + if (typeof flags === 'undefined') { + throw new Error('Unknown file open mode: ' + str) + } + return flags + }, + flagsToPermissionString: function (flag) { + var perms = ['r', 'w', 'rw'][flag & 3] + if (flag & 512) { + perms += 'w' + } + return perms + }, + nodePermissions: function (node, perms) { + if (FS.ignorePermissions) { + return 0 + } + if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { + return 2 + } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { + return 2 + } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { + return 2 + } + return 0 + }, + mayLookup: function (dir) { + var errCode = FS.nodePermissions(dir, 'x') + if (errCode) return errCode + if (!dir.node_ops.lookup) return 2 + return 0 + }, + mayCreate: function (dir, name) { + try { + var node = FS.lookupNode(dir, name) + return 20 + } catch (e) {} + return FS.nodePermissions(dir, 'wx') + }, + mayDelete: function (dir, name, isdir) { + var node + try { + node = FS.lookupNode(dir, name) + } catch (e) { + return e.errno + } + var errCode = FS.nodePermissions(dir, 'wx') + if (errCode) { + return errCode + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54 + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10 + } + } else { + if (FS.isDir(node.mode)) { + return 31 + } + } + return 0 + }, + mayOpen: function (node, flags) { + if (!node) { + return 44 + } + if (FS.isLink(node.mode)) { + return 32 + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || flags & 512) { + return 31 + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)) + }, + MAX_OPEN_FDS: 4096, + nextfd: function (fd_start, fd_end) { + fd_start = fd_start || 0 + fd_end = fd_end || FS.MAX_OPEN_FDS + for (var fd = fd_start; fd <= fd_end; fd++) { + if (!FS.streams[fd]) { + return fd + } + } + throw new FS.ErrnoError(33) + }, + getStream: function (fd) { + return FS.streams[fd] + }, + createStream: function (stream, fd_start, fd_end) { + if (!FS.FSStream) { + FS.FSStream = function () {} + FS.FSStream.prototype = { + object: { + get: function () { + return this.node + }, + set: function (val) { + this.node = val + }, + }, + isRead: { + get: function () { + return (this.flags & 2097155) !== 1 + }, + }, + isWrite: { + get: function () { + return (this.flags & 2097155) !== 0 + }, + }, + isAppend: { + get: function () { + return this.flags & 1024 + }, + }, + } + } + var newStream = new FS.FSStream() + for (var p in stream) { + newStream[p] = stream[p] + } + stream = newStream + var fd = FS.nextfd(fd_start, fd_end) + stream.fd = fd + FS.streams[fd] = stream + return stream + }, + closeStream: function (fd) { + FS.streams[fd] = null + }, + chrdev_stream_ops: { + open: function (stream) { + var device = FS.getDevice(stream.node.rdev) + stream.stream_ops = device.stream_ops + if (stream.stream_ops.open) { + stream.stream_ops.open(stream) + } + }, + llseek: function () { + throw new FS.ErrnoError(70) + }, + }, + major: function (dev) { + return dev >> 8 + }, + minor: function (dev) { + return dev & 255 + }, + makedev: function (ma, mi) { + return (ma << 8) | mi + }, + registerDevice: function (dev, ops) { + FS.devices[dev] = { stream_ops: ops } + }, + getDevice: function (dev) { + return FS.devices[dev] + }, + getMounts: function (mount) { + var mounts = [] + var check = [mount] + while (check.length) { + var m = check.pop() + mounts.push(m) + check.push.apply(check, m.mounts) + } + return mounts + }, + syncfs: function (populate, callback) { + if (typeof populate === 'function') { + callback = populate + populate = false + } + FS.syncFSRequests++ + if (FS.syncFSRequests > 1) { + err( + 'warning: ' + + FS.syncFSRequests + + ' FS.syncfs operations in flight at once, probably just doing extra work' + ) + } + var mounts = FS.getMounts(FS.root.mount) + var completed = 0 + function doCallback(errCode) { + FS.syncFSRequests-- + return callback(errCode) + } + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true + return doCallback(errCode) + } + return + } + if (++completed >= mounts.length) { + doCallback(null) + } + } + mounts.forEach(function (mount) { + if (!mount.type.syncfs) { + return done(null) + } + mount.type.syncfs(mount, populate, done) + }) + }, + mount: function (type, opts, mountpoint) { + var root = mountpoint === '/' + var pseudo = !mountpoint + var node + if (root && FS.root) { + throw new FS.ErrnoError(10) + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }) + mountpoint = lookup.path + node = lookup.node + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10) + } + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54) + } + } + var mount = { + type: type, + opts: opts, + mountpoint: mountpoint, + mounts: [], + } + var mountRoot = type.mount(mount) + mountRoot.mount = mount + mount.root = mountRoot + if (root) { + FS.root = mountRoot + } else if (node) { + node.mounted = mount + if (node.mount) { + node.mount.mounts.push(mount) + } + } + return mountRoot + }, + unmount: function (mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }) + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28) + } + var node = lookup.node + var mount = node.mounted + var mounts = FS.getMounts(mount) + Object.keys(FS.nameTable).forEach(function (hash) { + var current = FS.nameTable[hash] + while (current) { + var next = current.name_next + if (mounts.indexOf(current.mount) !== -1) { + FS.destroyNode(current) + } + current = next + } + }) + node.mounted = null + var idx = node.mount.mounts.indexOf(mount) + node.mount.mounts.splice(idx, 1) + }, + lookup: function (parent, name) { + return parent.node_ops.lookup(parent, name) + }, + mknod: function (path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }) + var parent = lookup.node + var name = PATH.basename(path) + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(28) + } + var errCode = FS.mayCreate(parent, name) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63) + } + return parent.node_ops.mknod(parent, name, mode, dev) + }, + create: function (path, mode) { + mode = mode !== undefined ? mode : 438 + mode &= 4095 + mode |= 32768 + return FS.mknod(path, mode, 0) + }, + mkdir: function (path, mode) { + mode = mode !== undefined ? mode : 511 + mode &= 511 | 512 + mode |= 16384 + return FS.mknod(path, mode, 0) + }, + mkdirTree: function (path, mode) { + var dirs = path.split('/') + var d = '' + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue + d += '/' + dirs[i] + try { + FS.mkdir(d, mode) + } catch (e) { + if (e.errno != 20) throw e + } + } + }, + mkdev: function (path, mode, dev) { + if (typeof dev === 'undefined') { + dev = mode + mode = 438 + } + mode |= 8192 + return FS.mknod(path, mode, dev) + }, + symlink: function (oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44) + } + var lookup = FS.lookupPath(newpath, { parent: true }) + var parent = lookup.node + if (!parent) { + throw new FS.ErrnoError(44) + } + var newname = PATH.basename(newpath) + var errCode = FS.mayCreate(parent, newname) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63) + } + return parent.node_ops.symlink(parent, newname, oldpath) + }, + rename: function (old_path, new_path) { + var old_dirname = PATH.dirname(old_path) + var new_dirname = PATH.dirname(new_path) + var old_name = PATH.basename(old_path) + var new_name = PATH.basename(new_path) + var lookup, old_dir, new_dir + lookup = FS.lookupPath(old_path, { parent: true }) + old_dir = lookup.node + lookup = FS.lookupPath(new_path, { parent: true }) + new_dir = lookup.node + if (!old_dir || !new_dir) throw new FS.ErrnoError(44) + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75) + } + var old_node = FS.lookupNode(old_dir, old_name) + var relative = PATH_FS.relative(old_path, new_dirname) + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28) + } + relative = PATH_FS.relative(new_path, old_dirname) + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55) + } + var new_node + try { + new_node = FS.lookupNode(new_dir, new_name) + } catch (e) {} + if (old_node === new_node) { + return + } + var isdir = FS.isDir(old_node.mode) + var errCode = FS.mayDelete(old_dir, old_name, isdir) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + errCode = new_node + ? FS.mayDelete(new_dir, new_name, isdir) + : FS.mayCreate(new_dir, new_name) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63) + } + if ( + FS.isMountpoint(old_node) || + (new_node && FS.isMountpoint(new_node)) + ) { + throw new FS.ErrnoError(10) + } + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w') + if (errCode) { + throw new FS.ErrnoError(errCode) + } + } + try { + if (FS.trackingDelegate['willMovePath']) { + FS.trackingDelegate['willMovePath'](old_path, new_path) + } + } catch (e) { + err( + "FS.trackingDelegate['willMovePath']('" + + old_path + + "', '" + + new_path + + "') threw an exception: " + + e.message + ) + } + FS.hashRemoveNode(old_node) + try { + old_dir.node_ops.rename(old_node, new_dir, new_name) + } catch (e) { + throw e + } finally { + FS.hashAddNode(old_node) + } + try { + if (FS.trackingDelegate['onMovePath']) + FS.trackingDelegate['onMovePath'](old_path, new_path) + } catch (e) { + err( + "FS.trackingDelegate['onMovePath']('" + + old_path + + "', '" + + new_path + + "') threw an exception: " + + e.message + ) + } + }, + rmdir: function (path) { + var lookup = FS.lookupPath(path, { parent: true }) + var parent = lookup.node + var name = PATH.basename(path) + var node = FS.lookupNode(parent, name) + var errCode = FS.mayDelete(parent, name, true) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63) + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10) + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path) + } + } catch (e) { + err( + "FS.trackingDelegate['willDeletePath']('" + + path + + "') threw an exception: " + + e.message + ) + } + parent.node_ops.rmdir(parent, name) + FS.destroyNode(node) + try { + if (FS.trackingDelegate['onDeletePath']) + FS.trackingDelegate['onDeletePath'](path) + } catch (e) { + err( + "FS.trackingDelegate['onDeletePath']('" + + path + + "') threw an exception: " + + e.message + ) + } + }, + readdir: function (path) { + var lookup = FS.lookupPath(path, { follow: true }) + var node = lookup.node + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54) + } + return node.node_ops.readdir(node) + }, + unlink: function (path) { + var lookup = FS.lookupPath(path, { parent: true }) + var parent = lookup.node + var name = PATH.basename(path) + var node = FS.lookupNode(parent, name) + var errCode = FS.mayDelete(parent, name, false) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63) + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10) + } + try { + if (FS.trackingDelegate['willDeletePath']) { + FS.trackingDelegate['willDeletePath'](path) + } + } catch (e) { + err( + "FS.trackingDelegate['willDeletePath']('" + + path + + "') threw an exception: " + + e.message + ) + } + parent.node_ops.unlink(parent, name) + FS.destroyNode(node) + try { + if (FS.trackingDelegate['onDeletePath']) + FS.trackingDelegate['onDeletePath'](path) + } catch (e) { + err( + "FS.trackingDelegate['onDeletePath']('" + + path + + "') threw an exception: " + + e.message + ) + } + }, + readlink: function (path) { + var lookup = FS.lookupPath(path) + var link = lookup.node + if (!link) { + throw new FS.ErrnoError(44) + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28) + } + return PATH_FS.resolve( + FS.getPath(link.parent), + link.node_ops.readlink(link) + ) + }, + stat: function (path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }) + var node = lookup.node + if (!node) { + throw new FS.ErrnoError(44) + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63) + } + return node.node_ops.getattr(node) + }, + lstat: function (path) { + return FS.stat(path, true) + }, + chmod: function (path, mode, dontFollow) { + var node + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }) + node = lookup.node + } else { + node = path + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63) + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now(), + }) + }, + lchmod: function (path, mode) { + FS.chmod(path, mode, true) + }, + fchmod: function (fd, mode) { + var stream = FS.getStream(fd) + if (!stream) { + throw new FS.ErrnoError(8) + } + FS.chmod(stream.node, mode) + }, + chown: function (path, uid, gid, dontFollow) { + var node + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }) + node = lookup.node + } else { + node = path + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63) + } + node.node_ops.setattr(node, { timestamp: Date.now() }) + }, + lchown: function (path, uid, gid) { + FS.chown(path, uid, gid, true) + }, + fchown: function (fd, uid, gid) { + var stream = FS.getStream(fd) + if (!stream) { + throw new FS.ErrnoError(8) + } + FS.chown(stream.node, uid, gid) + }, + truncate: function (path, len) { + if (len < 0) { + throw new FS.ErrnoError(28) + } + var node + if (typeof path === 'string') { + var lookup = FS.lookupPath(path, { follow: true }) + node = lookup.node + } else { + node = path + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63) + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31) + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28) + } + var errCode = FS.nodePermissions(node, 'w') + if (errCode) { + throw new FS.ErrnoError(errCode) + } + node.node_ops.setattr(node, { size: len, timestamp: Date.now() }) + }, + ftruncate: function (fd, len) { + var stream = FS.getStream(fd) + if (!stream) { + throw new FS.ErrnoError(8) + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28) + } + FS.truncate(stream.node, len) + }, + utime: function (path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }) + var node = lookup.node + node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }) + }, + open: function (path, flags, mode, fd_start, fd_end) { + if (path === '') { + throw new FS.ErrnoError(44) + } + flags = + typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags + mode = typeof mode === 'undefined' ? 438 : mode + if (flags & 64) { + mode = (mode & 4095) | 32768 + } else { + mode = 0 + } + var node + if (typeof path === 'object') { + node = path + } else { + path = PATH.normalize(path) + try { + var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }) + node = lookup.node + } catch (e) {} + } + var created = false + if (flags & 64) { + if (node) { + if (flags & 128) { + throw new FS.ErrnoError(20) + } + } else { + node = FS.mknod(path, mode, 0) + created = true + } + } + if (!node) { + throw new FS.ErrnoError(44) + } + if (FS.isChrdev(node.mode)) { + flags &= ~512 + } + if (flags & 65536 && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54) + } + if (!created) { + var errCode = FS.mayOpen(node, flags) + if (errCode) { + throw new FS.ErrnoError(errCode) + } + } + if (flags & 512) { + FS.truncate(node, 0) + } + flags &= ~(128 | 512 | 131072) + var stream = FS.createStream( + { + node: node, + path: FS.getPath(node), + flags: flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + ungotten: [], + error: false, + }, + fd_start, + fd_end + ) + if (stream.stream_ops.open) { + stream.stream_ops.open(stream) + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {} + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1 + err('FS.trackingDelegate error on read file: ' + path) + } + } + try { + if (FS.trackingDelegate['onOpenFile']) { + var trackingFlags = 0 + if ((flags & 2097155) !== 1) { + trackingFlags |= FS.tracking.openFlags.READ + } + if ((flags & 2097155) !== 0) { + trackingFlags |= FS.tracking.openFlags.WRITE + } + FS.trackingDelegate['onOpenFile'](path, trackingFlags) + } + } catch (e) { + err( + "FS.trackingDelegate['onOpenFile']('" + + path + + "', flags) threw an exception: " + + e.message + ) + } + return stream + }, + close: function (stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if (stream.getdents) stream.getdents = null + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream) + } + } catch (e) { + throw e + } finally { + FS.closeStream(stream.fd) + } + stream.fd = null + }, + isClosed: function (stream) { + return stream.fd === null + }, + llseek: function (stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70) + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28) + } + stream.position = stream.stream_ops.llseek(stream, offset, whence) + stream.ungotten = [] + return stream.position + }, + read: function (stream, buffer, offset, length, position) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28) + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8) + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31) + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28) + } + var seeking = typeof position !== 'undefined' + if (!seeking) { + position = stream.position + } else if (!stream.seekable) { + throw new FS.ErrnoError(70) + } + var bytesRead = stream.stream_ops.read( + stream, + buffer, + offset, + length, + position + ) + if (!seeking) stream.position += bytesRead + return bytesRead + }, + write: function (stream, buffer, offset, length, position, canOwn) { + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28) + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8) + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31) + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28) + } + if (stream.seekable && stream.flags & 1024) { + FS.llseek(stream, 0, 2) + } + var seeking = typeof position !== 'undefined' + if (!seeking) { + position = stream.position + } else if (!stream.seekable) { + throw new FS.ErrnoError(70) + } + var bytesWritten = stream.stream_ops.write( + stream, + buffer, + offset, + length, + position, + canOwn + ) + if (!seeking) stream.position += bytesWritten + try { + if (stream.path && FS.trackingDelegate['onWriteToFile']) + FS.trackingDelegate['onWriteToFile'](stream.path) + } catch (e) { + err( + "FS.trackingDelegate['onWriteToFile']('" + + stream.path + + "') threw an exception: " + + e.message + ) + } + return bytesWritten + }, + allocate: function (stream, offset, length) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8) + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28) + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8) + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43) + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138) + } + stream.stream_ops.allocate(stream, offset, length) + }, + mmap: function (stream, address, length, position, prot, flags) { + if ( + (prot & 2) !== 0 && + (flags & 2) === 0 && + (stream.flags & 2097155) !== 2 + ) { + throw new FS.ErrnoError(2) + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2) + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43) + } + return stream.stream_ops.mmap( + stream, + address, + length, + position, + prot, + flags + ) + }, + msync: function (stream, buffer, offset, length, mmapFlags) { + if (!stream || !stream.stream_ops.msync) { + return 0 + } + return stream.stream_ops.msync( + stream, + buffer, + offset, + length, + mmapFlags + ) + }, + munmap: function (stream) { + return 0 + }, + ioctl: function (stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59) + } + return stream.stream_ops.ioctl(stream, cmd, arg) + }, + readFile: function (path, opts) { + opts = opts || {} + opts.flags = opts.flags || 'r' + opts.encoding = opts.encoding || 'binary' + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error('Invalid encoding type "' + opts.encoding + '"') + } + var ret + var stream = FS.open(path, opts.flags) + var stat = FS.stat(path) + var length = stat.size + var buf = new Uint8Array(length) + FS.read(stream, buf, 0, length, 0) + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0) + } else if (opts.encoding === 'binary') { + ret = buf + } + FS.close(stream) + return ret + }, + writeFile: function (path, data, opts) { + opts = opts || {} + opts.flags = opts.flags || 'w' + var stream = FS.open(path, opts.flags, opts.mode) + if (typeof data === 'string') { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1) + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length) + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn) + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn) + } else { + throw new Error('Unsupported data type') + } + FS.close(stream) + }, + cwd: function () { + return FS.currentPath + }, + chdir: function (path) { + var lookup = FS.lookupPath(path, { follow: true }) + if (lookup.node === null) { + throw new FS.ErrnoError(44) + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54) + } + var errCode = FS.nodePermissions(lookup.node, 'x') + if (errCode) { + throw new FS.ErrnoError(errCode) + } + FS.currentPath = lookup.path + }, + createDefaultDirectories: function () { + FS.mkdir('/tmp') + FS.mkdir('/home') + FS.mkdir('/home/web_user') + }, + createDefaultDevices: function () { + FS.mkdir('/dev') + FS.registerDevice(FS.makedev(1, 3), { + read: function () { + return 0 + }, + write: function (stream, buffer, offset, length, pos) { + return length + }, + }) + FS.mkdev('/dev/null', FS.makedev(1, 3)) + TTY.register(FS.makedev(5, 0), TTY.default_tty_ops) + TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops) + FS.mkdev('/dev/tty', FS.makedev(5, 0)) + FS.mkdev('/dev/tty1', FS.makedev(6, 0)) + var random_device + if ( + typeof crypto === 'object' && + typeof crypto['getRandomValues'] === 'function' + ) { + var randomBuffer = new Uint8Array(1) + random_device = function () { + crypto.getRandomValues(randomBuffer) + return randomBuffer[0] + } + } else if (ENVIRONMENT_IS_NODE) { + try { + var crypto_module = __webpack_require__(417) + random_device = function () { + return crypto_module['randomBytes'](1)[0] + } + } catch (e) {} + } else { + } + if (!random_device) { + random_device = function () { + abort('random_device') + } + } + FS.createDevice('/dev', 'random', random_device) + FS.createDevice('/dev', 'urandom', random_device) + FS.mkdir('/dev/shm') + FS.mkdir('/dev/shm/tmp') + }, + createSpecialDirectories: function () { + FS.mkdir('/proc') + FS.mkdir('/proc/self') + FS.mkdir('/proc/self/fd') + FS.mount( + { + mount: function () { + var node = FS.createNode('/proc/self', 'fd', 16384 | 511, 73) + node.node_ops = { + lookup: function (parent, name) { + var fd = +name + var stream = FS.getStream(fd) + if (!stream) throw new FS.ErrnoError(8) + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { + readlink: function () { + return stream.path + }, + }, + } + ret.parent = ret + return ret + }, + } + return node + }, + }, + {}, + '/proc/self/fd' + ) + }, + createStandardStreams: function () { + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']) + } else { + FS.symlink('/dev/tty', '/dev/stdin') + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']) + } else { + FS.symlink('/dev/tty', '/dev/stdout') + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']) + } else { + FS.symlink('/dev/tty1', '/dev/stderr') + } + var stdin = FS.open('/dev/stdin', 'r') + var stdout = FS.open('/dev/stdout', 'w') + var stderr = FS.open('/dev/stderr', 'w') + }, + ensureErrnoError: function () { + if (FS.ErrnoError) return + FS.ErrnoError = function ErrnoError(errno, node) { + this.node = node + this.setErrno = function (errno) { + this.errno = errno + } + this.setErrno(errno) + this.message = 'FS error' + } + FS.ErrnoError.prototype = new Error() + FS.ErrnoError.prototype.constructor = FS.ErrnoError + ;[44].forEach(function (code) { + FS.genericErrors[code] = new FS.ErrnoError(code) + FS.genericErrors[code].stack = '' + }) + }, + staticInit: function () { + FS.ensureErrnoError() + FS.nameTable = new Array(4096) + FS.mount(MEMFS, {}, '/') + FS.createDefaultDirectories() + FS.createDefaultDevices() + FS.createSpecialDirectories() + FS.filesystems = { MEMFS: MEMFS, NODEFS: NODEFS } + }, + init: function (input, output, error) { + FS.init.initialized = true + FS.ensureErrnoError() + Module['stdin'] = input || Module['stdin'] + Module['stdout'] = output || Module['stdout'] + Module['stderr'] = error || Module['stderr'] + FS.createStandardStreams() + }, + quit: function () { + FS.init.initialized = false + var fflush = Module['_fflush'] + if (fflush) fflush(0) + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i] + if (!stream) { + continue + } + FS.close(stream) + } + }, + getMode: function (canRead, canWrite) { + var mode = 0 + if (canRead) mode |= 292 | 73 + if (canWrite) mode |= 146 + return mode + }, + joinPath: function (parts, forceRelative) { + var path = PATH.join.apply(null, parts) + if (forceRelative && path[0] == '/') path = path.substr(1) + return path + }, + absolutePath: function (relative, base) { + return PATH_FS.resolve(base, relative) + }, + standardizePath: function (path) { + return PATH.normalize(path) + }, + findObject: function (path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink) + if (ret.exists) { + return ret.object + } else { + setErrNo(ret.error) + return null + } + }, + analyzePath: function (path, dontResolveLastLink) { + try { + var lookup = FS.lookupPath(path, { + follow: !dontResolveLastLink, + }) + path = lookup.path + } catch (e) {} + var ret = { + isRoot: false, + exists: false, + error: 0, + name: null, + path: null, + object: null, + parentExists: false, + parentPath: null, + parentObject: null, + } + try { + var lookup = FS.lookupPath(path, { parent: true }) + ret.parentExists = true + ret.parentPath = lookup.path + ret.parentObject = lookup.node + ret.name = PATH.basename(path) + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }) + ret.exists = true + ret.path = lookup.path + ret.object = lookup.node + ret.name = lookup.node.name + ret.isRoot = lookup.path === '/' + } catch (e) { + ret.error = e.errno + } + return ret + }, + createFolder: function (parent, name, canRead, canWrite) { + var path = PATH.join2( + typeof parent === 'string' ? parent : FS.getPath(parent), + name + ) + var mode = FS.getMode(canRead, canWrite) + return FS.mkdir(path, mode) + }, + createPath: function (parent, path, canRead, canWrite) { + parent = typeof parent === 'string' ? parent : FS.getPath(parent) + var parts = path.split('/').reverse() + while (parts.length) { + var part = parts.pop() + if (!part) continue + var current = PATH.join2(parent, part) + try { + FS.mkdir(current) + } catch (e) {} + parent = current + } + return current + }, + createFile: function (parent, name, properties, canRead, canWrite) { + var path = PATH.join2( + typeof parent === 'string' ? parent : FS.getPath(parent), + name + ) + var mode = FS.getMode(canRead, canWrite) + return FS.create(path, mode) + }, + createDataFile: function ( + parent, + name, + data, + canRead, + canWrite, + canOwn + ) { + var path = name + ? PATH.join2( + typeof parent === 'string' ? parent : FS.getPath(parent), + name + ) + : parent + var mode = FS.getMode(canRead, canWrite) + var node = FS.create(path, mode) + if (data) { + if (typeof data === 'string') { + var arr = new Array(data.length) + for (var i = 0, len = data.length; i < len; ++i) + arr[i] = data.charCodeAt(i) + data = arr + } + FS.chmod(node, mode | 146) + var stream = FS.open(node, 'w') + FS.write(stream, data, 0, data.length, 0, canOwn) + FS.close(stream) + FS.chmod(node, mode) + } + return node + }, + createDevice: function (parent, name, input, output) { + var path = PATH.join2( + typeof parent === 'string' ? parent : FS.getPath(parent), + name + ) + var mode = FS.getMode(!!input, !!output) + if (!FS.createDevice.major) FS.createDevice.major = 64 + var dev = FS.makedev(FS.createDevice.major++, 0) + FS.registerDevice(dev, { + open: function (stream) { + stream.seekable = false + }, + close: function (stream) { + if (output && output.buffer && output.buffer.length) { + output(10) + } + }, + read: function (stream, buffer, offset, length, pos) { + var bytesRead = 0 + for (var i = 0; i < length; i++) { + var result + try { + result = input() + } catch (e) { + throw new FS.ErrnoError(29) + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6) + } + if (result === null || result === undefined) break + bytesRead++ + buffer[offset + i] = result + } + if (bytesRead) { + stream.node.timestamp = Date.now() + } + return bytesRead + }, + write: function (stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]) + } catch (e) { + throw new FS.ErrnoError(29) + } + } + if (length) { + stream.node.timestamp = Date.now() + } + return i + }, + }) + return FS.mkdev(path, mode, dev) + }, + createLink: function (parent, name, target, canRead, canWrite) { + var path = PATH.join2( + typeof parent === 'string' ? parent : FS.getPath(parent), + name + ) + return FS.symlink(target, path) + }, + forceLoadFile: function (obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) + return true + var success = true + if (typeof XMLHttpRequest !== 'undefined') { + throw new Error( + 'Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.' + ) + } else if (read_) { + try { + obj.contents = intArrayFromString(read_(obj.url), true) + obj.usedBytes = obj.contents.length + } catch (e) { + success = false + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.') + } + if (!success) setErrNo(29) + return success + }, + createLazyFile: function (parent, name, url, canRead, canWrite) { + function LazyUint8Array() { + this.lengthKnown = false + this.chunks = [] + } + LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined + } + var chunkOffset = idx % this.chunkSize + var chunkNum = (idx / this.chunkSize) | 0 + return this.getter(chunkNum)[chunkOffset] + } + LazyUint8Array.prototype.setDataGetter = + function LazyUint8Array_setDataGetter(getter) { + this.getter = getter + } + LazyUint8Array.prototype.cacheLength = + function LazyUint8Array_cacheLength() { + var xhr = new XMLHttpRequest() + xhr.open('HEAD', url, false) + xhr.send(null) + if ( + !( + (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 + ) + ) + throw new Error( + "Couldn't load " + url + '. Status: ' + xhr.status + ) + var datalength = Number(xhr.getResponseHeader('Content-length')) + var header + var hasByteServing = + (header = xhr.getResponseHeader('Accept-Ranges')) && + header === 'bytes' + var usesGzip = + (header = xhr.getResponseHeader('Content-Encoding')) && + header === 'gzip' + var chunkSize = 1024 * 1024 + if (!hasByteServing) chunkSize = datalength + var doXHR = function (from, to) { + if (from > to) + throw new Error( + 'invalid range (' + + from + + ', ' + + to + + ') or no bytes requested!' + ) + if (to > datalength - 1) + throw new Error( + 'only ' + + datalength + + ' bytes available! programmer error!' + ) + var xhr = new XMLHttpRequest() + xhr.open('GET', url, false) + if (datalength !== chunkSize) + xhr.setRequestHeader('Range', 'bytes=' + from + '-' + to) + if (typeof Uint8Array != 'undefined') + xhr.responseType = 'arraybuffer' + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined') + } + xhr.send(null) + if ( + !( + (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 + ) + ) + throw new Error( + "Couldn't load " + url + '. Status: ' + xhr.status + ) + if (xhr.response !== undefined) { + return new Uint8Array(xhr.response || []) + } else { + return intArrayFromString(xhr.responseText || '', true) + } + } + var lazyArray = this + lazyArray.setDataGetter(function (chunkNum) { + var start = chunkNum * chunkSize + var end = (chunkNum + 1) * chunkSize - 1 + end = Math.min(end, datalength - 1) + if (typeof lazyArray.chunks[chunkNum] === 'undefined') { + lazyArray.chunks[chunkNum] = doXHR(start, end) + } + if (typeof lazyArray.chunks[chunkNum] === 'undefined') + throw new Error('doXHR failed!') + return lazyArray.chunks[chunkNum] + }) + if (usesGzip || !datalength) { + chunkSize = datalength = 1 + datalength = this.getter(0).length + chunkSize = datalength + out( + 'LazyFiles on gzip forces download of the whole file when length is accessed' + ) + } + this._length = datalength + this._chunkSize = chunkSize + this.lengthKnown = true + } + if (typeof XMLHttpRequest !== 'undefined') { + if (!ENVIRONMENT_IS_WORKER) + throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc' + var lazyArray = new LazyUint8Array() + Object.defineProperties(lazyArray, { + length: { + get: function () { + if (!this.lengthKnown) { + this.cacheLength() + } + return this._length + }, + }, + chunkSize: { + get: function () { + if (!this.lengthKnown) { + this.cacheLength() + } + return this._chunkSize + }, + }, + }) + var properties = { isDevice: false, contents: lazyArray } + } else { + var properties = { isDevice: false, url: url } + } + var node = FS.createFile( + parent, + name, + properties, + canRead, + canWrite + ) + if (properties.contents) { + node.contents = properties.contents + } else if (properties.url) { + node.contents = null + node.url = properties.url + } + Object.defineProperties(node, { + usedBytes: { + get: function () { + return this.contents.length + }, + }, + }) + var stream_ops = {} + var keys = Object.keys(node.stream_ops) + keys.forEach(function (key) { + var fn = node.stream_ops[key] + stream_ops[key] = function forceLoadLazyFile() { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(29) + } + return fn.apply(null, arguments) + } + }) + stream_ops.read = function stream_ops_read( + stream, + buffer, + offset, + length, + position + ) { + if (!FS.forceLoadFile(node)) { + throw new FS.ErrnoError(29) + } + var contents = stream.node.contents + if (position >= contents.length) return 0 + var size = Math.min(contents.length - position, length) + if (contents.slice) { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i] + } + } else { + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents.get(position + i) + } + } + return size + } + node.stream_ops = stream_ops + return node + }, + createPreloadedFile: function ( + parent, + name, + url, + canRead, + canWrite, + onload, + onerror, + dontCreateFile, + canOwn, + preFinish + ) { + Browser.init() + var fullname = name + ? PATH_FS.resolve(PATH.join2(parent, name)) + : parent + var dep = getUniqueRunDependency('cp ' + fullname) + function processData(byteArray) { + function finish(byteArray) { + if (preFinish) preFinish() + if (!dontCreateFile) { + FS.createDataFile( + parent, + name, + byteArray, + canRead, + canWrite, + canOwn + ) + } + if (onload) onload() + removeRunDependency(dep) + } + var handled = false + Module['preloadPlugins'].forEach(function (plugin) { + if (handled) return + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, function () { + if (onerror) onerror() + removeRunDependency(dep) + }) + handled = true + } + }) + if (!handled) finish(byteArray) + } + addRunDependency(dep) + if (typeof url == 'string') { + Browser.asyncLoad( + url, + function (byteArray) { + processData(byteArray) + }, + onerror + ) + } else { + processData(url) + } + }, + indexedDB: function () { + return ( + window.indexedDB || + window.mozIndexedDB || + window.webkitIndexedDB || + window.msIndexedDB + ) + }, + DB_NAME: function () { + return 'EM_FS_' + window.location.pathname + }, + DB_VERSION: 20, + DB_STORE_NAME: 'FILE_DATA', + saveFilesToDB: function (paths, onload, onerror) { + onload = onload || function () {} + onerror = onerror || function () {} + var indexedDB = FS.indexedDB() + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION) + } catch (e) { + return onerror(e) + } + openRequest.onupgradeneeded = + function openRequest_onupgradeneeded() { + out('creating db') + var db = openRequest.result + db.createObjectStore(FS.DB_STORE_NAME) + } + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result + var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite') + var files = transaction.objectStore(FS.DB_STORE_NAME) + var ok = 0, + fail = 0, + total = paths.length + function finish() { + if (fail == 0) onload() + else onerror() + } + paths.forEach(function (path) { + var putRequest = files.put( + FS.analyzePath(path).object.contents, + path + ) + putRequest.onsuccess = function putRequest_onsuccess() { + ok++ + if (ok + fail == total) finish() + } + putRequest.onerror = function putRequest_onerror() { + fail++ + if (ok + fail == total) finish() + } + }) + transaction.onerror = onerror + } + openRequest.onerror = onerror + }, + loadFilesFromDB: function (paths, onload, onerror) { + onload = onload || function () {} + onerror = onerror || function () {} + var indexedDB = FS.indexedDB() + try { + var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION) + } catch (e) { + return onerror(e) + } + openRequest.onupgradeneeded = onerror + openRequest.onsuccess = function openRequest_onsuccess() { + var db = openRequest.result + try { + var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly') + } catch (e) { + onerror(e) + return + } + var files = transaction.objectStore(FS.DB_STORE_NAME) + var ok = 0, + fail = 0, + total = paths.length + function finish() { + if (fail == 0) onload() + else onerror() + } + paths.forEach(function (path) { + var getRequest = files.get(path) + getRequest.onsuccess = function getRequest_onsuccess() { + if (FS.analyzePath(path).exists) { + FS.unlink(path) } + FS.createDataFile( + PATH.dirname(path), + PATH.basename(path), + getRequest.result, + true, + true, + true + ) + ok++ + if (ok + fail == total) finish() + } + getRequest.onerror = function getRequest_onerror() { + fail++ + if (ok + fail == total) finish() } - }; - ret.parent = ret; - return ret; + }) + transaction.onerror = onerror } - }; - return node; + openRequest.onerror = onerror + }, + mmapAlloc: function (size) { + var alignedSize = alignMemory(size, 16384) + var ptr = _malloc(alignedSize) + while (size < alignedSize) HEAP8[ptr + size++] = 0 + return ptr + }, } - }, - {}, - "/proc/self/fd" - ); - }, - createStandardStreams: function() { - if (Module["stdin"]) { - FS.createDevice("/dev", "stdin", Module["stdin"]); - } else { - FS.symlink("/dev/tty", "/dev/stdin"); - } - if (Module["stdout"]) { - FS.createDevice("/dev", "stdout", null, Module["stdout"]); - } else { - FS.symlink("/dev/tty", "/dev/stdout"); - } - if (Module["stderr"]) { - FS.createDevice("/dev", "stderr", null, Module["stderr"]); - } else { - FS.symlink("/dev/tty1", "/dev/stderr"); - } - var stdin = FS.open("/dev/stdin", "r"); - var stdout = FS.open("/dev/stdout", "w"); - var stderr = FS.open("/dev/stderr", "w"); - }, - ensureErrnoError: function() { - if (FS.ErrnoError) return; - FS.ErrnoError = function ErrnoError(errno, node) { - this.node = node; - this.setErrno = function(errno) { - this.errno = errno; - }; - this.setErrno(errno); - this.message = "FS error"; - }; - FS.ErrnoError.prototype = new Error(); - FS.ErrnoError.prototype.constructor = FS.ErrnoError; - [44].forEach(function(code) { - FS.genericErrors[code] = new FS.ErrnoError(code); - FS.genericErrors[code].stack = ""; - }); - }, - staticInit: function() { - FS.ensureErrnoError(); - FS.nameTable = new Array(4096); - FS.mount(MEMFS, {}, "/"); - FS.createDefaultDirectories(); - FS.createDefaultDevices(); - FS.createSpecialDirectories(); - FS.filesystems = { MEMFS: MEMFS, NODEFS: NODEFS }; - }, - init: function(input, output, error) { - FS.init.initialized = true; - FS.ensureErrnoError(); - Module["stdin"] = input || Module["stdin"]; - Module["stdout"] = output || Module["stdout"]; - Module["stderr"] = error || Module["stderr"]; - FS.createStandardStreams(); - }, - quit: function() { - FS.init.initialized = false; - var fflush = Module["_fflush"]; - if (fflush) fflush(0); - for (var i = 0; i < FS.streams.length; i++) { - var stream = FS.streams[i]; - if (!stream) { - continue; - } - FS.close(stream); - } - }, - getMode: function(canRead, canWrite) { - var mode = 0; - if (canRead) mode |= 292 | 73; - if (canWrite) mode |= 146; - return mode; - }, - joinPath: function(parts, forceRelative) { - var path = PATH.join.apply(null, parts); - if (forceRelative && path[0] == "/") path = path.substr(1); - return path; - }, - absolutePath: function(relative, base) { - return PATH_FS.resolve(base, relative); - }, - standardizePath: function(path) { - return PATH.normalize(path); - }, - findObject: function(path, dontResolveLastLink) { - var ret = FS.analyzePath(path, dontResolveLastLink); - if (ret.exists) { - return ret.object; - } else { - setErrNo(ret.error); - return null; - } - }, - analyzePath: function(path, dontResolveLastLink) { - try { - var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - path = lookup.path; - } catch (e) {} - var ret = { - isRoot: false, - exists: false, - error: 0, - name: null, - path: null, - object: null, - parentExists: false, - parentPath: null, - parentObject: null - }; - try { - var lookup = FS.lookupPath(path, { parent: true }); - ret.parentExists = true; - ret.parentPath = lookup.path; - ret.parentObject = lookup.node; - ret.name = PATH.basename(path); - lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); - ret.exists = true; - ret.path = lookup.path; - ret.object = lookup.node; - ret.name = lookup.node.name; - ret.isRoot = lookup.path === "/"; - } catch (e) { - ret.error = e.errno; - } - return ret; - }, - createFolder: function(parent, name, canRead, canWrite) { - var path = PATH.join2( - typeof parent === "string" ? parent : FS.getPath(parent), - name - ); - var mode = FS.getMode(canRead, canWrite); - return FS.mkdir(path, mode); - }, - createPath: function(parent, path, canRead, canWrite) { - parent = typeof parent === "string" ? parent : FS.getPath(parent); - var parts = path.split("/").reverse(); - while (parts.length) { - var part = parts.pop(); - if (!part) continue; - var current = PATH.join2(parent, part); - try { - FS.mkdir(current); - } catch (e) {} - parent = current; - } - return current; - }, - createFile: function(parent, name, properties, canRead, canWrite) { - var path = PATH.join2( - typeof parent === "string" ? parent : FS.getPath(parent), - name - ); - var mode = FS.getMode(canRead, canWrite); - return FS.create(path, mode); - }, - createDataFile: function(parent, name, data, canRead, canWrite, canOwn) { - var path = name - ? PATH.join2( - typeof parent === "string" ? parent : FS.getPath(parent), - name - ) - : parent; - var mode = FS.getMode(canRead, canWrite); - var node = FS.create(path, mode); - if (data) { - if (typeof data === "string") { - var arr = new Array(data.length); - for (var i = 0, len = data.length; i < len; ++i) - arr[i] = data.charCodeAt(i); - data = arr; - } - FS.chmod(node, mode | 146); - var stream = FS.open(node, "w"); - FS.write(stream, data, 0, data.length, 0, canOwn); - FS.close(stream); - FS.chmod(node, mode); - } - return node; - }, - createDevice: function(parent, name, input, output) { - var path = PATH.join2( - typeof parent === "string" ? parent : FS.getPath(parent), - name - ); - var mode = FS.getMode(!!input, !!output); - if (!FS.createDevice.major) FS.createDevice.major = 64; - var dev = FS.makedev(FS.createDevice.major++, 0); - FS.registerDevice(dev, { - open: function(stream) { - stream.seekable = false; - }, - close: function(stream) { - if (output && output.buffer && output.buffer.length) { - output(10); + var SYSCALLS = { + mappings: {}, + DEFAULT_POLLMASK: 5, + umask: 511, + calculateAt: function (dirfd, path) { + if (path[0] !== '/') { + var dir + if (dirfd === -100) { + dir = FS.cwd() + } else { + var dirstream = FS.getStream(dirfd) + if (!dirstream) throw new FS.ErrnoError(8) + dir = dirstream.path + } + path = PATH.join2(dir, path) + } + return path + }, + doStat: function (func, path, buf) { + try { + var stat = func(path) + } catch (e) { + if ( + e && + e.node && + PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node)) + ) { + return -54 + } + throw e + } + HEAP32[buf >> 2] = stat.dev + HEAP32[(buf + 4) >> 2] = 0 + HEAP32[(buf + 8) >> 2] = stat.ino + HEAP32[(buf + 12) >> 2] = stat.mode + HEAP32[(buf + 16) >> 2] = stat.nlink + HEAP32[(buf + 20) >> 2] = stat.uid + HEAP32[(buf + 24) >> 2] = stat.gid + HEAP32[(buf + 28) >> 2] = stat.rdev + HEAP32[(buf + 32) >> 2] = 0 + ;(tempI64 = [ + stat.size >>> 0, + ((tempDouble = stat.size), + +Math_abs(tempDouble) >= 1 + ? tempDouble > 0 + ? (Math_min( + +Math_floor(tempDouble / 4294967296), + 4294967295 + ) | + 0) >>> + 0 + : ~~+Math_ceil( + (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 40) >> 2] = tempI64[0]), + (HEAP32[(buf + 44) >> 2] = tempI64[1]) + HEAP32[(buf + 48) >> 2] = 4096 + HEAP32[(buf + 52) >> 2] = stat.blocks + HEAP32[(buf + 56) >> 2] = (stat.atime.getTime() / 1e3) | 0 + HEAP32[(buf + 60) >> 2] = 0 + HEAP32[(buf + 64) >> 2] = (stat.mtime.getTime() / 1e3) | 0 + HEAP32[(buf + 68) >> 2] = 0 + HEAP32[(buf + 72) >> 2] = (stat.ctime.getTime() / 1e3) | 0 + HEAP32[(buf + 76) >> 2] = 0 + ;(tempI64 = [ + stat.ino >>> 0, + ((tempDouble = stat.ino), + +Math_abs(tempDouble) >= 1 + ? tempDouble > 0 + ? (Math_min( + +Math_floor(tempDouble / 4294967296), + 4294967295 + ) | + 0) >>> + 0 + : ~~+Math_ceil( + (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[(buf + 80) >> 2] = tempI64[0]), + (HEAP32[(buf + 84) >> 2] = tempI64[1]) + return 0 + }, + doMsync: function (addr, stream, len, flags, offset) { + var buffer = HEAPU8.slice(addr, addr + len) + FS.msync(stream, buffer, offset, len, flags) + }, + doMkdir: function (path, mode) { + path = PATH.normalize(path) + if (path[path.length - 1] === '/') + path = path.substr(0, path.length - 1) + FS.mkdir(path, mode, 0) + return 0 + }, + doMknod: function (path, mode, dev) { + switch (mode & 61440) { + case 32768: + case 8192: + case 24576: + case 4096: + case 49152: + break + default: + return -28 + } + FS.mknod(path, mode, dev) + return 0 + }, + doReadlink: function (path, buf, bufsize) { + if (bufsize <= 0) return -28 + var ret = FS.readlink(path) + var len = Math.min(bufsize, lengthBytesUTF8(ret)) + var endChar = HEAP8[buf + len] + stringToUTF8(ret, buf, bufsize + 1) + HEAP8[buf + len] = endChar + return len + }, + doAccess: function (path, amode) { + if (amode & ~7) { + return -28 + } + var node + var lookup = FS.lookupPath(path, { follow: true }) + node = lookup.node + if (!node) { + return -44 + } + var perms = '' + if (amode & 4) perms += 'r' + if (amode & 2) perms += 'w' + if (amode & 1) perms += 'x' + if (perms && FS.nodePermissions(node, perms)) { + return -2 + } + return 0 + }, + doDup: function (path, flags, suggestFD) { + var suggest = FS.getStream(suggestFD) + if (suggest) FS.close(suggest) + return FS.open(path, flags, 0, suggestFD, suggestFD).fd + }, + doReadv: function (stream, iov, iovcnt, offset) { + var ret = 0 + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(iov + i * 8) >> 2] + var len = HEAP32[(iov + (i * 8 + 4)) >> 2] + var curr = FS.read(stream, HEAP8, ptr, len, offset) + if (curr < 0) return -1 + ret += curr + if (curr < len) break + } + return ret + }, + doWritev: function (stream, iov, iovcnt, offset) { + var ret = 0 + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAP32[(iov + i * 8) >> 2] + var len = HEAP32[(iov + (i * 8 + 4)) >> 2] + var curr = FS.write(stream, HEAP8, ptr, len, offset) + if (curr < 0) return -1 + ret += curr + } + return ret + }, + varargs: undefined, + get: function () { + SYSCALLS.varargs += 4 + var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2] + return ret + }, + getStr: function (ptr) { + var ret = UTF8ToString(ptr) + return ret + }, + getStreamFromFD: function (fd) { + var stream = FS.getStream(fd) + if (!stream) throw new FS.ErrnoError(8) + return stream + }, + get64: function (low, high) { + return low + }, } - }, - read: function(stream, buffer, offset, length, pos) { - var bytesRead = 0; - for (var i = 0; i < length; i++) { - var result; + function ___sys_chmod(path, mode) { try { - result = input(); + path = SYSCALLS.getStr(path) + FS.chmod(path, mode) + return 0 } catch (e) { - throw new FS.ErrnoError(29); + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno } - if (result === undefined && bytesRead === 0) { - throw new FS.ErrnoError(6); + } + function ___sys_fcntl64(fd, cmd, varargs) { + SYSCALLS.varargs = varargs + try { + var stream = SYSCALLS.getStreamFromFD(fd) + switch (cmd) { + case 0: { + var arg = SYSCALLS.get() + if (arg < 0) { + return -28 + } + var newStream + newStream = FS.open(stream.path, stream.flags, 0, arg) + return newStream.fd + } + case 1: + case 2: + return 0 + case 3: + return stream.flags + case 4: { + var arg = SYSCALLS.get() + stream.flags |= arg + return 0 + } + case 12: { + var arg = SYSCALLS.get() + var offset = 0 + HEAP16[(arg + offset) >> 1] = 2 + return 0 + } + case 13: + case 14: + return 0 + case 16: + case 8: + return -28 + case 9: + setErrNo(28) + return -1 + default: { + return -28 + } + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno } - if (result === null || result === undefined) break; - bytesRead++; - buffer[offset + i] = result; } - if (bytesRead) { - stream.node.timestamp = Date.now(); + function ___sys_fstat64(fd, buf) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + return SYSCALLS.doStat(FS.stat, stream.path, buf) + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno + } } - return bytesRead; - }, - write: function(stream, buffer, offset, length, pos) { - for (var i = 0; i < length; i++) { + function ___sys_ioctl(fd, op, varargs) { + SYSCALLS.varargs = varargs + try { + var stream = SYSCALLS.getStreamFromFD(fd) + switch (op) { + case 21509: + case 21505: { + if (!stream.tty) return -59 + return 0 + } + case 21510: + case 21511: + case 21512: + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59 + return 0 + } + case 21519: { + if (!stream.tty) return -59 + var argp = SYSCALLS.get() + HEAP32[argp >> 2] = 0 + return 0 + } + case 21520: { + if (!stream.tty) return -59 + return -28 + } + case 21531: { + var argp = SYSCALLS.get() + return FS.ioctl(stream, op, argp) + } + case 21523: { + if (!stream.tty) return -59 + return 0 + } + case 21524: { + if (!stream.tty) return -59 + return 0 + } + default: + abort('bad ioctl syscall ' + op) + } + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno + } + } + function ___sys_open(path, flags, varargs) { + SYSCALLS.varargs = varargs try { - output(buffer[offset + i]); + var pathname = SYSCALLS.getStr(path) + var mode = SYSCALLS.get() + var stream = FS.open(pathname, flags, mode) + return stream.fd } catch (e) { - throw new FS.ErrnoError(29); + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno } } - if (length) { - stream.node.timestamp = Date.now(); + function ___sys_read(fd, buf, count) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + return FS.read(stream, HEAP8, buf, count) + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno + } } - return i; - } - }); - return FS.mkdev(path, mode, dev); - }, - createLink: function(parent, name, target, canRead, canWrite) { - var path = PATH.join2( - typeof parent === "string" ? parent : FS.getPath(parent), - name - ); - return FS.symlink(target, path); - }, - forceLoadFile: function(obj) { - if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; - var success = true; - if (typeof XMLHttpRequest !== "undefined") { - throw new Error( - "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." - ); - } else if (read_) { - try { - obj.contents = intArrayFromString(read_(obj.url), true); - obj.usedBytes = obj.contents.length; - } catch (e) { - success = false; - } - } else { - throw new Error("Cannot load without read() or XMLHttpRequest."); - } - if (!success) setErrNo(29); - return success; - }, - createLazyFile: function(parent, name, url, canRead, canWrite) { - function LazyUint8Array() { - this.lengthKnown = false; - this.chunks = []; - } - LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { - if (idx > this.length - 1 || idx < 0) { - return undefined; - } - var chunkOffset = idx % this.chunkSize; - var chunkNum = (idx / this.chunkSize) | 0; - return this.getter(chunkNum)[chunkOffset]; - }; - LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter( - getter - ) { - this.getter = getter; - }; - LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { - var xhr = new XMLHttpRequest(); - xhr.open("HEAD", url, false); - xhr.send(null); - if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - var datalength = Number(xhr.getResponseHeader("Content-length")); - var header; - var hasByteServing = - (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; - var usesGzip = - (header = xhr.getResponseHeader("Content-Encoding")) && - header === "gzip"; - var chunkSize = 1024 * 1024; - if (!hasByteServing) chunkSize = datalength; - var doXHR = function(from, to) { - if (from > to) - throw new Error( - "invalid range (" + from + ", " + to + ") or no bytes requested!" - ); - if (to > datalength - 1) - throw new Error( - "only " + datalength + " bytes available! programmer error!" - ); - var xhr = new XMLHttpRequest(); - xhr.open("GET", url, false); - if (datalength !== chunkSize) - xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); - if (typeof Uint8Array != "undefined") xhr.responseType = "arraybuffer"; - if (xhr.overrideMimeType) { - xhr.overrideMimeType("text/plain; charset=x-user-defined"); + function ___sys_rename(old_path, new_path) { + try { + old_path = SYSCALLS.getStr(old_path) + new_path = SYSCALLS.getStr(new_path) + FS.rename(old_path, new_path) + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno + } } - xhr.send(null); - if (!((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304)) - throw new Error("Couldn't load " + url + ". Status: " + xhr.status); - if (xhr.response !== undefined) { - return new Uint8Array(xhr.response || []); - } else { - return intArrayFromString(xhr.responseText || "", true); + function ___sys_rmdir(path) { + try { + path = SYSCALLS.getStr(path) + FS.rmdir(path) + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno + } } - }; - var lazyArray = this; - lazyArray.setDataGetter(function(chunkNum) { - var start = chunkNum * chunkSize; - var end = (chunkNum + 1) * chunkSize - 1; - end = Math.min(end, datalength - 1); - if (typeof lazyArray.chunks[chunkNum] === "undefined") { - lazyArray.chunks[chunkNum] = doXHR(start, end); + function ___sys_stat64(path, buf) { + try { + path = SYSCALLS.getStr(path) + return SYSCALLS.doStat(FS.stat, path, buf) + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno + } } - if (typeof lazyArray.chunks[chunkNum] === "undefined") - throw new Error("doXHR failed!"); - return lazyArray.chunks[chunkNum]; - }); - if (usesGzip || !datalength) { - chunkSize = datalength = 1; - datalength = this.getter(0).length; - chunkSize = datalength; - out( - "LazyFiles on gzip forces download of the whole file when length is accessed" - ); - } - this._length = datalength; - this._chunkSize = chunkSize; - this.lengthKnown = true; - }; - if (typeof XMLHttpRequest !== "undefined") { - if (!ENVIRONMENT_IS_WORKER) - throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"; - var lazyArray = new LazyUint8Array(); - Object.defineProperties(lazyArray, { - length: { - get: function() { - if (!this.lengthKnown) { - this.cacheLength(); - } - return this._length; + function ___sys_unlink(path) { + try { + path = SYSCALLS.getStr(path) + FS.unlink(path) + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return -e.errno } - }, - chunkSize: { - get: function() { - if (!this.lengthKnown) { - this.cacheLength(); + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num) + } + function _emscripten_get_heap_size() { + return HEAPU8.length + } + function emscripten_realloc_buffer(size) { + try { + wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16) + updateGlobalBufferAndViews(wasmMemory.buffer) + return 1 + } catch (e) {} + } + function _emscripten_resize_heap(requestedSize) { + requestedSize = requestedSize >>> 0 + var oldSize = _emscripten_get_heap_size() + var maxHeapSize = 2147483648 + if (requestedSize > maxHeapSize) { + return false + } + var minHeapSize = 16777216 + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown) + overGrownHeapSize = Math.min( + overGrownHeapSize, + requestedSize + 100663296 + ) + var newSize = Math.min( + maxHeapSize, + alignUp( + Math.max(minHeapSize, requestedSize, overGrownHeapSize), + 65536 + ) + ) + var replacement = emscripten_realloc_buffer(newSize) + if (replacement) { + return true } - return this._chunkSize; } + return false } - }); - var properties = { isDevice: false, contents: lazyArray }; - } else { - var properties = { isDevice: false, url: url }; - } - var node = FS.createFile(parent, name, properties, canRead, canWrite); - if (properties.contents) { - node.contents = properties.contents; - } else if (properties.url) { - node.contents = null; - node.url = properties.url; - } - Object.defineProperties(node, { - usedBytes: { - get: function() { - return this.contents.length; + function _fd_close(fd) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + FS.close(stream) + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return e.errno + } } - } - }); - var stream_ops = {}; - var keys = Object.keys(node.stream_ops); - keys.forEach(function(key) { - var fn = node.stream_ops[key]; - stream_ops[key] = function forceLoadLazyFile() { - if (!FS.forceLoadFile(node)) { - throw new FS.ErrnoError(29); + function _fd_fdstat_get(fd, pbuf) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + var type = stream.tty + ? 2 + : FS.isDir(stream.mode) + ? 3 + : FS.isLink(stream.mode) + ? 7 + : 4 + HEAP8[pbuf >> 0] = type + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return e.errno + } } - return fn.apply(null, arguments); - }; - }); - stream_ops.read = function stream_ops_read( - stream, - buffer, - offset, - length, - position - ) { - if (!FS.forceLoadFile(node)) { - throw new FS.ErrnoError(29); - } - var contents = stream.node.contents; - if (position >= contents.length) return 0; - var size = Math.min(contents.length - position, length); - if (contents.slice) { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents[position + i]; + function _fd_read(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + var num = SYSCALLS.doReadv(stream, iov, iovcnt) + HEAP32[pnum >> 2] = num + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return e.errno + } } - } else { - for (var i = 0; i < size; i++) { - buffer[offset + i] = contents.get(position + i); + function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + var HIGH_OFFSET = 4294967296 + var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0) + var DOUBLE_LIMIT = 9007199254740992 + if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) { + return -61 + } + FS.llseek(stream, offset, whence) + ;(tempI64 = [ + stream.position >>> 0, + ((tempDouble = stream.position), + +Math_abs(tempDouble) >= 1 + ? tempDouble > 0 + ? (Math_min( + +Math_floor(tempDouble / 4294967296), + 4294967295 + ) | + 0) >>> + 0 + : ~~+Math_ceil( + (tempDouble - +(~~tempDouble >>> 0)) / 4294967296 + ) >>> 0 + : 0), + ]), + (HEAP32[newOffset >> 2] = tempI64[0]), + (HEAP32[(newOffset + 4) >> 2] = tempI64[1]) + if (stream.getdents && offset === 0 && whence === 0) + stream.getdents = null + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return e.errno + } } - } - return size; - }; - node.stream_ops = stream_ops; - return node; - }, - createPreloadedFile: function( - parent, - name, - url, - canRead, - canWrite, - onload, - onerror, - dontCreateFile, - canOwn, - preFinish - ) { - Browser.init(); - var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; - var dep = getUniqueRunDependency("cp " + fullname); - function processData(byteArray) { - function finish(byteArray) { - if (preFinish) preFinish(); - if (!dontCreateFile) { - FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + function _fd_write(fd, iov, iovcnt, pnum) { + try { + var stream = SYSCALLS.getStreamFromFD(fd) + var num = SYSCALLS.doWritev(stream, iov, iovcnt) + HEAP32[pnum >> 2] = num + return 0 + } catch (e) { + if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) + abort(e) + return e.errno + } } - if (onload) onload(); - removeRunDependency(dep); - } - var handled = false; - Module["preloadPlugins"].forEach(function(plugin) { - if (handled) return; - if (plugin["canHandle"](fullname)) { - plugin["handle"](byteArray, fullname, finish, function() { - if (onerror) onerror(); - removeRunDependency(dep); - }); - handled = true; + function _setTempRet0($i) { + setTempRet0($i | 0) } - }); - if (!handled) finish(byteArray); - } - addRunDependency(dep); - if (typeof url == "string") { - Browser.asyncLoad( - url, - function(byteArray) { - processData(byteArray); - }, - onerror - ); - } else { - processData(url); - } - }, - indexedDB: function() { - return ( - window.indexedDB || - window.mozIndexedDB || - window.webkitIndexedDB || - window.msIndexedDB - ); - }, - DB_NAME: function() { - return "EM_FS_" + window.location.pathname; - }, - DB_VERSION: 20, - DB_STORE_NAME: "FILE_DATA", - saveFilesToDB: function(paths, onload, onerror) { - onload = onload || function() {}; - onerror = onerror || function() {}; - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { - out("creating db"); - var db = openRequest.result; - db.createObjectStore(FS.DB_STORE_NAME); - }; - openRequest.onsuccess = function openRequest_onsuccess() { - var db = openRequest.result; - var transaction = db.transaction([FS.DB_STORE_NAME], "readwrite"); - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, - fail = 0, - total = paths.length; - function finish() { - if (fail == 0) onload(); - else onerror(); - } - paths.forEach(function(path) { - var putRequest = files.put(FS.analyzePath(path).object.contents, path); - putRequest.onsuccess = function putRequest_onsuccess() { - ok++; - if (ok + fail == total) finish(); - }; - putRequest.onerror = function putRequest_onerror() { - fail++; - if (ok + fail == total) finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, - loadFilesFromDB: function(paths, onload, onerror) { - onload = onload || function() {}; - onerror = onerror || function() {}; - var indexedDB = FS.indexedDB(); - try { - var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); - } catch (e) { - return onerror(e); - } - openRequest.onupgradeneeded = onerror; - openRequest.onsuccess = function openRequest_onsuccess() { - var db = openRequest.result; - try { - var transaction = db.transaction([FS.DB_STORE_NAME], "readonly"); - } catch (e) { - onerror(e); - return; - } - var files = transaction.objectStore(FS.DB_STORE_NAME); - var ok = 0, - fail = 0, - total = paths.length; - function finish() { - if (fail == 0) onload(); - else onerror(); - } - paths.forEach(function(path) { - var getRequest = files.get(path); - getRequest.onsuccess = function getRequest_onsuccess() { - if (FS.analyzePath(path).exists) { - FS.unlink(path); - } - FS.createDataFile( - PATH.dirname(path), - PATH.basename(path), - getRequest.result, - true, - true, - true - ); - ok++; - if (ok + fail == total) finish(); - }; - getRequest.onerror = function getRequest_onerror() { - fail++; - if (ok + fail == total) finish(); - }; - }); - transaction.onerror = onerror; - }; - openRequest.onerror = onerror; - }, - mmapAlloc: function(size) { - var alignedSize = alignMemory(size, 16384); - var ptr = _malloc(alignedSize); - while (size < alignedSize) HEAP8[ptr + size++] = 0; - return ptr; - } -}; -var SYSCALLS = { - mappings: {}, - DEFAULT_POLLMASK: 5, - umask: 511, - calculateAt: function(dirfd, path) { - if (path[0] !== "/") { - var dir; - if (dirfd === -100) { - dir = FS.cwd(); - } else { - var dirstream = FS.getStream(dirfd); - if (!dirstream) throw new FS.ErrnoError(8); - dir = dirstream.path; - } - path = PATH.join2(dir, path); - } - return path; - }, - doStat: function(func, path, buf) { - try { - var stat = func(path); - } catch (e) { - if ( - e && - e.node && - PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node)) - ) { - return -54; - } - throw e; - } - HEAP32[buf >> 2] = stat.dev; - HEAP32[(buf + 4) >> 2] = 0; - HEAP32[(buf + 8) >> 2] = stat.ino; - HEAP32[(buf + 12) >> 2] = stat.mode; - HEAP32[(buf + 16) >> 2] = stat.nlink; - HEAP32[(buf + 20) >> 2] = stat.uid; - HEAP32[(buf + 24) >> 2] = stat.gid; - HEAP32[(buf + 28) >> 2] = stat.rdev; - HEAP32[(buf + 32) >> 2] = 0; - (tempI64 = [ - stat.size >>> 0, - ((tempDouble = stat.size), - +Math_abs(tempDouble) >= 1 - ? tempDouble > 0 - ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> - 0 - : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> - 0 - : 0) - ]), - (HEAP32[(buf + 40) >> 2] = tempI64[0]), - (HEAP32[(buf + 44) >> 2] = tempI64[1]); - HEAP32[(buf + 48) >> 2] = 4096; - HEAP32[(buf + 52) >> 2] = stat.blocks; - HEAP32[(buf + 56) >> 2] = (stat.atime.getTime() / 1e3) | 0; - HEAP32[(buf + 60) >> 2] = 0; - HEAP32[(buf + 64) >> 2] = (stat.mtime.getTime() / 1e3) | 0; - HEAP32[(buf + 68) >> 2] = 0; - HEAP32[(buf + 72) >> 2] = (stat.ctime.getTime() / 1e3) | 0; - HEAP32[(buf + 76) >> 2] = 0; - (tempI64 = [ - stat.ino >>> 0, - ((tempDouble = stat.ino), - +Math_abs(tempDouble) >= 1 - ? tempDouble > 0 - ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> - 0 - : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> + function _time(ptr) { + var ret = (Date.now() / 1e3) | 0 + if (ptr) { + HEAP32[ptr >> 2] = ret + } + return ret + } + function _tzset() { + if (_tzset.called) return + _tzset.called = true + HEAP32[__get_timezone() >> 2] = new Date().getTimezoneOffset() * 60 + var currentYear = new Date().getFullYear() + var winter = new Date(currentYear, 0, 1) + var summer = new Date(currentYear, 6, 1) + HEAP32[__get_daylight() >> 2] = Number( + winter.getTimezoneOffset() != summer.getTimezoneOffset() + ) + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/) + return match ? match[1] : 'GMT' + } + var winterName = extractZone(winter) + var summerName = extractZone(summer) + var winterNamePtr = allocateUTF8(winterName) + var summerNamePtr = allocateUTF8(summerName) + if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) { + HEAP32[__get_tzname() >> 2] = winterNamePtr + HEAP32[(__get_tzname() + 4) >> 2] = summerNamePtr + } else { + HEAP32[__get_tzname() >> 2] = summerNamePtr + HEAP32[(__get_tzname() + 4) >> 2] = winterNamePtr + } + } + function _timegm(tmPtr) { + _tzset() + var time = Date.UTC( + HEAP32[(tmPtr + 20) >> 2] + 1900, + HEAP32[(tmPtr + 16) >> 2], + HEAP32[(tmPtr + 12) >> 2], + HEAP32[(tmPtr + 8) >> 2], + HEAP32[(tmPtr + 4) >> 2], + HEAP32[tmPtr >> 2], 0 - : 0) - ]), - (HEAP32[(buf + 80) >> 2] = tempI64[0]), - (HEAP32[(buf + 84) >> 2] = tempI64[1]); - return 0; - }, - doMsync: function(addr, stream, len, flags, offset) { - var buffer = HEAPU8.slice(addr, addr + len); - FS.msync(stream, buffer, offset, len, flags); - }, - doMkdir: function(path, mode) { - path = PATH.normalize(path); - if (path[path.length - 1] === "/") path = path.substr(0, path.length - 1); - FS.mkdir(path, mode, 0); - return 0; - }, - doMknod: function(path, mode, dev) { - switch (mode & 61440) { - case 32768: - case 8192: - case 24576: - case 4096: - case 49152: - break; - default: - return -28; - } - FS.mknod(path, mode, dev); - return 0; - }, - doReadlink: function(path, buf, bufsize) { - if (bufsize <= 0) return -28; - var ret = FS.readlink(path); - var len = Math.min(bufsize, lengthBytesUTF8(ret)); - var endChar = HEAP8[buf + len]; - stringToUTF8(ret, buf, bufsize + 1); - HEAP8[buf + len] = endChar; - return len; - }, - doAccess: function(path, amode) { - if (amode & ~7) { - return -28; - } - var node; - var lookup = FS.lookupPath(path, { follow: true }); - node = lookup.node; - if (!node) { - return -44; - } - var perms = ""; - if (amode & 4) perms += "r"; - if (amode & 2) perms += "w"; - if (amode & 1) perms += "x"; - if (perms && FS.nodePermissions(node, perms)) { - return -2; - } - return 0; - }, - doDup: function(path, flags, suggestFD) { - var suggest = FS.getStream(suggestFD); - if (suggest) FS.close(suggest); - return FS.open(path, flags, 0, suggestFD, suggestFD).fd; - }, - doReadv: function(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(iov + i * 8) >> 2]; - var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; - var curr = FS.read(stream, HEAP8, ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - if (curr < len) break; - } - return ret; - }, - doWritev: function(stream, iov, iovcnt, offset) { - var ret = 0; - for (var i = 0; i < iovcnt; i++) { - var ptr = HEAP32[(iov + i * 8) >> 2]; - var len = HEAP32[(iov + (i * 8 + 4)) >> 2]; - var curr = FS.write(stream, HEAP8, ptr, len, offset); - if (curr < 0) return -1; - ret += curr; - } - return ret; - }, - varargs: undefined, - get: function() { - SYSCALLS.varargs += 4; - var ret = HEAP32[(SYSCALLS.varargs - 4) >> 2]; - return ret; - }, - getStr: function(ptr) { - var ret = UTF8ToString(ptr); - return ret; - }, - getStreamFromFD: function(fd) { - var stream = FS.getStream(fd); - if (!stream) throw new FS.ErrnoError(8); - return stream; - }, - get64: function(low, high) { - return low; - } -}; -function ___sys_chmod(path, mode) { - try { - path = SYSCALLS.getStr(path); - FS.chmod(path, mode); - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_fcntl64(fd, cmd, varargs) { - SYSCALLS.varargs = varargs; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - switch (cmd) { - case 0: { - var arg = SYSCALLS.get(); - if (arg < 0) { - return -28; + ) + var date = new Date(time) + HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay() + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0) + var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0 + HEAP32[(tmPtr + 28) >> 2] = yday + return (date.getTime() / 1e3) | 0 } - var newStream; - newStream = FS.open(stream.path, stream.flags, 0, arg); - return newStream.fd; - } - case 1: - case 2: - return 0; - case 3: - return stream.flags; - case 4: { - var arg = SYSCALLS.get(); - stream.flags |= arg; - return 0; - } - case 12: { - var arg = SYSCALLS.get(); - var offset = 0; - HEAP16[(arg + offset) >> 1] = 2; - return 0; - } - case 13: - case 14: - return 0; - case 16: - case 8: - return -28; - case 9: - setErrNo(28); - return -1; - default: { - return -28; - } - } - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_fstat64(fd, buf) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - return SYSCALLS.doStat(FS.stat, stream.path, buf); - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_ioctl(fd, op, varargs) { - SYSCALLS.varargs = varargs; - try { - var stream = SYSCALLS.getStreamFromFD(fd); - switch (op) { - case 21509: - case 21505: { - if (!stream.tty) return -59; - return 0; - } - case 21510: - case 21511: - case 21512: - case 21506: - case 21507: - case 21508: { - if (!stream.tty) return -59; - return 0; - } - case 21519: { - if (!stream.tty) return -59; - var argp = SYSCALLS.get(); - HEAP32[argp >> 2] = 0; - return 0; - } - case 21520: { - if (!stream.tty) return -59; - return -28; - } - case 21531: { - var argp = SYSCALLS.get(); - return FS.ioctl(stream, op, argp); - } - case 21523: { - if (!stream.tty) return -59; - return 0; + var FSNode = function (parent, name, mode, rdev) { + if (!parent) { + parent = this + } + this.parent = parent + this.mount = parent.mount + this.mounted = null + this.id = FS.nextInode++ + this.name = name + this.mode = mode + this.node_ops = {} + this.stream_ops = {} + this.rdev = rdev + } + var readMode = 292 | 73 + var writeMode = 146 + Object.defineProperties(FSNode.prototype, { + read: { + get: function () { + return (this.mode & readMode) === readMode + }, + set: function (val) { + val ? (this.mode |= readMode) : (this.mode &= ~readMode) + }, + }, + write: { + get: function () { + return (this.mode & writeMode) === writeMode + }, + set: function (val) { + val ? (this.mode |= writeMode) : (this.mode &= ~writeMode) + }, + }, + isFolder: { + get: function () { + return FS.isDir(this.mode) + }, + }, + isDevice: { + get: function () { + return FS.isChrdev(this.mode) + }, + }, + }) + FS.FSNode = FSNode + FS.staticInit() + if (ENVIRONMENT_IS_NODE) { + var fs = frozenFs + var NODEJS_PATH = __webpack_require__(622) + NODEFS.staticInit() + } + if (ENVIRONMENT_IS_NODE) { + var _wrapNodeError = function (func) { + return function () { + try { + return func.apply(this, arguments) + } catch (e) { + if (!e.code) throw e + throw new FS.ErrnoError(ERRNO_CODES[e.code]) + } + } + } + var VFS = Object.assign({}, FS) + for (var _key in NODERAWFS) FS[_key] = _wrapNodeError(NODERAWFS[_key]) + } else { + throw new Error( + 'NODERAWFS is currently only supported on Node.js environment.' + ) + } + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1 + var u8array = new Array(len) + var numBytesWritten = stringToUTF8Array( + stringy, + u8array, + 0, + u8array.length + ) + if (dontAddNull) u8array.length = numBytesWritten + return u8array + } + var decodeBase64 = + typeof atob === 'function' + ? atob + : function (input) { + var keyStr = + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + var output = '' + var chr1, chr2, chr3 + var enc1, enc2, enc3, enc4 + var i = 0 + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '') + do { + enc1 = keyStr.indexOf(input.charAt(i++)) + enc2 = keyStr.indexOf(input.charAt(i++)) + enc3 = keyStr.indexOf(input.charAt(i++)) + enc4 = keyStr.indexOf(input.charAt(i++)) + chr1 = (enc1 << 2) | (enc2 >> 4) + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2) + chr3 = ((enc3 & 3) << 6) | enc4 + output = output + String.fromCharCode(chr1) + if (enc3 !== 64) { + output = output + String.fromCharCode(chr2) + } + if (enc4 !== 64) { + output = output + String.fromCharCode(chr3) + } + } while (i < input.length) + return output + } + function intArrayFromBase64(s) { + if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) { + var buf + try { + buf = Buffer.from(s, 'base64') + } catch (_) { + buf = new Buffer(s, 'base64') + } + return new Uint8Array( + buf['buffer'], + buf['byteOffset'], + buf['byteLength'] + ) + } + try { + var decoded = decodeBase64(s) + var bytes = new Uint8Array(decoded.length) + for (var i = 0; i < decoded.length; ++i) { + bytes[i] = decoded.charCodeAt(i) + } + return bytes + } catch (_) { + throw new Error('Converting base64 string to bytes failed.') + } + } + function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return + } + return intArrayFromBase64(filename.slice(dataURIPrefix.length)) + } + var asmLibraryArg = { + m: ___gmtime_r, + b: wasmTable, + r: ___sys_chmod, + g: ___sys_fcntl64, + l: ___sys_fstat64, + q: ___sys_ioctl, + t: ___sys_open, + s: ___sys_read, + j: ___sys_rename, + u: ___sys_rmdir, + e: ___sys_stat64, + i: ___sys_unlink, + v: _emscripten_memcpy_big, + w: _emscripten_resize_heap, + h: _fd_close, + k: _fd_fdstat_get, + p: _fd_read, + n: _fd_seek, + f: _fd_write, + a: wasmMemory, + c: _setTempRet0, + d: _time, + o: _timegm, + } + var asm = createWasm() + var ___wasm_call_ctors = (Module['___wasm_call_ctors'] = asm['x']) + var _zipstruct_stat = (Module['_zipstruct_stat'] = asm['y']) + var _zipstruct_statS = (Module['_zipstruct_statS'] = asm['z']) + var _zipstruct_stat_name = (Module['_zipstruct_stat_name'] = asm['A']) + var _zipstruct_stat_index = (Module['_zipstruct_stat_index'] = asm['B']) + var _zipstruct_stat_size = (Module['_zipstruct_stat_size'] = asm['C']) + var _zipstruct_stat_mtime = (Module['_zipstruct_stat_mtime'] = asm['D']) + var _zipstruct_error = (Module['_zipstruct_error'] = asm['E']) + var _zipstruct_errorS = (Module['_zipstruct_errorS'] = asm['F']) + var _zipstruct_error_code_zip = (Module['_zipstruct_error_code_zip'] = + asm['G']) + var _zipstruct_stat_comp_size = (Module['_zipstruct_stat_comp_size'] = + asm['H']) + var _zipstruct_stat_comp_method = (Module[ + '_zipstruct_stat_comp_method' + ] = asm['I']) + var _zip_close = (Module['_zip_close'] = asm['J']) + var _zip_delete = (Module['_zip_delete'] = asm['K']) + var _zip_dir_add = (Module['_zip_dir_add'] = asm['L']) + var _zip_discard = (Module['_zip_discard'] = asm['M']) + var _zip_error_init_with_code = (Module['_zip_error_init_with_code'] = + asm['N']) + var _zip_get_error = (Module['_zip_get_error'] = asm['O']) + var _zip_file_get_error = (Module['_zip_file_get_error'] = asm['P']) + var _zip_error_strerror = (Module['_zip_error_strerror'] = asm['Q']) + var _zip_fclose = (Module['_zip_fclose'] = asm['R']) + var _zip_file_add = (Module['_zip_file_add'] = asm['S']) + var _zip_file_get_external_attributes = (Module[ + '_zip_file_get_external_attributes' + ] = asm['T']) + var _zip_file_set_external_attributes = (Module[ + '_zip_file_set_external_attributes' + ] = asm['U']) + var _zip_file_set_mtime = (Module['_zip_file_set_mtime'] = asm['V']) + var _zip_fopen = (Module['_zip_fopen'] = asm['W']) + var _zip_fopen_index = (Module['_zip_fopen_index'] = asm['X']) + var _zip_fread = (Module['_zip_fread'] = asm['Y']) + var _zip_get_name = (Module['_zip_get_name'] = asm['Z']) + var _zip_get_num_entries = (Module['_zip_get_num_entries'] = asm['_']) + var _zip_name_locate = (Module['_zip_name_locate'] = asm['$']) + var _zip_open = (Module['_zip_open'] = asm['aa']) + var _zip_open_from_source = (Module['_zip_open_from_source'] = + asm['ba']) + var _zip_set_file_compression = (Module['_zip_set_file_compression'] = + asm['ca']) + var _zip_source_buffer = (Module['_zip_source_buffer'] = asm['da']) + var _zip_source_buffer_create = (Module['_zip_source_buffer_create'] = + asm['ea']) + var _zip_source_close = (Module['_zip_source_close'] = asm['fa']) + var _zip_source_error = (Module['_zip_source_error'] = asm['ga']) + var _zip_source_free = (Module['_zip_source_free'] = asm['ha']) + var _zip_source_keep = (Module['_zip_source_keep'] = asm['ia']) + var _zip_source_open = (Module['_zip_source_open'] = asm['ja']) + var _zip_source_read = (Module['_zip_source_read'] = asm['ka']) + var _zip_source_seek = (Module['_zip_source_seek'] = asm['la']) + var _zip_source_set_mtime = (Module['_zip_source_set_mtime'] = + asm['ma']) + var _zip_source_tell = (Module['_zip_source_tell'] = asm['na']) + var _zip_stat = (Module['_zip_stat'] = asm['oa']) + var _zip_stat_index = (Module['_zip_stat_index'] = asm['pa']) + var _zip_ext_count_symlinks = (Module['_zip_ext_count_symlinks'] = + asm['qa']) + var ___errno_location = (Module['___errno_location'] = asm['ra']) + var __get_tzname = (Module['__get_tzname'] = asm['sa']) + var __get_daylight = (Module['__get_daylight'] = asm['ta']) + var __get_timezone = (Module['__get_timezone'] = asm['ua']) + var stackSave = (Module['stackSave'] = asm['va']) + var stackRestore = (Module['stackRestore'] = asm['wa']) + var stackAlloc = (Module['stackAlloc'] = asm['xa']) + var _malloc = (Module['_malloc'] = asm['ya']) + var _free = (Module['_free'] = asm['za']) + Module['cwrap'] = cwrap + Module['getValue'] = getValue + var calledRun + dependenciesFulfilled = function runCaller() { + if (!calledRun) run() + if (!calledRun) dependenciesFulfilled = runCaller + } + function run(args) { + args = args || arguments_ + if (runDependencies > 0) { + return + } + preRun() + if (runDependencies > 0) return + function doRun() { + if (calledRun) return + calledRun = true + Module['calledRun'] = true + if (ABORT) return + initRuntime() + preMain() + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']() + postRun() + } + if (Module['setStatus']) { + Module['setStatus']('Running...') + setTimeout(function () { + setTimeout(function () { + Module['setStatus']('') + }, 1) + doRun() + }, 1) + } else { + doRun() + } + } + Module['run'] = run + if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') + Module['preInit'] = [Module['preInit']] + while (Module['preInit'].length > 0) { + Module['preInit'].pop()() + } + } + noExitRuntime = true + run() + + /***/ + }, + + /***/ 417: /***/ (module) => { + 'use strict' + module.exports = require('crypto') + + /***/ + }, + + /***/ 747: /***/ (module) => { + 'use strict' + module.exports = require('fs') + + /***/ + }, + + /***/ 282: /***/ (module) => { + 'use strict' + module.exports = require('module') + + /***/ + }, + + /***/ 622: /***/ (module) => { + 'use strict' + module.exports = require('path') + + /***/ + }, + + /******/ + } + /************************************************************************/ + /******/ // The module cache + /******/ var __webpack_module_cache__ = {} + /******/ + /******/ // The require function + /******/ function __webpack_require__(moduleId) { + /******/ // Check if module is in cache + /******/ if (__webpack_module_cache__[moduleId]) { + /******/ return __webpack_module_cache__[moduleId].exports + /******/ } - case 21524: { - if (!stream.tty) return -59; - return 0; + /******/ // Create a new module (and put it into the cache) + /******/ var module = (__webpack_module_cache__[moduleId] = { + /******/ // no module.id needed + /******/ // no module.loaded needed + /******/ exports: {}, + /******/ + }) + /******/ + /******/ // Execute the module function + /******/ __webpack_modules__[moduleId]( + module, + module.exports, + __webpack_require__ + ) + /******/ + /******/ // Return the exports of the module + /******/ return module.exports + /******/ + } + /******/ + /************************************************************************/ + /******/ /* webpack/runtime/compat get default export */ + /******/ ;(() => { + /******/ // getDefaultExport function for compatibility with non-harmony modules + /******/ __webpack_require__.n = (module) => { + /******/ var getter = + module && module.__esModule + ? /******/ () => module['default'] + : /******/ () => module + /******/ __webpack_require__.d(getter, { a: getter }) + /******/ return getter + /******/ } - default: - abort("bad ioctl syscall " + op); - } - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_open(path, flags, varargs) { - SYSCALLS.varargs = varargs; - try { - var pathname = SYSCALLS.getStr(path); - var mode = SYSCALLS.get(); - var stream = FS.open(pathname, flags, mode); - return stream.fd; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_read(fd, buf, count) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - return FS.read(stream, HEAP8, buf, count); - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_rename(old_path, new_path) { - try { - old_path = SYSCALLS.getStr(old_path); - new_path = SYSCALLS.getStr(new_path); - FS.rename(old_path, new_path); - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_rmdir(path) { - try { - path = SYSCALLS.getStr(path); - FS.rmdir(path); - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_stat64(path, buf) { - try { - path = SYSCALLS.getStr(path); - return SYSCALLS.doStat(FS.stat, path, buf); - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function ___sys_unlink(path) { - try { - path = SYSCALLS.getStr(path); - FS.unlink(path); - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return -e.errno; - } -} -function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); -} -function _emscripten_get_heap_size() { - return HEAPU8.length; -} -function emscripten_realloc_buffer(size) { - try { - wasmMemory.grow((size - buffer.byteLength + 65535) >>> 16); - updateGlobalBufferAndViews(wasmMemory.buffer); - return 1; - } catch (e) {} -} -function _emscripten_resize_heap(requestedSize) { - requestedSize = requestedSize >>> 0; - var oldSize = _emscripten_get_heap_size(); - var maxHeapSize = 2147483648; - if (requestedSize > maxHeapSize) { - return false; - } - var minHeapSize = 16777216; - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); - var newSize = Math.min( - maxHeapSize, - alignUp(Math.max(minHeapSize, requestedSize, overGrownHeapSize), 65536) - ); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; -} -function _fd_close(fd) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - FS.close(stream); - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return e.errno; - } -} -function _fd_fdstat_get(fd, pbuf) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var type = stream.tty - ? 2 - : FS.isDir(stream.mode) - ? 3 - : FS.isLink(stream.mode) - ? 7 - : 4; - HEAP8[pbuf >> 0] = type; - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return e.errno; - } -} -function _fd_read(fd, iov, iovcnt, pnum) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = SYSCALLS.doReadv(stream, iov, iovcnt); - HEAP32[pnum >> 2] = num; - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return e.errno; - } -} -function _fd_seek(fd, offset_low, offset_high, whence, newOffset) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var HIGH_OFFSET = 4294967296; - var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0); - var DOUBLE_LIMIT = 9007199254740992; - if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) { - return -61; - } - FS.llseek(stream, offset, whence); - (tempI64 = [ - stream.position >>> 0, - ((tempDouble = stream.position), - +Math_abs(tempDouble) >= 1 - ? tempDouble > 0 - ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> - 0 - : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> - 0 - : 0) - ]), - (HEAP32[newOffset >> 2] = tempI64[0]), - (HEAP32[(newOffset + 4) >> 2] = tempI64[1]); - if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return e.errno; - } -} -function _fd_write(fd, iov, iovcnt, pnum) { - try { - var stream = SYSCALLS.getStreamFromFD(fd); - var num = SYSCALLS.doWritev(stream, iov, iovcnt); - HEAP32[pnum >> 2] = num; - return 0; - } catch (e) { - if (typeof FS === "undefined" || !(e instanceof FS.ErrnoError)) abort(e); - return e.errno; - } -} -function _setTempRet0($i) { - setTempRet0($i | 0); -} -function _time(ptr) { - var ret = (Date.now() / 1e3) | 0; - if (ptr) { - HEAP32[ptr >> 2] = ret; - } - return ret; -} -function _tzset() { - if (_tzset.called) return; - _tzset.called = true; - HEAP32[__get_timezone() >> 2] = new Date().getTimezoneOffset() * 60; - var currentYear = new Date().getFullYear(); - var winter = new Date(currentYear, 0, 1); - var summer = new Date(currentYear, 6, 1); - HEAP32[__get_daylight() >> 2] = Number( - winter.getTimezoneOffset() != summer.getTimezoneOffset() - ); - function extractZone(date) { - var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); - return match ? match[1] : "GMT"; - } - var winterName = extractZone(winter); - var summerName = extractZone(summer); - var winterNamePtr = allocateUTF8(winterName); - var summerNamePtr = allocateUTF8(summerName); - if (summer.getTimezoneOffset() < winter.getTimezoneOffset()) { - HEAP32[__get_tzname() >> 2] = winterNamePtr; - HEAP32[(__get_tzname() + 4) >> 2] = summerNamePtr; - } else { - HEAP32[__get_tzname() >> 2] = summerNamePtr; - HEAP32[(__get_tzname() + 4) >> 2] = winterNamePtr; - } -} -function _timegm(tmPtr) { - _tzset(); - var time = Date.UTC( - HEAP32[(tmPtr + 20) >> 2] + 1900, - HEAP32[(tmPtr + 16) >> 2], - HEAP32[(tmPtr + 12) >> 2], - HEAP32[(tmPtr + 8) >> 2], - HEAP32[(tmPtr + 4) >> 2], - HEAP32[tmPtr >> 2], - 0 - ); - var date = new Date(time); - HEAP32[(tmPtr + 24) >> 2] = date.getUTCDay(); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = ((date.getTime() - start) / (1e3 * 60 * 60 * 24)) | 0; - HEAP32[(tmPtr + 28) >> 2] = yday; - return (date.getTime() / 1e3) | 0; -} -var FSNode = function(parent, name, mode, rdev) { - if (!parent) { - parent = this; - } - this.parent = parent; - this.mount = parent.mount; - this.mounted = null; - this.id = FS.nextInode++; - this.name = name; - this.mode = mode; - this.node_ops = {}; - this.stream_ops = {}; - this.rdev = rdev; -}; -var readMode = 292 | 73; -var writeMode = 146; -Object.defineProperties(FSNode.prototype, { - read: { - get: function() { - return (this.mode & readMode) === readMode; - }, - set: function(val) { - val ? (this.mode |= readMode) : (this.mode &= ~readMode); - } - }, - write: { - get: function() { - return (this.mode & writeMode) === writeMode; - }, - set: function(val) { - val ? (this.mode |= writeMode) : (this.mode &= ~writeMode); - } - }, - isFolder: { - get: function() { - return FS.isDir(this.mode); - } - }, - isDevice: { - get: function() { - return FS.isChrdev(this.mode); - } - } -}); -FS.FSNode = FSNode; -FS.staticInit(); -if (ENVIRONMENT_IS_NODE) { - var fs = frozenFs; - var NODEJS_PATH = __webpack_require__(622); - NODEFS.staticInit(); -} -if (ENVIRONMENT_IS_NODE) { - var _wrapNodeError = function(func) { - return function() { - try { - return func.apply(this, arguments); - } catch (e) { - if (!e.code) throw e; - throw new FS.ErrnoError(ERRNO_CODES[e.code]); + /******/ + })() /* webpack/runtime/define property getters */ + /******/ + /******/ + /******/ + ;(() => { + /******/ // define getter functions for harmony exports + /******/ __webpack_require__.d = (exports, definition) => { + /******/ for (var key in definition) { + /******/ if ( + __webpack_require__.o(definition, key) && + !__webpack_require__.o(exports, key) + ) { + /******/ Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key], + }) + /******/ + } + /******/ + } + /******/ } - }; - }; - var VFS = Object.assign({}, FS); - for (var _key in NODERAWFS) FS[_key] = _wrapNodeError(NODERAWFS[_key]); -} else { - throw new Error( - "NODERAWFS is currently only supported on Node.js environment." - ); -} -function intArrayFromString(stringy, dontAddNull, length) { - var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; - var u8array = new Array(len); - var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); - if (dontAddNull) u8array.length = numBytesWritten; - return u8array; -} -var decodeBase64 = - typeof atob === "function" - ? atob - : function(input) { - var keyStr = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - var output = ""; - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0; - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - do { - enc1 = keyStr.indexOf(input.charAt(i++)); - enc2 = keyStr.indexOf(input.charAt(i++)); - enc3 = keyStr.indexOf(input.charAt(i++)); - enc4 = keyStr.indexOf(input.charAt(i++)); - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - output = output + String.fromCharCode(chr1); - if (enc3 !== 64) { - output = output + String.fromCharCode(chr2); - } - if (enc4 !== 64) { - output = output + String.fromCharCode(chr3); - } - } while (i < input.length); - return output; - }; -function intArrayFromBase64(s) { - if (typeof ENVIRONMENT_IS_NODE === "boolean" && ENVIRONMENT_IS_NODE) { - var buf; - try { - buf = Buffer.from(s, "base64"); - } catch (_) { - buf = new Buffer(s, "base64"); - } - return new Uint8Array(buf["buffer"], buf["byteOffset"], buf["byteLength"]); - } - try { - var decoded = decodeBase64(s); - var bytes = new Uint8Array(decoded.length); - for (var i = 0; i < decoded.length; ++i) { - bytes[i] = decoded.charCodeAt(i); - } - return bytes; - } catch (_) { - throw new Error("Converting base64 string to bytes failed."); - } -} -function tryParseAsDataURI(filename) { - if (!isDataURI(filename)) { - return; - } - return intArrayFromBase64(filename.slice(dataURIPrefix.length)); -} -var asmLibraryArg = { - m: ___gmtime_r, - b: wasmTable, - r: ___sys_chmod, - g: ___sys_fcntl64, - l: ___sys_fstat64, - q: ___sys_ioctl, - t: ___sys_open, - s: ___sys_read, - j: ___sys_rename, - u: ___sys_rmdir, - e: ___sys_stat64, - i: ___sys_unlink, - v: _emscripten_memcpy_big, - w: _emscripten_resize_heap, - h: _fd_close, - k: _fd_fdstat_get, - p: _fd_read, - n: _fd_seek, - f: _fd_write, - a: wasmMemory, - c: _setTempRet0, - d: _time, - o: _timegm -}; -var asm = createWasm(); -var ___wasm_call_ctors = (Module["___wasm_call_ctors"] = asm["x"]); -var _zipstruct_stat = (Module["_zipstruct_stat"] = asm["y"]); -var _zipstruct_statS = (Module["_zipstruct_statS"] = asm["z"]); -var _zipstruct_stat_name = (Module["_zipstruct_stat_name"] = asm["A"]); -var _zipstruct_stat_index = (Module["_zipstruct_stat_index"] = asm["B"]); -var _zipstruct_stat_size = (Module["_zipstruct_stat_size"] = asm["C"]); -var _zipstruct_stat_mtime = (Module["_zipstruct_stat_mtime"] = asm["D"]); -var _zipstruct_error = (Module["_zipstruct_error"] = asm["E"]); -var _zipstruct_errorS = (Module["_zipstruct_errorS"] = asm["F"]); -var _zipstruct_error_code_zip = (Module["_zipstruct_error_code_zip"] = - asm["G"]); -var _zipstruct_stat_comp_size = (Module["_zipstruct_stat_comp_size"] = - asm["H"]); -var _zipstruct_stat_comp_method = (Module["_zipstruct_stat_comp_method"] = - asm["I"]); -var _zip_close = (Module["_zip_close"] = asm["J"]); -var _zip_delete = (Module["_zip_delete"] = asm["K"]); -var _zip_dir_add = (Module["_zip_dir_add"] = asm["L"]); -var _zip_discard = (Module["_zip_discard"] = asm["M"]); -var _zip_error_init_with_code = (Module["_zip_error_init_with_code"] = - asm["N"]); -var _zip_get_error = (Module["_zip_get_error"] = asm["O"]); -var _zip_file_get_error = (Module["_zip_file_get_error"] = asm["P"]); -var _zip_error_strerror = (Module["_zip_error_strerror"] = asm["Q"]); -var _zip_fclose = (Module["_zip_fclose"] = asm["R"]); -var _zip_file_add = (Module["_zip_file_add"] = asm["S"]); -var _zip_file_get_external_attributes = (Module[ - "_zip_file_get_external_attributes" -] = asm["T"]); -var _zip_file_set_external_attributes = (Module[ - "_zip_file_set_external_attributes" -] = asm["U"]); -var _zip_file_set_mtime = (Module["_zip_file_set_mtime"] = asm["V"]); -var _zip_fopen = (Module["_zip_fopen"] = asm["W"]); -var _zip_fopen_index = (Module["_zip_fopen_index"] = asm["X"]); -var _zip_fread = (Module["_zip_fread"] = asm["Y"]); -var _zip_get_name = (Module["_zip_get_name"] = asm["Z"]); -var _zip_get_num_entries = (Module["_zip_get_num_entries"] = asm["_"]); -var _zip_name_locate = (Module["_zip_name_locate"] = asm["$"]); -var _zip_open = (Module["_zip_open"] = asm["aa"]); -var _zip_open_from_source = (Module["_zip_open_from_source"] = asm["ba"]); -var _zip_set_file_compression = (Module["_zip_set_file_compression"] = - asm["ca"]); -var _zip_source_buffer = (Module["_zip_source_buffer"] = asm["da"]); -var _zip_source_buffer_create = (Module["_zip_source_buffer_create"] = - asm["ea"]); -var _zip_source_close = (Module["_zip_source_close"] = asm["fa"]); -var _zip_source_error = (Module["_zip_source_error"] = asm["ga"]); -var _zip_source_free = (Module["_zip_source_free"] = asm["ha"]); -var _zip_source_keep = (Module["_zip_source_keep"] = asm["ia"]); -var _zip_source_open = (Module["_zip_source_open"] = asm["ja"]); -var _zip_source_read = (Module["_zip_source_read"] = asm["ka"]); -var _zip_source_seek = (Module["_zip_source_seek"] = asm["la"]); -var _zip_source_set_mtime = (Module["_zip_source_set_mtime"] = asm["ma"]); -var _zip_source_tell = (Module["_zip_source_tell"] = asm["na"]); -var _zip_stat = (Module["_zip_stat"] = asm["oa"]); -var _zip_stat_index = (Module["_zip_stat_index"] = asm["pa"]); -var _zip_ext_count_symlinks = (Module["_zip_ext_count_symlinks"] = asm["qa"]); -var ___errno_location = (Module["___errno_location"] = asm["ra"]); -var __get_tzname = (Module["__get_tzname"] = asm["sa"]); -var __get_daylight = (Module["__get_daylight"] = asm["ta"]); -var __get_timezone = (Module["__get_timezone"] = asm["ua"]); -var stackSave = (Module["stackSave"] = asm["va"]); -var stackRestore = (Module["stackRestore"] = asm["wa"]); -var stackAlloc = (Module["stackAlloc"] = asm["xa"]); -var _malloc = (Module["_malloc"] = asm["ya"]); -var _free = (Module["_free"] = asm["za"]); -Module["cwrap"] = cwrap; -Module["getValue"] = getValue; -var calledRun; -dependenciesFulfilled = function runCaller() { - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; -}; -function run(args) { - args = args || arguments_; - if (runDependencies > 0) { - return; - } - preRun(); - if (runDependencies > 0) return; - function doRun() { - if (calledRun) return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) return; - initRuntime(); - preMain(); - if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } -} -Module["run"] = run; -if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } -} -noExitRuntime = true; -run(); - - -/***/ }), - -/***/ 417: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto");; - -/***/ }), - -/***/ 747: -/***/ ((module) => { - -"use strict"; -module.exports = require("fs");; - -/***/ }), - -/***/ 282: -/***/ ((module) => { - -"use strict"; -module.exports = require("module");; - -/***/ }), - -/***/ 622: -/***/ ((module) => { - -"use strict"; -module.exports = require("path");; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ if(__webpack_module_cache__[moduleId]) { -/******/ return __webpack_module_cache__[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => module['default'] : -/******/ () => module; -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop) -/******/ })(); -/******/ -/************************************************************************/ -/******/ // module exports must be returned from runtime so entry inlining is disabled -/******/ // startup -/******/ // Load entry module and return exports -/******/ return __webpack_require__(936); -/******/ })() -.default; -}); \ No newline at end of file + /******/ + })() /* webpack/runtime/hasOwnProperty shorthand */ + /******/ + /******/ + /******/ + ;(() => { + /******/ __webpack_require__.o = (obj, prop) => + Object.prototype.hasOwnProperty.call(obj, prop) + /******/ + })() + /******/ + /************************************************************************/ + /******/ // module exports must be returned from runtime so entry inlining is disabled + /******/ // startup + /******/ // Load entry module and return exports + /******/ return __webpack_require__(936) + /******/ + })().default +}) diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..e86f27395 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,7 @@ +**/*.mdx +*.md +build +.pnp.js +.yarn/* +.next/* +*.yml \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..5149b1b77 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "trailingComma": "es5", + "semi": false, + "singleQuote": true +} diff --git a/.yarn/cache/husky-npm-6.0.0-384872ea98-61e1f7f53f.zip b/.yarn/cache/husky-npm-6.0.0-384872ea98-61e1f7f53f.zip new file mode 100644 index 000000000..b6ad3c89c Binary files /dev/null and b/.yarn/cache/husky-npm-6.0.0-384872ea98-61e1f7f53f.zip differ diff --git a/.yarn/cache/mri-npm-1.1.6-a1f1c96131-87a0946506.zip b/.yarn/cache/mri-npm-1.1.6-a1f1c96131-87a0946506.zip new file mode 100644 index 000000000..495504183 Binary files /dev/null and b/.yarn/cache/mri-npm-1.1.6-a1f1c96131-87a0946506.zip differ diff --git a/.yarn/cache/prettier-npm-2.0.5-f0ee4e15ce-d249d89361.zip b/.yarn/cache/prettier-npm-2.0.5-f0ee4e15ce-d249d89361.zip deleted file mode 100644 index e5cefcc14..000000000 Binary files a/.yarn/cache/prettier-npm-2.0.5-f0ee4e15ce-d249d89361.zip and /dev/null differ diff --git a/.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-652640cc8b.zip b/.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-652640cc8b.zip new file mode 100644 index 000000000..f0df8e3a5 Binary files /dev/null and b/.yarn/cache/prettier-npm-2.3.0-29ef37e8b6-652640cc8b.zip differ diff --git a/.yarn/cache/pretty-quick-npm-3.1.0-a3349e077f-956f0808ee.zip b/.yarn/cache/pretty-quick-npm-3.1.0-a3349e077f-956f0808ee.zip new file mode 100644 index 000000000..a0dc9413e Binary files /dev/null and b/.yarn/cache/pretty-quick-npm-3.1.0-a3349e077f-956f0808ee.zip differ diff --git a/apps/demo/.tina/__generated__/schema.gql b/apps/demo/.tina/__generated__/schema.gql index 8e7028888..a132b0f8a 100644 --- a/apps/demo/.tina/__generated__/schema.gql +++ b/apps/demo/.tina/__generated__/schema.gql @@ -14,13 +14,19 @@ interface FormField { component: String } -"""References another document, used as a foreign key""" +""" +References another document, used as a foreign key +""" scalar Reference -"""""" +""" + +""" scalar JSON -"""""" +""" + +""" scalar JSONObject type SystemInfo { @@ -54,9 +60,19 @@ input SectionParams { } type Mutation { - addPendingDocument(relativePath: String, collection: String, template: String): Document - updateDocument(relativePath: String, params: SectionParams): SectionDocumentUnion - updateAuthorsDocument(relativePath: String, params: Authors_Input): Authors_Document + addPendingDocument( + relativePath: String + collection: String + template: String + ): Document + updateDocument( + relativePath: String + params: SectionParams + ): SectionDocumentUnion + updateAuthorsDocument( + relativePath: String + params: Authors_Input + ): Authors_Document updatePostsDocument(relativePath: String, params: Posts_Input): Posts_Document } @@ -145,7 +161,11 @@ type Author_Accolades_GroupListField implements FormField { fields: [Author_Accolades_FormFieldsUnion] } -union Author_Doc_FormFieldsUnion = TextField | BooleanField | TextareaField | Author_Accolades_GroupListField +union Author_Doc_FormFieldsUnion = + TextField + | BooleanField + | TextareaField + | Author_Accolades_GroupListField type Author_Doc_Form { label: String @@ -221,5 +241,3 @@ input Post_Doc_Input { author: String _body: String } - - \ No newline at end of file diff --git a/apps/demo/.tina/__generated__/types.ts b/apps/demo/.tina/__generated__/types.ts index a41dfa6e4..8fe1ce306 100644 --- a/apps/demo/.tina/__generated__/types.ts +++ b/apps/demo/.tina/__generated__/types.ts @@ -12,311 +12,302 @@ limitations under the License. */ // DO NOT MODIFY THIS FILE. This file is automatically generated by Tina -export type Maybe = T | null; -export type Exact = { [K in keyof T]: T[K] }; +export type Maybe = T | null +export type Exact = { [K in keyof T]: T[K] } /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; + ID: string + String: string + Boolean: boolean + Int: number + Float: number /** References another document, used as a foreign key */ - Reference: any; - JSON: any; - JSONObject: any; -}; + Reference: any + JSON: any + JSONObject: any +} export type Node = { - id: Scalars['ID']; -}; + id: Scalars['ID'] +} export type Document = { - sys?: Maybe; - id: Scalars['ID']; -}; + sys?: Maybe + id: Scalars['ID'] +} export type FormField = { - label?: Maybe; - name?: Maybe; - component?: Maybe; -}; - - - + label?: Maybe + name?: Maybe + component?: Maybe +} export type SystemInfo = { - __typename?: 'SystemInfo'; - filename?: Maybe; - basename?: Maybe; - breadcrumbs?: Maybe>>; - path?: Maybe; - relativePath?: Maybe; - extension?: Maybe; - template?: Maybe; - collection?: Maybe
; -}; - + __typename?: 'SystemInfo' + filename?: Maybe + basename?: Maybe + breadcrumbs?: Maybe>> + path?: Maybe + relativePath?: Maybe + extension?: Maybe + template?: Maybe + collection?: Maybe
+} export type SystemInfoBreadcrumbsArgs = { - excludeExtension?: Maybe; -}; + excludeExtension?: Maybe +} export type Section = { - __typename?: 'Section'; - type?: Maybe; - path?: Maybe; - label?: Maybe; - create?: Maybe; - match?: Maybe; - new_doc_ext?: Maybe; - templates?: Maybe>>; - slug?: Maybe; - documents?: Maybe>>; -}; - -export type SectionDocumentUnion = Authors_Document | Posts_Document; + __typename?: 'Section' + type?: Maybe + path?: Maybe + label?: Maybe + create?: Maybe + match?: Maybe + new_doc_ext?: Maybe + templates?: Maybe>> + slug?: Maybe + documents?: Maybe>> +} + +export type SectionDocumentUnion = Authors_Document | Posts_Document export type SectionParams = { - authors?: Maybe; - posts?: Maybe; -}; + authors?: Maybe + posts?: Maybe +} export type Mutation = { - __typename?: 'Mutation'; - addPendingDocument?: Maybe; - updateDocument?: Maybe; - updateAuthorsDocument?: Maybe; - updatePostsDocument?: Maybe; -}; - + __typename?: 'Mutation' + addPendingDocument?: Maybe + updateDocument?: Maybe + updateAuthorsDocument?: Maybe + updatePostsDocument?: Maybe +} export type MutationAddPendingDocumentArgs = { - relativePath?: Maybe; - collection?: Maybe; - template?: Maybe; -}; - + relativePath?: Maybe + collection?: Maybe + template?: Maybe +} export type MutationUpdateDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdateAuthorsDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdatePostsDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; + relativePath?: Maybe + params?: Maybe +} export type Query = { - __typename?: 'Query'; - node?: Maybe; - getDocument?: Maybe; - getCollections?: Maybe>>; - getCollection?: Maybe
; - getAuthorsDocument?: Maybe; - getAuthorsList?: Maybe>>; - getPostsDocument?: Maybe; - getPostsList?: Maybe>>; -}; - + __typename?: 'Query' + node?: Maybe + getDocument?: Maybe + getCollections?: Maybe>> + getCollection?: Maybe
+ getAuthorsDocument?: Maybe + getAuthorsList?: Maybe>> + getPostsDocument?: Maybe + getPostsList?: Maybe>> +} export type QueryNodeArgs = { - id: Scalars['ID']; -}; - + id: Scalars['ID'] +} export type QueryGetDocumentArgs = { - collection?: Maybe; - relativePath?: Maybe; -}; - + collection?: Maybe + relativePath?: Maybe +} export type QueryGetCollectionArgs = { - collection?: Maybe; -}; - + collection?: Maybe +} export type QueryGetAuthorsDocumentArgs = { - relativePath?: Maybe; -}; - + relativePath?: Maybe +} export type QueryGetPostsDocumentArgs = { - relativePath?: Maybe; -}; + relativePath?: Maybe +} -export type Authors_Data = Author_Doc_Data; +export type Authors_Data = Author_Doc_Data export type Authors_Input = { - author?: Maybe; -}; + author?: Maybe +} -export type Authors_Values = Author_Doc_Values; +export type Authors_Values = Author_Doc_Values -export type Authors_Form = Author_Doc_Form; +export type Authors_Form = Author_Doc_Form -export type Authors_Document = Node & Document & { - __typename?: 'Authors_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type Authors_Document = Node & + Document & { + __typename?: 'Authors_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Author_Accolades_Data = { - __typename?: 'Author_Accolades_Data'; - figure?: Maybe; - description?: Maybe; -}; + __typename?: 'Author_Accolades_Data' + figure?: Maybe + description?: Maybe +} export type Author_Doc_Data = { - __typename?: 'Author_Doc_Data'; - name?: Maybe; - isAuthor?: Maybe; - description?: Maybe; - image?: Maybe; - accolades?: Maybe>>; - _body?: Maybe; -}; + __typename?: 'Author_Doc_Data' + name?: Maybe + isAuthor?: Maybe + description?: Maybe + image?: Maybe + accolades?: Maybe>> + _body?: Maybe +} export type Author_Accolades_Values = { - __typename?: 'Author_Accolades_Values'; - figure?: Maybe; - description?: Maybe; -}; + __typename?: 'Author_Accolades_Values' + figure?: Maybe + description?: Maybe +} export type Author_Doc_Values = { - __typename?: 'Author_Doc_Values'; - name?: Maybe; - isAuthor?: Maybe; - description?: Maybe; - image?: Maybe; - accolades?: Maybe>>; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'Author_Doc_Values' + name?: Maybe + isAuthor?: Maybe + description?: Maybe + image?: Maybe + accolades?: Maybe>> + _body?: Maybe + _template?: Maybe +} export type TextField = FormField & { - __typename?: 'TextField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'TextField' + name?: Maybe + label?: Maybe + component?: Maybe +} export type BooleanField = FormField & { - __typename?: 'BooleanField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'BooleanField' + name?: Maybe + label?: Maybe + component?: Maybe +} export type TextareaField = FormField & { - __typename?: 'TextareaField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'TextareaField' + name?: Maybe + label?: Maybe + component?: Maybe +} -export type Author_Accolades_FormFieldsUnion = TextField; +export type Author_Accolades_FormFieldsUnion = TextField export type Author_Accolades_GroupListField = FormField & { - __typename?: 'Author_Accolades_GroupListField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; - fields?: Maybe>>; -}; - -export type Author_Doc_FormFieldsUnion = TextField | BooleanField | TextareaField | Author_Accolades_GroupListField; + __typename?: 'Author_Accolades_GroupListField' + name?: Maybe + label?: Maybe + component?: Maybe + fields?: Maybe>> +} + +export type Author_Doc_FormFieldsUnion = + | TextField + | BooleanField + | TextareaField + | Author_Accolades_GroupListField export type Author_Doc_Form = { - __typename?: 'Author_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Author_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Author_Accolades_Input = { - figure?: Maybe; - description?: Maybe; -}; + figure?: Maybe + description?: Maybe +} export type Author_Doc_Input = { - name?: Maybe; - isAuthor?: Maybe; - description?: Maybe; - image?: Maybe; - accolades?: Maybe>>; - _body?: Maybe; -}; + name?: Maybe + isAuthor?: Maybe + description?: Maybe + image?: Maybe + accolades?: Maybe>> + _body?: Maybe +} -export type Posts_Data = Post_Doc_Data; +export type Posts_Data = Post_Doc_Data export type Posts_Input = { - post?: Maybe; -}; + post?: Maybe +} -export type Posts_Values = Post_Doc_Values; +export type Posts_Values = Post_Doc_Values -export type Posts_Form = Post_Doc_Form; +export type Posts_Form = Post_Doc_Form -export type Posts_Document = Node & Document & { - __typename?: 'Posts_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type Posts_Document = Node & + Document & { + __typename?: 'Posts_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Post_Doc_Data = { - __typename?: 'Post_Doc_Data'; - title?: Maybe; - image?: Maybe; - author?: Maybe; - _body?: Maybe; -}; + __typename?: 'Post_Doc_Data' + title?: Maybe + image?: Maybe + author?: Maybe + _body?: Maybe +} export type Post_Doc_Values = { - __typename?: 'Post_Doc_Values'; - title?: Maybe; - image?: Maybe; - author?: Maybe; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'Post_Doc_Values' + title?: Maybe + image?: Maybe + author?: Maybe + _body?: Maybe + _template?: Maybe +} export type SelectField = FormField & { - __typename?: 'SelectField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; - options?: Maybe>>; -}; + __typename?: 'SelectField' + name?: Maybe + label?: Maybe + component?: Maybe + options?: Maybe>> +} -export type Post_Doc_FormFieldsUnion = TextField | SelectField | TextareaField; +export type Post_Doc_FormFieldsUnion = TextField | SelectField | TextareaField export type Post_Doc_Form = { - __typename?: 'Post_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Post_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Post_Doc_Input = { - title?: Maybe; - image?: Maybe; - author?: Maybe; - _body?: Maybe; -}; - - + title?: Maybe + image?: Maybe + author?: Maybe + _body?: Maybe +} diff --git a/apps/demo/.tina/schema.ts b/apps/demo/.tina/schema.ts index c79f89f43..f2aafc96a 100644 --- a/apps/demo/.tina/schema.ts +++ b/apps/demo/.tina/schema.ts @@ -11,53 +11,53 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { defineSchema } from "tina-graphql-gateway-cli"; +import { defineSchema } from 'tina-graphql-gateway-cli' export default defineSchema({ collections: [ { - label: "Authors", - name: "authors", - path: "content/authors", + label: 'Authors', + name: 'authors', + path: 'content/authors', templates: [ { - label: "Author", - name: "author", + label: 'Author', + name: 'author', fields: [ { - name: "name", - type: "text", - label: "Name", + name: 'name', + type: 'text', + label: 'Name', }, { - name: "isAuthor", - type: "toggle", - label: "is Author", + name: 'isAuthor', + type: 'toggle', + label: 'is Author', }, { - name: "description", - type: "textarea", - label: "Description", + name: 'description', + type: 'textarea', + label: 'Description', }, { - name: "image", - type: "text", - label: "Image", + name: 'image', + type: 'text', + label: 'Image', }, { - name: "accolades", - type: "group-list", - label: "Accolades", + name: 'accolades', + type: 'group-list', + label: 'Accolades', fields: [ { - type: "text", - label: "Figure", - name: "figure", + type: 'text', + label: 'Figure', + name: 'figure', }, { - type: "text", - label: "Description", - name: "description", + type: 'text', + label: 'Description', + name: 'description', }, ], }, @@ -66,33 +66,33 @@ export default defineSchema({ ], }, { - label: "Posts", - name: "posts", - path: "content/posts", + label: 'Posts', + name: 'posts', + path: 'content/posts', templates: [ { - label: "Post", - name: "post", + label: 'Post', + name: 'post', fields: [ { - name: "title", - label: "Title", - type: "text", + name: 'title', + label: 'Title', + type: 'text', }, { - name: "image", - label: "Image", - type: "text", + name: 'image', + label: 'Image', + type: 'text', }, { - name: "author", - label: "Author", - type: "reference", - collection: "authors", + name: 'author', + label: 'Author', + type: 'reference', + collection: 'authors', }, ], }, ], }, ], -}); +}) diff --git a/apps/demo/components/EditLink.tsx b/apps/demo/components/EditLink.tsx index 85ba54c61..6f12cf4e0 100644 --- a/apps/demo/components/EditLink.tsx +++ b/apps/demo/components/EditLink.tsx @@ -12,14 +12,14 @@ limitations under the License. */ //...EditLink.tsx -import { useCMS } from "tinacms"; +import { useCMS } from 'tinacms' export const EditLink = () => { - const cms = useCMS(); + const cms = useCMS() return ( - ); -}; + ) +} diff --git a/apps/demo/components/graphiql.tsx b/apps/demo/components/graphiql.tsx index 1e447b30b..b89ddc4d8 100644 --- a/apps/demo/components/graphiql.tsx +++ b/apps/demo/components/graphiql.tsx @@ -11,64 +11,64 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import GraphiQL from "graphiql"; -import { formify, queryGenerator } from "tina-graphql-helpers"; -import { useMachine } from "@xstate/react"; -import { Machine, assign, createMachine, StateSchema } from "xstate"; -import { useGraphqlForms } from "tina-graphql-gateway"; -import { Form, useCMS, TinaCMS } from "tinacms"; -import { Sidebar } from "./sidebar"; +import React from 'react' +import GraphiQL from 'graphiql' +import { formify, queryGenerator } from 'tina-graphql-helpers' +import { useMachine } from '@xstate/react' +import { Machine, assign, createMachine, StateSchema } from 'xstate' +import { useGraphqlForms } from 'tina-graphql-gateway' +import { Form, useCMS, TinaCMS } from 'tinacms' +import { Sidebar } from './sidebar' import { parse, getIntrospectionQuery, GraphQLSchema, buildClientSchema, print, -} from "graphql"; +} from 'graphql' interface GraphiQLStateSchema extends StateSchema { states: { project: { states: { - initializing: {}; - fetchingSchema: {}; - generatingQuery: {}; - ready: {}; - formifyingQuery: {}; - }; - }; - }; + initializing: {} + fetchingSchema: {} + generatingQuery: {} + ready: {} + formifyingQuery: {} + } + } + } } // The events that the machine handles type GraphiQLEvent = - | { type: "FETCH" } - | { type: "FORMIFY" } - | { type: "RESET" } - | { type: "EDIT_QUERY"; value: string } - | { type: "EDIT_RESULT"; value: object } + | { type: 'FETCH' } + | { type: 'FORMIFY' } + | { type: 'RESET' } + | { type: 'EDIT_QUERY'; value: string } + | { type: 'EDIT_RESULT'; value: object } | { - type: "CHANGE_RELATIVE_PATH"; - value: { variables: { relativePath: string }; collection: string }; + type: 'CHANGE_RELATIVE_PATH' + value: { variables: { relativePath: string }; collection: string } } - | { type: "EDIT_VARIABLES"; value: object } - | { type: "SETUP_MUTATION"; value: object } + | { type: 'EDIT_VARIABLES'; value: object } + | { type: 'SETUP_MUTATION'; value: object } | { - type: "CHANGE_COLLECTION"; - value: string; - }; + type: 'CHANGE_COLLECTION' + value: string + } interface GraphiQLContext { - cms: TinaCMS; - variables: object; - schema: null | GraphQLSchema; - result: object; - queryString: string; - collection: string; - relativePath: string; + cms: TinaCMS + variables: object + schema: null | GraphQLSchema + result: object + queryString: string + collection: string + relativePath: string } -type GraphiQLState = { value: "project"; context: GraphiQLContext }; +type GraphiQLState = { value: 'project'; context: GraphiQLContext } // This machine is completely decoupled from React export const graphiqlMachine = createMachine< @@ -76,31 +76,31 @@ export const graphiqlMachine = createMachine< GraphiQLEvent, GraphiQLState >({ - id: "graphiql", - initial: "project", + id: 'graphiql', + initial: 'project', states: { project: { - initial: "initializing", + initial: 'initializing', states: { initializing: { invoke: { - id: "fetchSchema", + id: 'fetchSchema', src: async (context) => { const data = await context.cms.api.tina.request( getIntrospectionQuery(), { variables: {}, } - ); + ) - return data; + return data }, onDone: { - target: "generatingQuery", + target: 'generatingQuery', actions: [ assign({ schema: (_context, event) => { - return buildClientSchema(event.data); + return buildClientSchema(event.data) }, }), ], @@ -109,24 +109,24 @@ export const graphiqlMachine = createMachine< }, generatingQuery: { invoke: { - id: "generateQuery", + id: 'generateQuery', src: async (context, event) => { const variables = { // @ts-ignore relativePath: context.variables.relativePath, collection: context.collection, - }; - const query = queryGenerator(variables, context.schema); + } + const query = queryGenerator(variables, context.schema) return { queryString: print(query), variables: { relativePath: variables.relativePath }, - }; + } }, onDone: { - target: "ready", + target: 'ready', actions: assign({ queryString: (_context, event) => { - return event.data.queryString; + return event.data.queryString }, }), }, @@ -134,17 +134,17 @@ export const graphiqlMachine = createMachine< }, formifyingQuery: { invoke: { - id: "formifyQuery", + id: 'formifyQuery', src: async (context) => { if (!context.schema) { - throw new Error("Expected schema to already be defined"); + throw new Error('Expected schema to already be defined') } - const documentNode = parse(context.queryString); - return print(formify(documentNode, context.schema)); + const documentNode = parse(context.queryString) + return print(formify(documentNode, context.schema)) }, onDone: { - target: "ready", + target: 'ready', actions: assign({ queryString: (_context, event) => event.data, }), @@ -153,51 +153,51 @@ export const graphiqlMachine = createMachine< }, fetching: { invoke: { - id: "fetch", + id: 'fetch', src: async (context: GraphiQLContext, event: GraphiQLEvent) => { return context.cms.api.tina.request(context.queryString, { variables: context.variables, - }); + }) }, onDone: { - target: "ready", + target: 'ready', actions: assign({ result: (context, event) => event.data }), }, }, }, ready: { on: { - FETCH: "fetching", - FORMIFY: "formifyingQuery", - RESET: "initializing", + FETCH: 'fetching', + FORMIFY: 'formifyingQuery', + RESET: 'initializing', SETUP_MUTATION: { actions: assign((context, event) => event.value), }, EDIT_QUERY: { - target: "ready", + target: 'ready', actions: assign({ queryString: (context, event) => { - return event.value; + return event.value }, }), }, EDIT_RESULT: { - target: "ready", + target: 'ready', actions: assign({ result: (context, event) => { - return event.value; + return event.value }, }), }, CHANGE_RELATIVE_PATH: { - target: "initializing", + target: 'initializing', actions: assign({ variables: (context, event) => event.value.variables, collection: (context, event) => event.value.collection, }), }, EDIT_VARIABLES: { - target: "ready", + target: 'ready', actions: assign({ variables: (context, event) => event.value, }), @@ -207,7 +207,7 @@ export const graphiqlMachine = createMachine< }, }, }, -}); +}) const defaultQuery = ` query { @@ -215,16 +215,16 @@ query { slug } } -`; +` export const Explorer = ({ collection, relativePath, }: { - collection: string; - relativePath: string; + collection: string + relativePath: string }) => { - const cms = useCMS(); + const cms = useCMS() const [current, send, service] = useMachine( graphiqlMachine, @@ -240,42 +240,42 @@ export const Explorer = ({ schema: null, }, } - ); + ) const [res] = useGraphqlForms({ query: (gql) => gql(current.context.queryString), variables: current.context.variables, onSubmit: (args: { queryString: string; variables: object }) => { - send({ type: "SETUP_MUTATION", value: args }); + send({ type: 'SETUP_MUTATION', value: args }) }, - }); + }) React.useEffect(() => { - send({ type: "EDIT_RESULT", value: res }); - }, [JSON.stringify(res)]); + send({ type: 'EDIT_RESULT', value: res }) + }, [JSON.stringify(res)]) React.useEffect(() => { send({ - type: "CHANGE_RELATIVE_PATH", + type: 'CHANGE_RELATIVE_PATH', value: { variables: { relativePath }, collection }, - }); - }, [relativePath]); + }) + }, [relativePath]) - const _graphiql = React.useRef(); + const _graphiql = React.useRef() if (!current.context.schema) { - return
Finding schema...
; + return
Finding schema...
} const fetcher = async () => { - send({ type: "FETCH" }); + send({ type: 'FETCH' }) return new Promise((resolve) => { service.onChange((context) => { - resolve(context.result); - }); - }); - }; + resolve(context.result) + }) + }) + } return (
@@ -287,20 +287,20 @@ export const Explorer = ({ { - return fetcher(); + return fetcher() }} response={JSON.stringify(current.context.result, null, 2)} schema={current.context.schema} onEditQuery={(query: string) => { - send({ type: "EDIT_QUERY", value: query }); + send({ type: 'EDIT_QUERY', value: query }) }} query={current.context.queryString} onEditVariables={(variables: string) => { try { send({ - type: "EDIT_VARIABLES", + type: 'EDIT_VARIABLES', value: JSON.parse(variables), - }); + }) } catch (e) { // likely the input is still being edited } @@ -311,7 +311,7 @@ export const Explorer = ({ {` `}
- ); -}; + ) +} diff --git a/apps/demo/components/sidebar.tsx b/apps/demo/components/sidebar.tsx index e15e38b31..e82b477bf 100644 --- a/apps/demo/components/sidebar.tsx +++ b/apps/demo/components/sidebar.tsx @@ -11,30 +11,28 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import Link from "next/link"; -import { useCMS } from "tinacms"; +import React from 'react' +import Link from 'next/link' +import { useCMS } from 'tinacms' export const Sidebar = ({ - linkPrefix = "", + linkPrefix = '', relativePath, }: { - linkPrefix?: string; - relativePath: string; + linkPrefix?: string + relativePath: string }) => { const [collections, setCollections] = React.useState< { - slug: string; - path: string; - documents?: { sys: { relativePath: string; breadcrumbs: string[] } }[]; + slug: string + path: string + documents?: { sys: { relativePath: string; breadcrumbs: string[] } }[] }[] - >([]); + >([]) - const [activeCollections, setActiveCollections] = React.useState( - [] - ); + const [activeCollections, setActiveCollections] = React.useState([]) - const cms = useCMS(); + const cms = useCMS() React.useEffect(() => { const listCollections = async () => { @@ -63,35 +61,35 @@ export const Sidebar = ({ } `, {} - ); - setCollections(result.getCollections); + ) + setCollections(result.getCollections) setActiveCollections( result.getCollections.find((collectionData) => collectionData.documents.find((doc) => { - return doc.sys.relativePath === relativePath; + return doc.sys.relativePath === relativePath }) ).slug - ); + ) } catch (e) { // console.log("unable to list documents..."); // console.log(e); } - }; - listCollections(); - }, []); + } + listCollections() + }, []) return ( <> {/* Static sidebar for desktop */}
-
+
@@ -156,5 +154,5 @@ export const Sidebar = ({
- ); -}; + ) +} diff --git a/apps/demo/next.config.js b/apps/demo/next.config.js index ab4ddb019..f03f97fb5 100644 --- a/apps/demo/next.config.js +++ b/apps/demo/next.config.js @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -const path = require("path"); +const path = require('path') -require("dotenv").config(); +require('dotenv').config() module.exports = { env: { @@ -39,11 +39,11 @@ module.exports = { // config.resolve.alias["@tinacms"] = path.resolve( // "../../../tinacms/packages/@tinacms" // ); - config.resolve.alias["tinacms"] = require.resolve("tinacms"); - config.resolve.alias["react-dom"] = require.resolve("react-dom"); - config.resolve.alias["react"] = require.resolve("react"); - config.optimization.minimize = false; + config.resolve.alias['tinacms'] = require.resolve('tinacms') + config.resolve.alias['react-dom'] = require.resolve('react-dom') + config.resolve.alias['react'] = require.resolve('react') + config.optimization.minimize = false - return config; + return config }, -}; +} diff --git a/apps/demo/pages/[...path].tsx b/apps/demo/pages/[...path].tsx index 07245b5ce..f043b1e26 100644 --- a/apps/demo/pages/[...path].tsx +++ b/apps/demo/pages/[...path].tsx @@ -11,12 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { - useGraphqlForms, - useDocumentCreatorPlugin, -} from "tina-graphql-gateway"; -import type * as Tina from "../.tina/__generated__/types"; -import { Sidebar } from "../components/sidebar"; +import { useGraphqlForms, useDocumentCreatorPlugin } from 'tina-graphql-gateway' +import type * as Tina from '../.tina/__generated__/types' +import { Sidebar } from '../components/sidebar' const query = (gql) => gql` query ContentQuery($collection: String!, $relativePath: String!) { @@ -41,38 +38,38 @@ const query = (gql) => gql` } } } -`; +` export const getServerSideProps = async ({ params, ...rest }): Promise => { - if (typeof params.path === "string") { - throw new Error("Expected an array of strings for path slugs"); + if (typeof params.path === 'string') { + throw new Error('Expected an array of strings for path slugs') } return { props: { queryVars: { collection: params.path[0], - relativePath: params.path.slice(1).join("/"), + relativePath: params.path.slice(1).join('/'), }, }, - }; -}; + } +} const Home = (props: any) => { const [payload, isLoading] = useGraphqlForms<{ - getDocument: Tina.SectionDocumentUnion; + getDocument: Tina.SectionDocumentUnion }>({ query, variables: props.queryVars, formify: ({ formConfig, createForm, skip }) => { // return skip(); - return createForm(formConfig); + return createForm(formConfig) }, - }); + }) useDocumentCreatorPlugin((args) => window.location.assign( - `/${args.collection.slug}/${args.breadcrumbs.join("/")}.md` + `/${args.collection.slug}/${args.breadcrumbs.join('/')}.md` ) - ); + ) return (
@@ -87,7 +84,7 @@ const Home = (props: any) => { )}
- ); -}; + ) +} -export default Home; +export default Home diff --git a/apps/demo/pages/_app.tsx b/apps/demo/pages/_app.tsx index 61e7a34c1..1252e58e3 100644 --- a/apps/demo/pages/_app.tsx +++ b/apps/demo/pages/_app.tsx @@ -11,39 +11,44 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import { AppProps } from "next/app"; -import { withTina, useCMS } from "tinacms"; -import { LocalClient, Client, TinaCloudAuthWall } from "tina-graphql-gateway"; -import "graphiql/graphiql.css"; -import "codemirror/lib/codemirror.css"; -import "tailwindcss/tailwind.css"; +import React from 'react' +import { AppProps } from 'next/app' +import { withTina, useCMS } from 'tinacms' +import { LocalClient, Client, TinaCloudAuthWall } from 'tina-graphql-gateway' +import 'graphiql/graphiql.css' +import 'codemirror/lib/codemirror.css' +import 'tailwindcss/tailwind.css' function MyApp({ Component, pageProps }: AppProps) { - const cms = useCMS(); + const cms = useCMS() return (
- { - return [{ - action: async ()=>{ - closeModal() - }, - name: 'close', - primary: false, - }] - }}> + { + return [ + { + action: async () => { + closeModal() + }, + name: 'close', + primary: false, + }, + ] + }} + >
- ); + ) } // const client = new LocalClient(); const client = new Client({ - clientId: "some-id", - organizationId: "gctc", - branch: "main", -}); + clientId: 'some-id', + organizationId: 'gctc', + branch: 'main', +}) export default withTina(MyApp, { apis: { @@ -51,4 +56,4 @@ export default withTina(MyApp, { }, sidebar: true, enabled: true, -}); +}) diff --git a/apps/demo/pages/_document.js b/apps/demo/pages/_document.js index 5d128b6f9..e141be785 100644 --- a/apps/demo/pages/_document.js +++ b/apps/demo/pages/_document.js @@ -11,22 +11,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -import Document from "next/document"; -import { ServerStyleSheet } from "styled-components"; +import Document from 'next/document' +import { ServerStyleSheet } from 'styled-components' export default class MyDocument extends Document { static async getInitialProps(ctx) { - const sheet = new ServerStyleSheet(); - const originalRenderPage = ctx.renderPage; + const sheet = new ServerStyleSheet() + const originalRenderPage = ctx.renderPage try { ctx.renderPage = () => originalRenderPage({ enhanceApp: (App) => (props) => sheet.collectStyles(), - }); + }) - const initialProps = await Document.getInitialProps(ctx); + const initialProps = await Document.getInitialProps(ctx) return { ...initialProps, styles: ( @@ -35,9 +35,9 @@ export default class MyDocument extends Document { {sheet.getStyleElement()} ), - }; + } } finally { - sheet.seal(); + sheet.seal() } } } diff --git a/apps/demo/pages/graphiql/[...path].tsx b/apps/demo/pages/graphiql/[...path].tsx index 6bbdd76e8..7723dcb85 100644 --- a/apps/demo/pages/graphiql/[...path].tsx +++ b/apps/demo/pages/graphiql/[...path].tsx @@ -11,11 +11,11 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { useRouter } from "next/router"; -import { LocalClient } from "tina-graphql-gateway"; -import { Explorer } from "../../components/graphiql"; +import { useRouter } from 'next/router' +import { LocalClient } from 'tina-graphql-gateway' +import { Explorer } from '../../components/graphiql' -const client = new LocalClient(); +const client = new LocalClient() export const getServerSideProps = async () => { const result = await client.request( @@ -33,23 +33,23 @@ export const getServerSideProps = async () => { } `, { variables: {} } - ); - return { props: result }; -}; + ) + return { props: result } +} const Home = () => { - const router = useRouter(); - const { path } = router.query; + const router = useRouter() + const { path } = router.query - if (typeof path === "string") { + if (typeof path === 'string') { throw new Error( - "Path should be an array of strings, ensure your filename is [...path].tsx" - ); + 'Path should be an array of strings, ensure your filename is [...path].tsx' + ) } return ( - - ); -}; + + ) +} -export default Home; +export default Home diff --git a/apps/demo/pages/graphiql/index.tsx b/apps/demo/pages/graphiql/index.tsx index c7f6af84c..93b9eaaf8 100644 --- a/apps/demo/pages/graphiql/index.tsx +++ b/apps/demo/pages/graphiql/index.tsx @@ -11,10 +11,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { LocalClient } from "tina-graphql-gateway"; -import { Explorer } from "../../components/graphiql"; +import { LocalClient } from 'tina-graphql-gateway' +import { Explorer } from '../../components/graphiql' -const client = new LocalClient(); +const client = new LocalClient() export const getServerSideProps = async () => { const result = await client.request( @@ -32,14 +32,14 @@ export const getServerSideProps = async () => { } `, { variables: {} } - ); - return { props: result }; -}; + ) + return { props: result } +} const Home = (props: any) => { return ( - - ); -}; + + ) +} -export default Home; +export default Home diff --git a/apps/demo/pages/index.tsx b/apps/demo/pages/index.tsx index 3fbab26ef..86aca2191 100644 --- a/apps/demo/pages/index.tsx +++ b/apps/demo/pages/index.tsx @@ -11,14 +11,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { Sidebar } from "../components/sidebar"; +import { Sidebar } from '../components/sidebar' const Main = () => { return (
- ); -}; + ) +} -export default Main; +export default Main diff --git a/apps/demo/postcss.config.js b/apps/demo/postcss.config.js index bd52cc830..1960d454c 100644 --- a/apps/demo/postcss.config.js +++ b/apps/demo/postcss.config.js @@ -16,4 +16,4 @@ module.exports = { tailwindcss: {}, autoprefixer: {}, }, -} \ No newline at end of file +} diff --git a/apps/demo/tailwind.config.js b/apps/demo/tailwind.config.js index a7521a826..f58e67f80 100644 --- a/apps/demo/tailwind.config.js +++ b/apps/demo/tailwind.config.js @@ -21,4 +21,4 @@ module.exports = { extend: {}, }, plugins: [], -} \ No newline at end of file +} diff --git a/apps/test/.tina/__generated__/schema.gql b/apps/test/.tina/__generated__/schema.gql index f83ca6080..b8c2ecacb 100644 --- a/apps/test/.tina/__generated__/schema.gql +++ b/apps/test/.tina/__generated__/schema.gql @@ -14,13 +14,19 @@ interface FormField { component: String } -"""References another document, used as a foreign key""" +""" +References another document, used as a foreign key +""" scalar Reference -"""""" +""" + +""" scalar JSON -"""""" +""" + +""" scalar JSONObject type SystemInfo { @@ -54,9 +60,19 @@ input SectionParams { } type Mutation { - addPendingDocument(relativePath: String, collection: String, template: String): Document - updateDocument(relativePath: String, params: SectionParams): SectionDocumentUnion - updateAuthorsDocument(relativePath: String, params: Authors_Input): Authors_Document + addPendingDocument( + relativePath: String + collection: String + template: String + ): Document + updateDocument( + relativePath: String + params: SectionParams + ): SectionDocumentUnion + updateAuthorsDocument( + relativePath: String + params: Authors_Input + ): Authors_Document updatePostsDocument(relativePath: String, params: Posts_Input): Posts_Document } @@ -182,7 +198,11 @@ type SelectField implements FormField { options: [String] } -union Post_Doc_FormFieldsUnion = TextField | Post_Details_GroupField | SelectField | TextareaField +union Post_Doc_FormFieldsUnion = + TextField + | Post_Details_GroupField + | SelectField + | TextareaField type Post_Doc_Form { label: String @@ -200,5 +220,3 @@ input Post_Doc_Input { author: String _body: String } - - \ No newline at end of file diff --git a/apps/test/.tina/__generated__/types.ts b/apps/test/.tina/__generated__/types.ts index 5322f29e5..39750fc98 100644 --- a/apps/test/.tina/__generated__/types.ts +++ b/apps/test/.tina/__generated__/types.ts @@ -12,289 +12,280 @@ limitations under the License. */ // DO NOT MODIFY THIS FILE. This file is automatically generated by Tina -export type Maybe = T | null; -export type Exact = { [K in keyof T]: T[K] }; +export type Maybe = T | null +export type Exact = { [K in keyof T]: T[K] } /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; + ID: string + String: string + Boolean: boolean + Int: number + Float: number /** References another document, used as a foreign key */ - Reference: any; - JSON: any; - JSONObject: any; -}; + Reference: any + JSON: any + JSONObject: any +} export type Node = { - id: Scalars['ID']; -}; + id: Scalars['ID'] +} export type Document = { - sys?: Maybe; - id: Scalars['ID']; -}; + sys?: Maybe + id: Scalars['ID'] +} export type FormField = { - label?: Maybe; - name?: Maybe; - component?: Maybe; -}; - - - + label?: Maybe + name?: Maybe + component?: Maybe +} export type SystemInfo = { - __typename?: 'SystemInfo'; - filename?: Maybe; - basename?: Maybe; - breadcrumbs?: Maybe>>; - path?: Maybe; - relativePath?: Maybe; - extension?: Maybe; - template?: Maybe; - collection?: Maybe
; -}; - + __typename?: 'SystemInfo' + filename?: Maybe + basename?: Maybe + breadcrumbs?: Maybe>> + path?: Maybe + relativePath?: Maybe + extension?: Maybe + template?: Maybe + collection?: Maybe
+} export type SystemInfoBreadcrumbsArgs = { - excludeExtension?: Maybe; -}; + excludeExtension?: Maybe +} export type Section = { - __typename?: 'Section'; - type?: Maybe; - path?: Maybe; - label?: Maybe; - create?: Maybe; - match?: Maybe; - new_doc_ext?: Maybe; - templates?: Maybe>>; - slug?: Maybe; - documents?: Maybe>>; -}; - -export type SectionDocumentUnion = Authors_Document | Posts_Document; + __typename?: 'Section' + type?: Maybe + path?: Maybe + label?: Maybe + create?: Maybe + match?: Maybe + new_doc_ext?: Maybe + templates?: Maybe>> + slug?: Maybe + documents?: Maybe>> +} + +export type SectionDocumentUnion = Authors_Document | Posts_Document export type SectionParams = { - authors?: Maybe; - posts?: Maybe; -}; + authors?: Maybe + posts?: Maybe +} export type Mutation = { - __typename?: 'Mutation'; - addPendingDocument?: Maybe; - updateDocument?: Maybe; - updateAuthorsDocument?: Maybe; - updatePostsDocument?: Maybe; -}; - + __typename?: 'Mutation' + addPendingDocument?: Maybe + updateDocument?: Maybe + updateAuthorsDocument?: Maybe + updatePostsDocument?: Maybe +} export type MutationAddPendingDocumentArgs = { - relativePath?: Maybe; - collection?: Maybe; - template?: Maybe; -}; - + relativePath?: Maybe + collection?: Maybe + template?: Maybe +} export type MutationUpdateDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdateAuthorsDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdatePostsDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; + relativePath?: Maybe + params?: Maybe +} export type Query = { - __typename?: 'Query'; - node?: Maybe; - getDocument?: Maybe; - getCollections?: Maybe>>; - getCollection?: Maybe
; - getAuthorsDocument?: Maybe; - getAuthorsList?: Maybe>>; - getPostsDocument?: Maybe; - getPostsList?: Maybe>>; -}; - + __typename?: 'Query' + node?: Maybe + getDocument?: Maybe + getCollections?: Maybe>> + getCollection?: Maybe
+ getAuthorsDocument?: Maybe + getAuthorsList?: Maybe>> + getPostsDocument?: Maybe + getPostsList?: Maybe>> +} export type QueryNodeArgs = { - id: Scalars['ID']; -}; - + id: Scalars['ID'] +} export type QueryGetDocumentArgs = { - collection?: Maybe; - relativePath?: Maybe; -}; - + collection?: Maybe + relativePath?: Maybe +} export type QueryGetCollectionArgs = { - collection?: Maybe; -}; - + collection?: Maybe +} export type QueryGetAuthorsDocumentArgs = { - relativePath?: Maybe; -}; - + relativePath?: Maybe +} export type QueryGetPostsDocumentArgs = { - relativePath?: Maybe; -}; + relativePath?: Maybe +} -export type Authors_Data = Author_Doc_Data; +export type Authors_Data = Author_Doc_Data export type Authors_Input = { - author?: Maybe; -}; + author?: Maybe +} -export type Authors_Values = Author_Doc_Values; +export type Authors_Values = Author_Doc_Values -export type Authors_Form = Author_Doc_Form; +export type Authors_Form = Author_Doc_Form -export type Authors_Document = Node & Document & { - __typename?: 'Authors_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type Authors_Document = Node & + Document & { + __typename?: 'Authors_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Author_Doc_Data = { - __typename?: 'Author_Doc_Data'; - name?: Maybe; - _body?: Maybe; -}; + __typename?: 'Author_Doc_Data' + name?: Maybe + _body?: Maybe +} export type Author_Doc_Values = { - __typename?: 'Author_Doc_Values'; - name?: Maybe; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'Author_Doc_Values' + name?: Maybe + _body?: Maybe + _template?: Maybe +} export type TextField = FormField & { - __typename?: 'TextField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'TextField' + name?: Maybe + label?: Maybe + component?: Maybe +} export type TextareaField = FormField & { - __typename?: 'TextareaField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'TextareaField' + name?: Maybe + label?: Maybe + component?: Maybe +} -export type Author_Doc_FormFieldsUnion = TextField | TextareaField; +export type Author_Doc_FormFieldsUnion = TextField | TextareaField export type Author_Doc_Form = { - __typename?: 'Author_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Author_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Author_Doc_Input = { - name?: Maybe; - _body?: Maybe; -}; + name?: Maybe + _body?: Maybe +} -export type Posts_Data = Post_Doc_Data; +export type Posts_Data = Post_Doc_Data export type Posts_Input = { - post?: Maybe; -}; + post?: Maybe +} -export type Posts_Values = Post_Doc_Values; +export type Posts_Values = Post_Doc_Values -export type Posts_Form = Post_Doc_Form; +export type Posts_Form = Post_Doc_Form -export type Posts_Document = Node & Document & { - __typename?: 'Posts_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type Posts_Document = Node & + Document & { + __typename?: 'Posts_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Post_Details_Data = { - __typename?: 'Post_Details_Data'; - reading_time?: Maybe; -}; + __typename?: 'Post_Details_Data' + reading_time?: Maybe +} export type Post_Doc_Data = { - __typename?: 'Post_Doc_Data'; - title?: Maybe; - details?: Maybe; - author?: Maybe; - _body?: Maybe; -}; + __typename?: 'Post_Doc_Data' + title?: Maybe + details?: Maybe + author?: Maybe + _body?: Maybe +} export type Post_Details_Values = { - __typename?: 'Post_Details_Values'; - reading_time?: Maybe; -}; + __typename?: 'Post_Details_Values' + reading_time?: Maybe +} export type Post_Doc_Values = { - __typename?: 'Post_Doc_Values'; - title?: Maybe; - details?: Maybe; - author?: Maybe; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'Post_Doc_Values' + title?: Maybe + details?: Maybe + author?: Maybe + _body?: Maybe + _template?: Maybe +} -export type Post_Details_FormFieldsUnion = TextField; +export type Post_Details_FormFieldsUnion = TextField export type Post_Details_GroupField = FormField & { - __typename?: 'Post_Details_GroupField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Post_Details_GroupField' + name?: Maybe + label?: Maybe + component?: Maybe + fields?: Maybe>> +} export type SelectField = FormField & { - __typename?: 'SelectField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; - options?: Maybe>>; -}; - -export type Post_Doc_FormFieldsUnion = TextField | Post_Details_GroupField | SelectField | TextareaField; + __typename?: 'SelectField' + name?: Maybe + label?: Maybe + component?: Maybe + options?: Maybe>> +} + +export type Post_Doc_FormFieldsUnion = + | TextField + | Post_Details_GroupField + | SelectField + | TextareaField export type Post_Doc_Form = { - __typename?: 'Post_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Post_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Post_Details_Input = { - reading_time?: Maybe; -}; + reading_time?: Maybe +} export type Post_Doc_Input = { - title?: Maybe; - details?: Maybe; - author?: Maybe; - _body?: Maybe; -}; - - + title?: Maybe + details?: Maybe + author?: Maybe + _body?: Maybe +} diff --git a/apps/test/.tina/schema.ts b/apps/test/.tina/schema.ts index 02c6c72fe..aac33db54 100644 --- a/apps/test/.tina/schema.ts +++ b/apps/test/.tina/schema.ts @@ -11,63 +11,63 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { defineSchema } from "tina-graphql-gateway-cli"; +import { defineSchema } from 'tina-graphql-gateway-cli' export default defineSchema({ collections: [ { - label: "Authors", - name: "authors", - path: "content/authors", + label: 'Authors', + name: 'authors', + path: 'content/authors', templates: [ { - name: "author", - label: "Author", + name: 'author', + label: 'Author', fields: [ { - type: "text", - label: "Name", - name: "name", + type: 'text', + label: 'Name', + name: 'name', }, ], }, ], }, { - label: "Posts", - name: "posts", - path: "content/posts", + label: 'Posts', + name: 'posts', + path: 'content/posts', templates: [ { - name: "post", - label: "Post", + name: 'post', + label: 'Post', fields: [ { - type: "text", - label: "Title", - name: "title", + type: 'text', + label: 'Title', + name: 'title', }, { - type: "group", - label: "Details", - name: "details", + type: 'group', + label: 'Details', + name: 'details', fields: [ { - name: "reading_time", - label: "Reading Time", - type: "text", + name: 'reading_time', + label: 'Reading Time', + type: 'text', }, ], }, { - type: "reference", - label: "Author", - name: "author", - collection: "authors", + type: 'reference', + label: 'Author', + name: 'author', + collection: 'authors', }, ], }, ], }, ], -}); +}) diff --git a/apps/test/next.config.js b/apps/test/next.config.js index ab4ddb019..f03f97fb5 100644 --- a/apps/test/next.config.js +++ b/apps/test/next.config.js @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -const path = require("path"); +const path = require('path') -require("dotenv").config(); +require('dotenv').config() module.exports = { env: { @@ -39,11 +39,11 @@ module.exports = { // config.resolve.alias["@tinacms"] = path.resolve( // "../../../tinacms/packages/@tinacms" // ); - config.resolve.alias["tinacms"] = require.resolve("tinacms"); - config.resolve.alias["react-dom"] = require.resolve("react-dom"); - config.resolve.alias["react"] = require.resolve("react"); - config.optimization.minimize = false; + config.resolve.alias['tinacms'] = require.resolve('tinacms') + config.resolve.alias['react-dom'] = require.resolve('react-dom') + config.resolve.alias['react'] = require.resolve('react') + config.optimization.minimize = false - return config; + return config }, -}; +} diff --git a/apps/test/pages/_app.tsx b/apps/test/pages/_app.tsx index 7fb2ebdb1..a9f871fdd 100644 --- a/apps/test/pages/_app.tsx +++ b/apps/test/pages/_app.tsx @@ -11,13 +11,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import { AppProps } from "next/app"; -import Head from "next/head"; -import { withTina } from "tinacms"; -import { LocalClient } from "tina-graphql-gateway"; -import "graphiql/graphiql.css"; -import "codemirror/lib/codemirror.css"; +import React from 'react' +import { AppProps } from 'next/app' +import Head from 'next/head' +import { withTina } from 'tinacms' +import { LocalClient } from 'tina-graphql-gateway' +import 'graphiql/graphiql.css' +import 'codemirror/lib/codemirror.css' function MyApp({ Component, pageProps }: AppProps) { return ( @@ -32,10 +32,10 @@ function MyApp({ Component, pageProps }: AppProps) {
- ); + ) } -const client = new LocalClient(); +const client = new LocalClient() export default withTina(MyApp, { apis: { @@ -43,4 +43,4 @@ export default withTina(MyApp, { }, sidebar: true, enabled: true, -}); +}) diff --git a/apps/test/pages/_document.js b/apps/test/pages/_document.js index 5d128b6f9..e141be785 100644 --- a/apps/test/pages/_document.js +++ b/apps/test/pages/_document.js @@ -11,22 +11,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -import Document from "next/document"; -import { ServerStyleSheet } from "styled-components"; +import Document from 'next/document' +import { ServerStyleSheet } from 'styled-components' export default class MyDocument extends Document { static async getInitialProps(ctx) { - const sheet = new ServerStyleSheet(); - const originalRenderPage = ctx.renderPage; + const sheet = new ServerStyleSheet() + const originalRenderPage = ctx.renderPage try { ctx.renderPage = () => originalRenderPage({ enhanceApp: (App) => (props) => sheet.collectStyles(), - }); + }) - const initialProps = await Document.getInitialProps(ctx); + const initialProps = await Document.getInitialProps(ctx) return { ...initialProps, styles: ( @@ -35,9 +35,9 @@ export default class MyDocument extends Document { {sheet.getStyleElement()} ), - }; + } } finally { - sheet.seal(); + sheet.seal() } } } diff --git a/apps/test/pages/index.tsx b/apps/test/pages/index.tsx index 41b9f4649..1eecf752a 100644 --- a/apps/test/pages/index.tsx +++ b/apps/test/pages/index.tsx @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { LocalClient, useForm } from "tina-graphql-gateway"; +import { LocalClient, useForm } from 'tina-graphql-gateway' -const client = new LocalClient(); +const client = new LocalClient() export const getServerSideProps = async ({ params, ...rest }): Promise => { // if (typeof params.path === "string") { @@ -39,17 +39,17 @@ export const getServerSideProps = async ({ params, ...rest }): Promise => { `, { variables: { - section: "posts", - relativePath: "welcome.md", + section: 'posts', + relativePath: 'welcome.md', }, } - ); - return { props: content }; -}; + ) + return { props: content } +} const Home = (props: any) => { - const [{ getDocument }] = useForm({ payload: props }); - const { form, sys, ...rest } = getDocument; + const [{ getDocument }] = useForm({ payload: props }) + const { form, sys, ...rest } = getDocument return (
@@ -57,7 +57,7 @@ const Home = (props: any) => { {JSON.stringify(rest, null, 2)}
- ); -}; + ) +} -export default Home; +export default Home diff --git a/apps/tina-cloud-starter/.tina/__generated__/schema.gql b/apps/tina-cloud-starter/.tina/__generated__/schema.gql index e12d11987..7c594c242 100644 --- a/apps/tina-cloud-starter/.tina/__generated__/schema.gql +++ b/apps/tina-cloud-starter/.tina/__generated__/schema.gql @@ -14,13 +14,19 @@ interface FormField { component: String } -"""References another document, used as a foreign key""" +""" +References another document, used as a foreign key +""" scalar Reference -"""""" +""" + +""" scalar JSON -"""""" +""" + +""" scalar JSONObject type SystemInfo { @@ -47,7 +53,10 @@ type Section { documents: [Document] } -union SectionDocumentUnion = Posts_Document | Authors_Document | MarketingPages_Document +union SectionDocumentUnion = + Posts_Document + | Authors_Document + | MarketingPages_Document input SectionParams { posts: Posts_Input @@ -56,11 +65,24 @@ input SectionParams { } type Mutation { - addPendingDocument(relativePath: String, collection: String, template: String): Document - updateDocument(relativePath: String, params: SectionParams): SectionDocumentUnion + addPendingDocument( + relativePath: String + collection: String + template: String + ): Document + updateDocument( + relativePath: String + params: SectionParams + ): SectionDocumentUnion updatePostsDocument(relativePath: String, params: Posts_Input): Posts_Document - updateAuthorsDocument(relativePath: String, params: Authors_Input): Authors_Document - updateMarketingPagesDocument(relativePath: String, params: MarketingPages_Input): MarketingPages_Document + updateAuthorsDocument( + relativePath: String + params: Authors_Input + ): Authors_Document + updateMarketingPagesDocument( + relativePath: String + params: MarketingPages_Input + ): MarketingPages_Document } type Query { @@ -270,7 +292,9 @@ type LandingPage_Blocks_BlocksField implements FormField { templates: LandingPage_Blocks_BlocksFieldTemplates } -union LandingPage_Doc_FormFieldsUnion = LandingPage_Blocks_BlocksField | TextareaField +union LandingPage_Doc_FormFieldsUnion = + LandingPage_Blocks_BlocksField + | TextareaField type LandingPage_Doc_Form { label: String @@ -298,5 +322,3 @@ input LandingPage_Doc_Input { blocks: [Blocks_Input] _body: String } - - \ No newline at end of file diff --git a/apps/tina-cloud-starter/.tina/__generated__/types.ts b/apps/tina-cloud-starter/.tina/__generated__/types.ts index 7a1d743be..7abbc4214 100644 --- a/apps/tina-cloud-starter/.tina/__generated__/types.ts +++ b/apps/tina-cloud-starter/.tina/__generated__/types.ts @@ -12,407 +12,401 @@ limitations under the License. */ // DO NOT MODIFY THIS FILE. This file is automatically generated by Tina -export type Maybe = T | null; -export type Exact = { [K in keyof T]: T[K] }; +export type Maybe = T | null +export type Exact = { [K in keyof T]: T[K] } /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; + ID: string + String: string + Boolean: boolean + Int: number + Float: number /** References another document, used as a foreign key */ - Reference: any; - JSON: any; - JSONObject: any; -}; + Reference: any + JSON: any + JSONObject: any +} export type Node = { - id: Scalars['ID']; -}; + id: Scalars['ID'] +} export type Document = { - sys?: Maybe; - id: Scalars['ID']; -}; + sys?: Maybe + id: Scalars['ID'] +} export type FormField = { - label?: Maybe; - name?: Maybe; - component?: Maybe; -}; - - - + label?: Maybe + name?: Maybe + component?: Maybe +} export type SystemInfo = { - __typename?: 'SystemInfo'; - filename?: Maybe; - basename?: Maybe; - breadcrumbs?: Maybe>>; - path?: Maybe; - relativePath?: Maybe; - extension?: Maybe; - template?: Maybe; - collection?: Maybe
; -}; - + __typename?: 'SystemInfo' + filename?: Maybe + basename?: Maybe + breadcrumbs?: Maybe>> + path?: Maybe + relativePath?: Maybe + extension?: Maybe + template?: Maybe + collection?: Maybe
+} export type SystemInfoBreadcrumbsArgs = { - excludeExtension?: Maybe; -}; + excludeExtension?: Maybe +} export type Section = { - __typename?: 'Section'; - type?: Maybe; - path?: Maybe; - format?: Maybe; - label?: Maybe; - create?: Maybe; - match?: Maybe; - new_doc_ext?: Maybe; - templates?: Maybe>>; - slug?: Maybe; - documents?: Maybe>>; -}; - -export type SectionDocumentUnion = Posts_Document | Authors_Document | MarketingPages_Document; + __typename?: 'Section' + type?: Maybe + path?: Maybe + format?: Maybe + label?: Maybe + create?: Maybe + match?: Maybe + new_doc_ext?: Maybe + templates?: Maybe>> + slug?: Maybe + documents?: Maybe>> +} + +export type SectionDocumentUnion = + | Posts_Document + | Authors_Document + | MarketingPages_Document export type SectionParams = { - posts?: Maybe; - authors?: Maybe; - marketingPages?: Maybe; -}; + posts?: Maybe + authors?: Maybe + marketingPages?: Maybe +} export type Mutation = { - __typename?: 'Mutation'; - addPendingDocument?: Maybe; - updateDocument?: Maybe; - updatePostsDocument?: Maybe; - updateAuthorsDocument?: Maybe; - updateMarketingPagesDocument?: Maybe; -}; - + __typename?: 'Mutation' + addPendingDocument?: Maybe + updateDocument?: Maybe + updatePostsDocument?: Maybe + updateAuthorsDocument?: Maybe + updateMarketingPagesDocument?: Maybe +} export type MutationAddPendingDocumentArgs = { - relativePath?: Maybe; - collection?: Maybe; - template?: Maybe; -}; - + relativePath?: Maybe + collection?: Maybe + template?: Maybe +} export type MutationUpdateDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdatePostsDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdateAuthorsDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; - + relativePath?: Maybe + params?: Maybe +} export type MutationUpdateMarketingPagesDocumentArgs = { - relativePath?: Maybe; - params?: Maybe; -}; + relativePath?: Maybe + params?: Maybe +} export type Query = { - __typename?: 'Query'; - node?: Maybe; - getDocument?: Maybe; - getCollections?: Maybe>>; - getCollection?: Maybe
; - getPostsDocument?: Maybe; - getPostsList?: Maybe>>; - getAuthorsDocument?: Maybe; - getAuthorsList?: Maybe>>; - getMarketingPagesDocument?: Maybe; - getMarketingPagesList?: Maybe>>; -}; - + __typename?: 'Query' + node?: Maybe + getDocument?: Maybe + getCollections?: Maybe>> + getCollection?: Maybe
+ getPostsDocument?: Maybe + getPostsList?: Maybe>> + getAuthorsDocument?: Maybe + getAuthorsList?: Maybe>> + getMarketingPagesDocument?: Maybe + getMarketingPagesList?: Maybe>> +} export type QueryNodeArgs = { - id: Scalars['ID']; -}; - + id: Scalars['ID'] +} export type QueryGetDocumentArgs = { - collection?: Maybe; - relativePath?: Maybe; -}; - + collection?: Maybe + relativePath?: Maybe +} export type QueryGetCollectionArgs = { - collection?: Maybe; -}; - + collection?: Maybe +} export type QueryGetPostsDocumentArgs = { - relativePath?: Maybe; -}; - + relativePath?: Maybe +} export type QueryGetAuthorsDocumentArgs = { - relativePath?: Maybe; -}; - + relativePath?: Maybe +} export type QueryGetMarketingPagesDocumentArgs = { - relativePath?: Maybe; -}; + relativePath?: Maybe +} -export type Posts_Data = Article_Doc_Data; +export type Posts_Data = Article_Doc_Data export type Posts_Input = { - article?: Maybe; -}; + article?: Maybe +} -export type Posts_Values = Article_Doc_Values; +export type Posts_Values = Article_Doc_Values -export type Posts_Form = Article_Doc_Form; +export type Posts_Form = Article_Doc_Form -export type Posts_Document = Node & Document & { - __typename?: 'Posts_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type Posts_Document = Node & + Document & { + __typename?: 'Posts_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Article_Doc_Data = { - __typename?: 'Article_Doc_Data'; - title?: Maybe; - author?: Maybe; - _body?: Maybe; -}; + __typename?: 'Article_Doc_Data' + title?: Maybe + author?: Maybe + _body?: Maybe +} export type Article_Doc_Values = { - __typename?: 'Article_Doc_Values'; - title?: Maybe; - author?: Maybe; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'Article_Doc_Values' + title?: Maybe + author?: Maybe + _body?: Maybe + _template?: Maybe +} export type TextField = FormField & { - __typename?: 'TextField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'TextField' + name?: Maybe + label?: Maybe + component?: Maybe +} export type SelectField = FormField & { - __typename?: 'SelectField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; - options?: Maybe>>; -}; + __typename?: 'SelectField' + name?: Maybe + label?: Maybe + component?: Maybe + options?: Maybe>> +} export type TextareaField = FormField & { - __typename?: 'TextareaField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; -}; + __typename?: 'TextareaField' + name?: Maybe + label?: Maybe + component?: Maybe +} -export type Article_Doc_FormFieldsUnion = TextField | SelectField | TextareaField; +export type Article_Doc_FormFieldsUnion = + | TextField + | SelectField + | TextareaField export type Article_Doc_Form = { - __typename?: 'Article_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Article_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Article_Doc_Input = { - title?: Maybe; - author?: Maybe; - _body?: Maybe; -}; + title?: Maybe + author?: Maybe + _body?: Maybe +} -export type Authors_Data = Author_Doc_Data; +export type Authors_Data = Author_Doc_Data export type Authors_Input = { - author?: Maybe; -}; + author?: Maybe +} -export type Authors_Values = Author_Doc_Values; +export type Authors_Values = Author_Doc_Values -export type Authors_Form = Author_Doc_Form; +export type Authors_Form = Author_Doc_Form -export type Authors_Document = Node & Document & { - __typename?: 'Authors_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type Authors_Document = Node & + Document & { + __typename?: 'Authors_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Author_Doc_Data = { - __typename?: 'Author_Doc_Data'; - name?: Maybe; - avatar?: Maybe; - _body?: Maybe; -}; + __typename?: 'Author_Doc_Data' + name?: Maybe + avatar?: Maybe + _body?: Maybe +} export type Author_Doc_Values = { - __typename?: 'Author_Doc_Values'; - name?: Maybe; - avatar?: Maybe; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'Author_Doc_Values' + name?: Maybe + avatar?: Maybe + _body?: Maybe + _template?: Maybe +} -export type Author_Doc_FormFieldsUnion = TextField | TextareaField; +export type Author_Doc_FormFieldsUnion = TextField | TextareaField export type Author_Doc_Form = { - __typename?: 'Author_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Author_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Author_Doc_Input = { - name?: Maybe; - avatar?: Maybe; - _body?: Maybe; -}; + name?: Maybe + avatar?: Maybe + _body?: Maybe +} -export type MarketingPages_Data = LandingPage_Doc_Data; +export type MarketingPages_Data = LandingPage_Doc_Data export type MarketingPages_Input = { - landingPage?: Maybe; -}; + landingPage?: Maybe +} -export type MarketingPages_Values = LandingPage_Doc_Values; +export type MarketingPages_Values = LandingPage_Doc_Values -export type MarketingPages_Form = LandingPage_Doc_Form; +export type MarketingPages_Form = LandingPage_Doc_Form -export type MarketingPages_Document = Node & Document & { - __typename?: 'MarketingPages_Document'; - id: Scalars['ID']; - sys?: Maybe; - data?: Maybe; - values?: Maybe; - form?: Maybe; -}; +export type MarketingPages_Document = Node & + Document & { + __typename?: 'MarketingPages_Document' + id: Scalars['ID'] + sys?: Maybe + data?: Maybe + values?: Maybe + form?: Maybe + } export type Message_Data = { - __typename?: 'Message_Data'; - messageHeader?: Maybe; - messageBody?: Maybe; -}; + __typename?: 'Message_Data' + messageHeader?: Maybe + messageBody?: Maybe +} export type Diagram_Data = { - __typename?: 'Diagram_Data'; - diagramHeading?: Maybe; - diagramDescription?: Maybe; - diagramID?: Maybe; -}; + __typename?: 'Diagram_Data' + diagramHeading?: Maybe + diagramDescription?: Maybe + diagramID?: Maybe +} -export type LandingPage_Blocks_Data = Message_Data | Diagram_Data; +export type LandingPage_Blocks_Data = Message_Data | Diagram_Data export type LandingPage_Doc_Data = { - __typename?: 'LandingPage_Doc_Data'; - blocks?: Maybe>>; - _body?: Maybe; -}; + __typename?: 'LandingPage_Doc_Data' + blocks?: Maybe>> + _body?: Maybe +} export type Message_Values = { - __typename?: 'Message_Values'; - messageHeader?: Maybe; - messageBody?: Maybe; - _template?: Maybe; -}; + __typename?: 'Message_Values' + messageHeader?: Maybe + messageBody?: Maybe + _template?: Maybe +} export type Diagram_Values = { - __typename?: 'Diagram_Values'; - diagramHeading?: Maybe; - diagramDescription?: Maybe; - diagramID?: Maybe; - _template?: Maybe; -}; + __typename?: 'Diagram_Values' + diagramHeading?: Maybe + diagramDescription?: Maybe + diagramID?: Maybe + _template?: Maybe +} -export type LandingPage_Blocks_Values = Message_Values | Diagram_Values; +export type LandingPage_Blocks_Values = Message_Values | Diagram_Values export type LandingPage_Doc_Values = { - __typename?: 'LandingPage_Doc_Values'; - blocks?: Maybe>>; - _body?: Maybe; - _template?: Maybe; -}; + __typename?: 'LandingPage_Doc_Values' + blocks?: Maybe>> + _body?: Maybe + _template?: Maybe +} -export type Message_FormFieldsUnion = TextField | TextareaField; +export type Message_FormFieldsUnion = TextField | TextareaField export type Message_Form = { - __typename?: 'Message_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Message_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} -export type Diagram_FormFieldsUnion = TextField | TextareaField; +export type Diagram_FormFieldsUnion = TextField | TextareaField export type Diagram_Form = { - __typename?: 'Diagram_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'Diagram_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type LandingPage_Blocks_BlocksFieldTemplates = { - __typename?: 'LandingPage_Blocks_BlocksFieldTemplates'; - message?: Maybe; - diagram?: Maybe; -}; + __typename?: 'LandingPage_Blocks_BlocksFieldTemplates' + message?: Maybe + diagram?: Maybe +} export type LandingPage_Blocks_BlocksField = FormField & { - __typename?: 'LandingPage_Blocks_BlocksField'; - name?: Maybe; - label?: Maybe; - component?: Maybe; - templates?: Maybe; -}; + __typename?: 'LandingPage_Blocks_BlocksField' + name?: Maybe + label?: Maybe + component?: Maybe + templates?: Maybe +} -export type LandingPage_Doc_FormFieldsUnion = LandingPage_Blocks_BlocksField | TextareaField; +export type LandingPage_Doc_FormFieldsUnion = + | LandingPage_Blocks_BlocksField + | TextareaField export type LandingPage_Doc_Form = { - __typename?: 'LandingPage_Doc_Form'; - label?: Maybe; - name?: Maybe; - fields?: Maybe>>; -}; + __typename?: 'LandingPage_Doc_Form' + label?: Maybe + name?: Maybe + fields?: Maybe>> +} export type Message_Input = { - messageHeader?: Maybe; - messageBody?: Maybe; -}; + messageHeader?: Maybe + messageBody?: Maybe +} export type Diagram_Input = { - diagramHeading?: Maybe; - diagramDescription?: Maybe; - diagramID?: Maybe; -}; + diagramHeading?: Maybe + diagramDescription?: Maybe + diagramID?: Maybe +} export type Blocks_Input = { - message?: Maybe; - diagram?: Maybe; -}; + message?: Maybe + diagram?: Maybe +} export type LandingPage_Doc_Input = { - blocks?: Maybe>>; - _body?: Maybe; -}; - - + blocks?: Maybe>> + _body?: Maybe +} diff --git a/apps/tina-cloud-starter/.tina/schema.ts b/apps/tina-cloud-starter/.tina/schema.ts index 38dbdb034..3101ac4db 100644 --- a/apps/tina-cloud-starter/.tina/schema.ts +++ b/apps/tina-cloud-starter/.tina/schema.ts @@ -11,105 +11,105 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { defineSchema } from "tina-graphql-gateway-cli"; +import { defineSchema } from 'tina-graphql-gateway-cli' export default defineSchema({ collections: [ { - label: "Blog Posts", - name: "posts", - path: "content/posts", + label: 'Blog Posts', + name: 'posts', + path: 'content/posts', templates: [ { - label: "Article", - name: "article", + label: 'Article', + name: 'article', fields: [ { - type: "text", - label: "Title", - name: "title", + type: 'text', + label: 'Title', + name: 'title', }, { - type: "reference", - label: "Author", - name: "author", - collection: "authors", + type: 'reference', + label: 'Author', + name: 'author', + collection: 'authors', }, ], }, ], }, { - label: "Authors", - name: "authors", - path: "content/authors", + label: 'Authors', + name: 'authors', + path: 'content/authors', templates: [ { - label: "Author", - name: "author", + label: 'Author', + name: 'author', fields: [ { - type: "text", - label: "Name", - name: "name", + type: 'text', + label: 'Name', + name: 'name', }, { - type: "text", - label: "Avatar", - name: "avatar", + type: 'text', + label: 'Avatar', + name: 'avatar', }, ], }, ], }, { - label: "Marketing Pages", - name: "marketingPages", - path: "content/marketing-pages", + label: 'Marketing Pages', + name: 'marketingPages', + path: 'content/marketing-pages', templates: [ { - label: "Landing Page", - name: "landingPage", + label: 'Landing Page', + name: 'landingPage', fields: [ { - type: "blocks", - name: "blocks", - label: "Blocks", + type: 'blocks', + name: 'blocks', + label: 'Blocks', templates: [ { - name: "message", - label: "Message", + name: 'message', + label: 'Message', fields: [ { - type: "text", - label: "Message Header", - name: "messageHeader", + type: 'text', + label: 'Message Header', + name: 'messageHeader', }, { - type: "textarea", - label: "Message Body", - name: "messageBody", + type: 'textarea', + label: 'Message Body', + name: 'messageBody', }, ], }, { - name: "diagram", - label: "Diagram", + name: 'diagram', + label: 'Diagram', fields: [ { - type: "text", - label: "Diagram Heading", - name: "diagramHeading", + type: 'text', + label: 'Diagram Heading', + name: 'diagramHeading', }, { - type: "textarea", - label: "Diagram Description", - name: "diagramDescription", + type: 'textarea', + label: 'Diagram Description', + name: 'diagramDescription', }, { - type: "text", - label: "Diagram ID", - name: "diagramID", + type: 'text', + label: 'Diagram ID', + name: 'diagramID', }, ], }, @@ -120,4 +120,4 @@ export default defineSchema({ ], }, ], -}); +}) diff --git a/apps/tina-cloud-starter/components/Spinner/index.tsx b/apps/tina-cloud-starter/components/Spinner/index.tsx index 76f47d740..b725de2a9 100644 --- a/apps/tina-cloud-starter/components/Spinner/index.tsx +++ b/apps/tina-cloud-starter/components/Spinner/index.tsx @@ -11,53 +11,53 @@ See the License for the specific language governing permissions and limitations under the License. */ -import styles from "./spinner.module.css"; +import styles from './spinner.module.css' export const Spinner: React.FC = () => { return ( -
+
- ); -}; + ) +} export const LoadingPage: React.FC<{ text?: string }> = ({ - text = "Wait a bit, Tina is loading data...", + text = 'Wait a bit, Tina is loading data...', }) => (
{text}
-); +) diff --git a/apps/tina-cloud-starter/components/helper-components.tsx b/apps/tina-cloud-starter/components/helper-components.tsx index 4a1be2c10..694c60b1c 100644 --- a/apps/tina-cloud-starter/components/helper-components.tsx +++ b/apps/tina-cloud-starter/components/helper-components.tsx @@ -11,8 +11,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import { css } from "styled-jsx/css"; +import React from 'react' +import { css } from 'styled-jsx/css' import Link from 'next/link' import Head from 'next/head' /** @@ -43,8 +43,8 @@ export const Wrapper = (props: { children: React.ReactNode; data: object }) => { - ); -}; + ) +} export const GlobalStyles = css.global` :root { @@ -62,8 +62,8 @@ export const GlobalStyles = css.global` } html { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, + sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; box-sizing: border-box; font-size: 100%; } @@ -77,7 +77,7 @@ export const GlobalStyles = css.global` margin: 0; background: var(--mint-light); } -`; +` export const PageStyles = css` .container { @@ -125,7 +125,7 @@ export const PageStyles = css` background: var(--gray); padding: 1rem 2rem; } -`; +` export const RawRenderer = ({ data }) => { return ( @@ -169,37 +169,35 @@ export const RawRenderer = ({ data }) => { } `} - ); -}; + ) +} const Nav = () => { // If we're on an admin path, other links should also link to their admin paths - const [prefix, setPrefix] = React.useState(""); + const [prefix, setPrefix] = React.useState('') React.useEffect(() => { - if (window.location.pathname.startsWith("/admin")) { - setPrefix("/admin"); + if (window.location.pathname.startsWith('/admin')) { + setPrefix('/admin') } - }); + }) return (

- Tina Cloud Starter + Tina Cloud Starter

@@ -230,8 +228,8 @@ const Nav = () => { } `}
- ); -}; + ) +} export const SidebarPlaceholder = () => (
@@ -255,48 +253,48 @@ export const SidebarPlaceholder = () => (

-); +) diff --git a/apps/tina-cloud-starter/components/landing-page.tsx b/apps/tina-cloud-starter/components/landing-page.tsx index 2f418c5e6..754c467a2 100644 --- a/apps/tina-cloud-starter/components/landing-page.tsx +++ b/apps/tina-cloud-starter/components/landing-page.tsx @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import Markdown from "react-markdown"; -import type { LandingPage_Doc_Data } from "../.tina/__generated__/types"; +import React from 'react' +import Markdown from 'react-markdown' +import type { LandingPage_Doc_Data } from '../.tina/__generated__/types' export const LandingPage = (props: LandingPage_Doc_Data) => { return ( @@ -21,32 +21,32 @@ export const LandingPage = (props: LandingPage_Doc_Data) => { {props.blocks ? props.blocks.map(function (block, i) { switch (block.__typename) { - case "Message_Data": + case 'Message_Data': return (

{block.messageHeader}

{block.messageBody}
- ); - case "Diagram_Data": + ) + case 'Diagram_Data': return (

{block.diagramHeading}

{block.diagramDescription}
- ); + ) default: - return null; + return null } }) : null} - ); -}; + ) +} diff --git a/apps/tina-cloud-starter/components/post.tsx b/apps/tina-cloud-starter/components/post.tsx index 677cbf0ed..8f5b4f304 100644 --- a/apps/tina-cloud-starter/components/post.tsx +++ b/apps/tina-cloud-starter/components/post.tsx @@ -11,11 +11,11 @@ See the License for the specific language governing permissions and limitations under the License. */ -import ReactMarkdown from "react-markdown"; +import ReactMarkdown from 'react-markdown' import type { Authors_Document, Article_Doc_Data, -} from "../.tina/__generated__/types"; +} from '../.tina/__generated__/types' export const BlogPost = (props: Article_Doc_Data) => { return ( @@ -24,8 +24,8 @@ export const BlogPost = (props: Article_Doc_Data) => { {props._body} - ); -}; + ) +} const AuthorSnippet = (props: { author: Authors_Document }) => { return ( @@ -56,5 +56,5 @@ const AuthorSnippet = (props: { author: Authors_Document }) => { } `}
- ); -}; + ) +} diff --git a/apps/tina-cloud-starter/components/tina-wrapper.tsx b/apps/tina-cloud-starter/components/tina-wrapper.tsx index 039d5f6cb..48e5017ca 100644 --- a/apps/tina-cloud-starter/components/tina-wrapper.tsx +++ b/apps/tina-cloud-starter/components/tina-wrapper.tsx @@ -11,13 +11,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import { TinaCMS } from "tinacms"; -import { TinaCloudAuthWall } from "tina-graphql-gateway"; -import { SidebarPlaceholder } from "./helper-components"; -import { createClient } from "../utils"; -import { useGraphqlForms } from "tina-graphql-gateway"; -import { LoadingPage } from "./Spinner"; +import React from 'react' +import { TinaCMS } from 'tinacms' +import { TinaCloudAuthWall } from 'tina-graphql-gateway' +import { SidebarPlaceholder } from './helper-components' +import { createClient } from '../utils' +import { useGraphqlForms } from 'tina-graphql-gateway' +import { LoadingPage } from './Spinner' /** * This gets loaded dynamically in "pages/_app.js" @@ -33,28 +33,28 @@ const TinaWrapper = (props) => { placeholder: SidebarPlaceholder, }, enabled: true, - }); - }, []); + }) + }, []) /** Disables the TinaCMS "Media Manager" */ - cms.plugins.all("screen").forEach((plugin) => { - if (plugin.name === "Media Manager") { - cms.plugins.remove(plugin); + cms.plugins.all('screen').forEach((plugin) => { + if (plugin.name === 'Media Manager') { + cms.plugins.remove(plugin) } - }); + }) return ( - ); -}; + ) +} const Inner = (props) => { const [payload, isLoading] = useGraphqlForms({ query: (gql) => gql(props.query), variables: props.variables || {}, - }); + }) return ( <> {isLoading ? ( @@ -62,7 +62,7 @@ const Inner = (props) => {
{props.children(props)} @@ -73,7 +73,7 @@ const Inner = (props) => { props.children({ ...props, data: payload }) )} - ); -}; + ) +} -export default TinaWrapper; +export default TinaWrapper diff --git a/apps/tina-cloud-starter/graphql.config.js b/apps/tina-cloud-starter/graphql.config.js index c1d01fa34..3b428d860 100644 --- a/apps/tina-cloud-starter/graphql.config.js +++ b/apps/tina-cloud-starter/graphql.config.js @@ -14,8 +14,8 @@ limitations under the License. module.exports = { projects: { app: { - schema: [".tina/__generated__/schema.gql"], - documents: "pages/**/*.{graphql,js,ts,jsx,tsx}", + schema: ['.tina/__generated__/schema.gql'], + documents: 'pages/**/*.{graphql,js,ts,jsx,tsx}', }, }, -}; +} diff --git a/apps/tina-cloud-starter/pages/404.js b/apps/tina-cloud-starter/pages/404.js index 07f71b2d2..4d841e4b4 100644 --- a/apps/tina-cloud-starter/pages/404.js +++ b/apps/tina-cloud-starter/pages/404.js @@ -11,8 +11,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -import Link from "next/link"; -import { Wrapper } from "../components/helper-components"; +import Link from 'next/link' +import { Wrapper } from '../components/helper-components' export default function FourOhFour() { return ( @@ -20,5 +20,5 @@ export default function FourOhFour() {

OOPS, NOTHING TO SEE HERE...

Go back home - ); + ) } diff --git a/apps/tina-cloud-starter/pages/_app.js b/apps/tina-cloud-starter/pages/_app.js index cb6580822..3e2454a8e 100644 --- a/apps/tina-cloud-starter/pages/_app.js +++ b/apps/tina-cloud-starter/pages/_app.js @@ -11,18 +11,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -import dynamic from "next/dynamic"; - -import {EditProvider, setEditing, useEditState} from '../utils/editState' +import dynamic from 'next/dynamic' +import { EditProvider, setEditing, useEditState } from '../utils/editState' // InnerApp that handles rendering edit mode or not function InnerApp({ Component, pageProps }) { - const {edit} = useEditState() + const { edit } = useEditState() if (edit) { // Dynamically load Tina only when in edit mode so it does not affect production // see https://nextjs.org/docs/advanced-features/dynamic-import#basic-usage - const TinaWrapper = dynamic(() => import("../components/tina-wrapper")); + const TinaWrapper = dynamic(() => import('../components/tina-wrapper')) return ( <> @@ -30,26 +29,27 @@ function InnerApp({ Component, pageProps }) { - ); + ) } return ( <> - ); + ) } - const EditToggle = (isInEditMode) => { - const {edit,setEdit} = useEditState() + const { edit, setEdit } = useEditState() return ( <> - - ); -}; - + ) +} // Our app is wrapped with edit provider function App(props) { - return ( - - ) + return ( + + + + ) } export default App diff --git a/apps/tina-cloud-starter/pages/_document.js b/apps/tina-cloud-starter/pages/_document.js index 621e8297f..45e987dd2 100644 --- a/apps/tina-cloud-starter/pages/_document.js +++ b/apps/tina-cloud-starter/pages/_document.js @@ -11,26 +11,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import Document, { Html, Head, Main, NextScript } from 'next/document'; -import { ServerStyleSheet } from "styled-components"; - +import Document, { Html, Head, Main, NextScript } from 'next/document' +import { ServerStyleSheet } from 'styled-components' const description = - 'A demo application that demos editing a site with Tina and Tina Cloud'; + 'A demo application that demos editing a site with Tina and Tina Cloud' // This is necessary for styled-components to handle SSR properly export default class MyDocument extends Document { static async getInitialProps(ctx) { - const sheet = new ServerStyleSheet(); - const originalRenderPage = ctx.renderPage; + const sheet = new ServerStyleSheet() + const originalRenderPage = ctx.renderPage try { ctx.renderPage = () => originalRenderPage({ enhanceApp: (App) => (props) => sheet.collectStyles(), - }); + }) - const initialProps = await Document.getInitialProps(ctx); + const initialProps = await Document.getInitialProps(ctx) return { ...initialProps, styles: ( @@ -39,9 +38,9 @@ export default class MyDocument extends Document { {sheet.getStyleElement()} ), - }; + } } finally { - sheet.seal(); + sheet.seal() } } render() { @@ -61,6 +60,6 @@ export default class MyDocument extends Document { - ); + ) } } diff --git a/apps/tina-cloud-starter/pages/index.tsx b/apps/tina-cloud-starter/pages/index.tsx index 76e59c5c3..e9572ea62 100644 --- a/apps/tina-cloud-starter/pages/index.tsx +++ b/apps/tina-cloud-starter/pages/index.tsx @@ -11,13 +11,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { LandingPage } from "../components/landing-page"; -import { Wrapper } from "../components/helper-components"; -import type { MarketingPages_Document } from "../.tina/__generated__/types"; -import { createLocalClient, AsyncReturnType } from "../utils"; +import { LandingPage } from '../components/landing-page' +import { Wrapper } from '../components/helper-components' +import type { MarketingPages_Document } from '../.tina/__generated__/types' +import { createLocalClient, AsyncReturnType } from '../utils' export default function HomePage( - props: AsyncReturnType["props"] + props: AsyncReturnType['props'] ) { return ( <> @@ -25,7 +25,7 @@ export default function HomePage( - ); + ) } export const query = `#graphql @@ -52,19 +52,19 @@ export const query = `#graphql } } } -`; +` export const getStaticProps = async () => { - const client = createLocalClient(); + const client = createLocalClient() return { props: { data: await client.request<{ - getMarketingPagesDocument: MarketingPages_Document; + getMarketingPagesDocument: MarketingPages_Document }>(query, { variables: {}, }), query: query, variables: {}, }, - }; -}; + } +} diff --git a/apps/tina-cloud-starter/pages/posts/[filename].tsx b/apps/tina-cloud-starter/pages/posts/[filename].tsx index c584a58a5..43bbd2c25 100644 --- a/apps/tina-cloud-starter/pages/posts/[filename].tsx +++ b/apps/tina-cloud-starter/pages/posts/[filename].tsx @@ -11,14 +11,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { BlogPost } from "../../components/post"; -import type { Posts_Document } from "../../.tina/__generated__/types"; -import { createLocalClient, AsyncReturnType } from "../../utils"; -import { Wrapper } from "../../components/helper-components"; +import { BlogPost } from '../../components/post' +import type { Posts_Document } from '../../.tina/__generated__/types' +import { createLocalClient, AsyncReturnType } from '../../utils' +import { Wrapper } from '../../components/helper-components' // Use the props returned by get static props export default function BlogPostPage( - props: AsyncReturnType["props"] + props: AsyncReturnType['props'] ) { return ( <> @@ -26,7 +26,7 @@ export default function BlogPostPage( - ); + ) } export const query = `#graphql @@ -49,12 +49,12 @@ export const query = `#graphql } } } -`; +` -const client = createLocalClient(); +const client = createLocalClient() export const getStaticProps = async ({ params }) => { - const variables = { relativePath: `${params.filename}.md` }; + const variables = { relativePath: `${params.filename}.md` } return { props: { data: await client.request<{ getPostsDocument: Posts_Document }>(query, { @@ -63,8 +63,8 @@ export const getStaticProps = async ({ params }) => { variables, query, }, - }; -}; + } +} /** * To build the blog post pages we just iterate through the list of @@ -75,7 +75,7 @@ export const getStaticProps = async ({ params }) => { */ export const getStaticPaths = async () => { const postsListData = await client.request<{ - getPostsList: Posts_Document[]; + getPostsList: Posts_Document[] }>( (gql) => gql` { @@ -87,11 +87,11 @@ export const getStaticPaths = async () => { } `, { variables: {} } - ); + ) return { paths: postsListData.getPostsList.map((post) => ({ params: { filename: post.sys.filename }, })), fallback: false, - }; -}; + } +} diff --git a/apps/tina-cloud-starter/utils/editState.tsx b/apps/tina-cloud-starter/utils/editState.tsx index c1b1e9fc1..194fe9d31 100644 --- a/apps/tina-cloud-starter/utils/editState.tsx +++ b/apps/tina-cloud-starter/utils/editState.tsx @@ -13,31 +13,31 @@ limitations under the License. // This file handles whether or not a user is in edit mode -import React, { useContext, useState } from 'react'; +import React, { useContext, useState } from 'react' const LOCALSTORAGEKEY = 'tina.isEditing' // need this to see if our site is being rendered on the server const isSSR = typeof window === 'undefined' -export const isEditing = (): boolean =>{ - if(!isSSR){ - const isEdit = window.localStorage.getItem(LOCALSTORAGEKEY) - return isEdit && isEdit === 'true' - } - // assume not editing if SSR - return false +export const isEditing = (): boolean => { + if (!isSSR) { + const isEdit = window.localStorage.getItem(LOCALSTORAGEKEY) + return isEdit && isEdit === 'true' + } + // assume not editing if SSR + return false } export const setEditing = (isEditing: boolean) => { - if(!isSSR){ - window.localStorage.setItem(LOCALSTORAGEKEY, isEditing? 'true': 'false') - } + if (!isSSR) { + window.localStorage.setItem(LOCALSTORAGEKEY, isEditing ? 'true' : 'false') + } } const EditContext = React.createContext({ edit: isEditing(), setEdit: (editing: boolean) => {}, -}); +}) /* We will wrap our app in this so we will always be able to get the editmode state with `useEditMode` @@ -46,8 +46,8 @@ export const EditProvider: React.FC = ({ children }) => { const [edit, setEditState] = useState( // grabs the correct initial edit state from localstorage isEditing() - ); - const setEdit = (edit: boolean)=>{ + ) + const setEdit = (edit: boolean) => { // set React state and localstorage setEditState(edit) setEditing(edit) @@ -56,7 +56,7 @@ export const EditProvider: React.FC = ({ children }) => { {children} - ); -}; + ) +} -export const useEditState = () => useContext(EditContext); \ No newline at end of file +export const useEditState = () => useContext(EditContext) diff --git a/apps/tina-cloud-starter/utils/index.ts b/apps/tina-cloud-starter/utils/index.ts index 52ad1ffb0..2123a1bd7 100644 --- a/apps/tina-cloud-starter/utils/index.ts +++ b/apps/tina-cloud-starter/utils/index.ts @@ -11,38 +11,38 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { Client, LocalClient } from "tina-graphql-gateway"; +import { Client, LocalClient } from 'tina-graphql-gateway' export const createClient = () => { - return process.env.NEXT_PUBLIC_USE_LOCAL_CLIENT === "1" + return process.env.NEXT_PUBLIC_USE_LOCAL_CLIENT === '1' ? createLocalClient() - : createCloudClient(); -}; + : createCloudClient() +} export const createCloudClient = () => { - const organization = process.env.NEXT_PUBLIC_ORGANIZATION_NAME; - const clientId = process.env.NEXT_PUBLIC_TINA_CLIENT_ID; + const organization = process.env.NEXT_PUBLIC_ORGANIZATION_NAME + const clientId = process.env.NEXT_PUBLIC_TINA_CLIENT_ID - const missingEnv: string[] = []; + const missingEnv: string[] = [] if (!organization) { - missingEnv.push("NEXT_PUBLIC_ORGANIZATION_NAME"); + missingEnv.push('NEXT_PUBLIC_ORGANIZATION_NAME') } if (!clientId) { - missingEnv.push("NEXT_PUBLIC_TINA_CLIENT_ID"); + missingEnv.push('NEXT_PUBLIC_TINA_CLIENT_ID') } if (missingEnv.length) { throw new Error(`The following environment variables are required when using the Tina Cloud Client: - ${missingEnv.join(", ")}`); + ${missingEnv.join(', ')}`) } return new Client({ organizationId: organization, clientId, - branch: "main", - tokenStorage: "LOCAL_STORAGE", - }); -}; + branch: 'main', + tokenStorage: 'LOCAL_STORAGE', + }) +} /** * This is a GraphQL client that only talks to your local filesystem server, @@ -52,8 +52,8 @@ export const createCloudClient = () => { * option to "switch on" the non-local client via environment variables. */ export const createLocalClient = () => { - return new LocalClient(); -}; + return new LocalClient() +} /** * @@ -66,37 +66,36 @@ export const variablesFromPath = ( path: string, fallback: { relativePath: string; collection: string } ) => { - const arr = path.split("/"); - const collection = arr[0]; + const arr = path.split('/') + const collection = arr[0] // FIXME: assumes `.md` as extension, should work with other extensions - const relativePath = `${arr.slice(1).join("/")}.md`; + const relativePath = `${arr.slice(1).join('/')}.md` if (collection && relativePath) { - return { collection, relativePath }; + return { collection, relativePath } } else { - return fallback; + return fallback } -}; +} // FIXME: infer args from useForm export const redirectToNewDocument = ( args: { collection: { - slug: string; - }; - relativePath: string; - breadcrumbs: string[]; - path: string; + slug: string + } + relativePath: string + breadcrumbs: string[] + path: string }, prefix: string ) => { const redirect = `${window.location.origin}${prefix}/${ args.collection.slug - }/${args.breadcrumbs.join("/")}`; + }/${args.breadcrumbs.join('/')}` - window.location.assign(redirect); -}; + window.location.assign(redirect) +} -export type AsyncReturnType< - T extends (...args: any) => Promise -> = T extends (...args: any) => Promise ? R : any; +export type AsyncReturnType Promise> = + T extends (...args: any) => Promise ? R : any diff --git a/dangerfile.ts b/dangerfile.ts index f0d83d3e6..08b155bdb 100644 --- a/dangerfile.ts +++ b/dangerfile.ts @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { markdown, danger, warn, fail, message } from "danger"; -import * as fs from "fs"; -import * as path from "path"; +import { markdown, danger, warn, fail, message } from 'danger' +import * as fs from 'fs' +import * as path from 'path' const LICENSE_HEADER: string[] = [ `Copyright 2021 Forestry.io Holdings, Inc.`, @@ -26,16 +26,16 @@ const LICENSE_HEADER: string[] = [ `WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.`, `See the License for the specific language governing permissions and`, `limitations under the License.`, -]; +] const licenseIgnoreList = [ - ".pnp.js", - "apps/demo/.tina/__generated__/types.ts", - "apps/test/.tina/__generated__/types.ts", - "apps/tina-cloud-starter/.tina/__generated__/types.ts", -]; + '.pnp.js', + 'apps/demo/.tina/__generated__/types.ts', + 'apps/test/.tina/__generated__/types.ts', + 'apps/tina-cloud-starter/.tina/__generated__/types.ts', +] -runChecksOnPullRequest(); +runChecksOnPullRequest() /** * An object representing a package in tinacms/tinacms. @@ -44,22 +44,22 @@ interface TinaPackage { /** * The path to the package in the repo. */ - path: string; + path: string /** * The contents of it's `package.json`. */ packageJson: { - name: string; + name: string scripts: { - dev: string; - build: string; - watch: string; - }; - license: string; - dependencies?: { [key: string]: string }; - devDependencies?: { [key: string]: string }; - }; + dev: string + build: string + watch: string + } + license: string + dependencies?: { [key: string]: string } + devDependencies?: { [key: string]: string } + } } /** @@ -70,19 +70,19 @@ function runChecksOnPullRequest() { ...danger.git.created_files, ...danger.git.deleted_files, ...danger.git.modified_files, - ]; + ] // Check for License Headers - allFiles.filter(fileNeedsLicense).forEach(checkFileForLicenseHeader); + allFiles.filter(fileNeedsLicense).forEach(checkFileForLicenseHeader) } /** * */ function checkForLicense({ packageJson }: TinaPackage) { - const license = "Apache-2.0"; + const license = 'Apache-2.0' if (packageJson.license !== license) { - fail(`${packageJson.name} package.json is missing the license: ${license}`); + fail(`${packageJson.name} package.json is missing the license: ${license}`) } } @@ -90,7 +90,7 @@ function checkForLicense({ packageJson }: TinaPackage) { * */ function fileNeedsLicense(filepath: string) { - return new RegExp(/\.(js|tsx?)$/).test(filepath); + return new RegExp(/\.(js|tsx?)$/).test(filepath) } /** @@ -98,14 +98,14 @@ function fileNeedsLicense(filepath: string) { */ function checkFileForLicenseHeader(filepath: string) { try { - if (licenseIgnoreList.includes(filepath)) return; + if (licenseIgnoreList.includes(filepath)) return const content = fs.readFileSync(path.resolve(`./${filepath}`), { - encoding: "utf8", - }); + encoding: 'utf8', + }) if (isMissingHeader(content)) { - fail(`${filepath} is missing the license header`); + fail(`${filepath} is missing the license header`) } } catch { // The file was deleted. That's okay. @@ -115,7 +115,7 @@ function checkFileForLicenseHeader(filepath: string) { function isMissingHeader(content: string) { for (const line of LICENSE_HEADER) { if (!content.includes(line)) { - return true; + return true } } } diff --git a/graphql.config.js b/graphql.config.js index d4ea1a0bc..ca03681fa 100644 --- a/graphql.config.js +++ b/graphql.config.js @@ -14,8 +14,8 @@ limitations under the License. module.exports = { projects: { demo: { - schema: ["./apps/demo/.tina/__generated__/schema.gql"], - documents: "./apps/demo/**/*.{graphql,js,ts,jsx,tsx}", + schema: ['./apps/demo/.tina/__generated__/schema.gql'], + documents: './apps/demo/**/*.{graphql,js,ts,jsx,tsx}', }, }, -}; +} diff --git a/package.json b/package.json index 71b4a8830..fc3e07bf2 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,9 @@ "ci:version-check": "yarn version check", "ci:build": "yarn workspaces foreach --exclude=sc --exclude=tina-cloud-starter --exclude=test --exclude=demo -pt run build", "ci:test": "yarn workspaces foreach --exclude=sc --exclude=tina-cloud-starter --exclude=test --exclude=demo --verbose run test", - "ci:publish": "yarn workspaces foreach --exclude=sc --exclude=tina-cloud-starter --exclude=test --exclude=demo --verbose npm publish --tolerate-republish --access public" + "ci:publish": "yarn workspaces foreach --exclude=sc --exclude=tina-cloud-starter --exclude=test --exclude=demo --verbose npm publish --tolerate-republish --access public", + "format": "prettier --write .", + "postinstall": "husky install" }, "publishConfig": { "registry": "https://registry.npmjs.org" @@ -29,7 +31,6 @@ "@yarnpkg/pnpify": "^2.0.0-rc.20", "danger": "^10.6.0", "eslint": "^6.8.0", - "prettier": "^2.0.4", "typescript": "^3.8.3", "workspace": "^0.0.1-preview.1" }, @@ -40,5 +41,10 @@ "rmark-mdx": { "unplugged": true } + }, + "devDependencies": { + "husky": "^6.0.0", + "prettier": "^2.3.0", + "pretty-quick": "^3.1.0" } } diff --git a/packages/tina-graphql-gateway-cli/create.jest.config.js b/packages/tina-graphql-gateway-cli/create.jest.config.js index e1e41e6cf..fc5bc55fc 100644 --- a/packages/tina-graphql-gateway-cli/create.jest.config.js +++ b/packages/tina-graphql-gateway-cli/create.jest.config.js @@ -15,17 +15,17 @@ module.exports = function createJestConfig(pack) { return { verbose: true, transform: { - ".(ts|tsx)": "ts-jest", + '.(ts|tsx)': 'ts-jest', }, - testRegex: "(\\.spec)\\.(ts|tsx|js)$", - modulePaths: ["/src/", "/node_modules/"], - moduleFileExtensions: ["ts", "tsx", "js"], + testRegex: '(\\.spec)\\.(ts|tsx|js)$', + modulePaths: ['/src/', '/node_modules/'], + moduleFileExtensions: ['ts', 'tsx', 'js'], displayName: pack.name, name: pack.name, moduleNameMapper: { - "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": - "/../../__mocks__/fileMock.js", - "\\.(css|scss)$": "identity-obj-proxy", + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/../../__mocks__/fileMock.js', + '\\.(css|scss)$': 'identity-obj-proxy', }, - }; -}; + } +} diff --git a/packages/tina-graphql-gateway-cli/jest.config.js b/packages/tina-graphql-gateway-cli/jest.config.js index 6dd541cee..5e9dbe470 100644 --- a/packages/tina-graphql-gateway-cli/jest.config.js +++ b/packages/tina-graphql-gateway-cli/jest.config.js @@ -11,7 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -const createJestConfig = require("./create.jest.config.js"); -const pack = require("./package"); +const createJestConfig = require('./create.jest.config.js') +const pack = require('./package') -module.exports = createJestConfig(pack); +module.exports = createJestConfig(pack) diff --git a/packages/tina-graphql-gateway-cli/package.json b/packages/tina-graphql-gateway-cli/package.json index ddb1a06ec..cef35575d 100644 --- a/packages/tina-graphql-gateway-cli/package.json +++ b/packages/tina-graphql-gateway-cli/package.json @@ -1,6 +1,6 @@ { "name": "tina-graphql-gateway-cli", - "version": "0.2.42", + "version": "0.2.43", "main": "dist/index.js", "files": [ "dist/*", diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/index.ts index 0849cdab8..05b4240e1 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/index.ts @@ -11,102 +11,102 @@ See the License for the specific language governing permissions and limitations under the License. */ -import fs from "fs-extra"; -import path from "path"; -import { validator } from "./schema/validator"; -import _ from "lodash"; -import type { Ajv } from "ajv"; -import get from "lodash.get"; -import * as jsyaml from "js-yaml"; -import { ForestryFMTSchema } from "./schema/fmt"; -import { ForestrySettingsSchema } from "./schema/settings"; -import { neutralText, successText, dangerText } from "../../utils/theme"; +import fs from 'fs-extra' +import path from 'path' +import { validator } from './schema/validator' +import _ from 'lodash' +import type { Ajv } from 'ajv' +import get from 'lodash.get' +import * as jsyaml from 'js-yaml' +import { ForestryFMTSchema } from './schema/fmt' +import { ForestrySettingsSchema } from './schema/settings' +import { neutralText, successText, dangerText } from '../../utils/theme' export const audit = async (_ctx, _next, { fix }: { fix: boolean }) => { const output = await runValidation({ - directory: ".tina", + directory: '.tina', ajv: validator({ fix }), fix, - }); + }) if (fix) { - writeToDisk(output); + writeToDisk(output) } -}; +} export const migrate = async (_ctx, _next, { dryRun }: { dryRun: boolean }) => { const output = await runValidation({ - directory: ".forestry", + directory: '.forestry', ajv: validator({ fix: !dryRun }), fix: !dryRun, - }); + }) if (!dryRun) { - writeToDisk(output); + writeToDisk(output) } -}; +} export const dump = async (_ctx, _next, { folder }) => { - const directory = path.join(process.cwd(), folder); + const directory = path.join(process.cwd(), folder) if (!(await fs.existsSync(directory))) { - await fs.mkdirSync(directory); + await fs.mkdirSync(directory) } await fs.writeFileSync( - directory + "/settings_schema.json", + directory + '/settings_schema.json', JSON.stringify(ForestrySettingsSchema, null, 2) - ); + ) await fs.writeFileSync( - directory + "/fmt_schema.json", + directory + '/fmt_schema.json', JSON.stringify(ForestryFMTSchema, null, 2) - ); -}; + ) +} const writeToDisk = async (output) => { output.map(async ({ path, result }) => { if (result.success) { await fs.outputFile( - path.replace(".forestry", ".tina"), + path.replace('.forestry', '.tina'), jsyaml.dump(result.fileJSON) - ); + ) } - }); -}; + }) +} export const runValidation = async ({ directory, ajv, fix, }: { - directory: string; - ajv: Ajv; - fix: boolean; + directory: string + ajv: Ajv + fix: boolean }) => { - const output = []; - const configDirPath = path.resolve(process.cwd(), directory); + const output = [] + const configDirPath = path.resolve(process.cwd(), directory) - const settingsFullPath = path.join(configDirPath, "settings.yml"); + const settingsFullPath = path.join(configDirPath, 'settings.yml') const settingsJSON = jsyaml.safeLoad( await fs.readFileSync(settingsFullPath).toString() - ); + ) output.push({ path: settingsFullPath, result: await validateFile({ - filePath: "settings.yml", + filePath: 'settings.yml', payload: settingsJSON, schema: ForestrySettingsSchema, ajv, fix, }), - }); + }) - const templateDirPath = path.join(configDirPath, "front_matter", "templates"); - const templateList = await fs.readdirSync(path.join(templateDirPath)); + const templateDirPath = path.join(configDirPath, 'front_matter', 'templates') + const templateList = await fs.readdirSync(path.join(templateDirPath)) await Promise.all( templateList.map(async (templatePath) => { - const templateFullpath = path.join(templateDirPath, templatePath); + const templateFullpath = path.join(templateDirPath, templatePath) const templateJSON = jsyaml.safeLoad( await fs.readFileSync(templateFullpath).toString() - ); + ) output.push({ path: templateFullpath, @@ -117,113 +117,113 @@ export const runValidation = async ({ ajv, fix, }), - }); + }) }) - ); + ) - return output; -}; + return output +} export const validateFile = async ({ filePath, payload, schema, ajv, fix }) => { - let fileJSON = payload; + let fileJSON = payload // if (fix) { if (fix) { - fileJSON = moveRequiredKeys(fileJSON); - fileJSON = pruneEmpty(fileJSON); + fileJSON = moveRequiredKeys(fileJSON) + fileJSON = pruneEmpty(fileJSON) } - var validate = ajv.compile(schema); - var valid = validate(fileJSON); + var validate = ajv.compile(schema) + var valid = validate(fileJSON) if (!valid) { - console.log(`${filePath} is ${dangerText("invalid")}`); - const errorKeys = printErrors(validate.errors, fileJSON); - console.log("\n"); - return { success: false, fileJSON, errors: errorKeys }; + console.log(`${filePath} is ${dangerText('invalid')}`) + const errorKeys = printErrors(validate.errors, fileJSON) + console.log('\n') + return { success: false, fileJSON, errors: errorKeys } } else { - return { success: true, fileJSON, errors: [] }; + return { success: true, fileJSON, errors: [] } } -}; +} const printErrors = (errors, object) => { return errors .map((error) => { - const handler = keywordError[error.keyword]; + const handler = keywordError[error.keyword] if (!handler) { - throw `Unable to find handler for ${error.keyword}`; + throw `Unable to find handler for ${error.keyword}` } else { - return handler(error, object); + return handler(error, object) } }) - .filter(Boolean); -}; + .filter(Boolean) +} const keywordError = { required: (error, object) => { - console.log(`${propertyName(error, object)} ${error.message}`); + console.log(`${propertyName(error, object)} ${error.message}`) - return error; + return error }, minItems: (error) => { console.log( `${propertyName(error)} ${error.message} but got ${dangerText( displayType(error) )}` - ); + ) - return error; + return error }, exclusiveMinimum: (error, object) => { - console.log(`${propertyName(error, object)} ${error.message}`); + console.log(`${propertyName(error, object)} ${error.message}`) - return error; + return error }, minimum: (error, object) => { console.log( `${propertyName(error)} ${error.message} but got ${dangerText( displayType(error) )}` - ); + ) - return error; + return error }, maximum: (error, object) => { console.log( `${propertyName(error)} ${error.message} but got ${dangerText( displayType(error) )}` - ); + ) - return error; + return error }, const: (error) => { - if (error.schema === "now") { + if (error.schema === 'now') { // Ignoring for this case since it's handled better by anyOf } else { - console.log(`Unanticipated error - ${error.keyword}`); - console.log(error); + console.log(`Unanticipated error - ${error.keyword}`) + console.log(error) } - return false; + return false }, format: (error) => { - if (error.schema === "date-time") { + if (error.schema === 'date-time') { // Ignoring for this case since it's handled better by anyOf } else { - console.log(`Unanticipated error - ${error.keyword}`); + console.log(`Unanticipated error - ${error.keyword}`) } - return false; + return false }, anyOf: (error, object) => { console.log(`${propertyName(error, object)} should be one of: ${anyOfPossibleTypes(error)} But got ${dangerText(displayType(error))} -`); - return error; +`) + return error }, oneOf: (error) => { - console.log(`Unanticipated error - ${error.keyword}`); - console.log(error); - return false; + console.log(`Unanticipated error - ${error.keyword}`) + console.log(error) + return false }, datetimeFormat: (error, object) => { console.log( @@ -233,20 +233,20 @@ const keywordError = { )} should be either "now" or a valid datetime format (${dangerText( error.data )})` - ); - return error; + ) + return error }, minLength: (error, object) => { console.log( `${propertyName(error, object)} should not be shorter than ${dangerText( error.params.limit )} character` - ); - return error; + ) + return error }, removeIfFails: () => { // Do nothing - return false; + return false }, additionalProperties: (error, object) => { console.log( @@ -256,156 +256,156 @@ const keywordError = { )} contains an additional property ${dangerText( error.params.additionalProperty )}` - ); - return error; + ) + return error }, multipleOf: (error, object) => { console.log( `${propertyName(error, object)} ${error.message} but got ${dangerText( displayType(error) )}` - ); - return error; + ) + return error }, enum: (error, object) => { console.log( `${propertyName(error, object)} ${error.message} but got ${dangerText( displayType(error) )} - Allowed values: ${successText(error.schema.join(", "))} + Allowed values: ${successText(error.schema.join(', '))} ` - ); - return error; + ) + return error }, type: (error, object) => { console.log( `${propertyName(error, object)} ${error.message.replace( - "should be", - "should be of type" + 'should be', + 'should be of type' )} but got ${dangerText(displayType(error))}` - ); - return error; + ) + return error }, if: () => { // an error stating should match "then" schema // indicates that the conditional schema isn't matched - // we should get a more specific error elsewhere so ignore these // unless debugging. - return false; + return false }, -}; +} const displayType = (error) => { if (error.data === null) { - return "null"; + return 'null' } else { - let value = error.data; - if (typeof error.data === "string" && error.data.length === 0) { - value = `""`; + let value = error.data + if (typeof error.data === 'string' && error.data.length === 0) { + value = `""` } if (Array.isArray(error.data)) { - return `an array`; + return `an array` } - return `${typeof error.data} (${value})`; + return `${typeof error.data} (${value})` } -}; +} const propertyName = (error, object = null) => { if (object) { const lastFieldIndex = error.dataPath - .split(".") + .split('.') .reverse() - .findIndex((item) => /fields\[[0-9]+\]/.test(item)); - const steps = error.dataPath.split(".").length; + .findIndex((item) => /fields\[[0-9]+\]/.test(item)) + const steps = error.dataPath.split('.').length const dataPath = error.dataPath - .split(".") + .split('.') .reverse() .slice(lastFieldIndex, steps - 1) .reverse() - .join("."); + .join('.') - const property = error.dataPath.replace("." + dataPath, ""); + const property = error.dataPath.replace('.' + dataPath, '') - const field = get(object, dataPath); + const field = get(object, dataPath) if (field) { return ` Field with name ${successText(field.name)} of type ${neutralText( fieldTypeLabel(field) )} has an invalid property ${dangerText(property)} at ${dataPath} - `; + ` } else { - return `${neutralText(error.dataPath)}`; + return `${neutralText(error.dataPath)}` } } - return neutralText(error.dataPath); -}; + return neutralText(error.dataPath) +} const fieldTypeLabel = (field) => { - if (field.type === "select" || field.type === "list") { + if (field.type === 'select' || field.type === 'list') { if (!field.config) { - return `${field.type} (text)`; + return `${field.type} (text)` } - return `${field.type} (${field.config?.source?.type})`; + return `${field.type} (${field.config?.source?.type})` } - return field.type; -}; + return field.type +} const anyOfPossibleTypes = (error) => { return error.schema .map((item) => { if (item.const) { - return ` - A value equal to ${successText(item.const)}`; + return ` - A value equal to ${successText(item.const)}` } if (item.format) { return ` - A value which adheres to the ${ jsonSchemaFormats[item.format] - } format`; + } format` } - if (item.multipleOf || item.type === "null") { + if (item.multipleOf || item.type === 'null') { // Ignore, we're handling this better elsewhere - return false; + return false } - console.log(`Unrecognized oneOf schema key`, item); + console.log(`Unrecognized oneOf schema key`, item) }) .filter(Boolean) - .join("\n"); -}; + .join('\n') +} const jsonSchemaFormats = { - "date-time": "datetime", -}; + 'date-time': 'datetime', +} // Some fields have the "required" key in the wrong spot. Put them in the config const moveRequiredKeys = (json) => { - const string = JSON.stringify(json); + const string = JSON.stringify(json) return JSON.parse(string, (key, value) => { - if (key === "fields") { - const itemWithRequired = value.find((item) => item.required); + if (key === 'fields') { + const itemWithRequired = value.find((item) => item.required) if (itemWithRequired) { itemWithRequired.config = { required: itemWithRequired.required, ...itemWithRequired.config, - }; - delete itemWithRequired.required; + } + delete itemWithRequired.required } } - return value; - }); -}; + return value + }) +} function pruneEmpty(obj) { return (function prune(current) { _.forOwn(current, function (value, key) { // Empty values in defaults might be valid // let the schema decide - if (key === "default") { - return; + if (key === 'default') { + return } if ( @@ -415,11 +415,11 @@ function pruneEmpty(obj) { (_.isString(value) && _.isEmpty(value)) || (_.isObject(value) && _.isEmpty(prune(value))) ) { - delete current[key]; + delete current[key] } - }); - if (_.isArray(current)) _.pull(current, undefined); + }) + if (_.isArray(current)) _.pull(current, undefined) - return current; - })(_.cloneDeep(obj)); + return current + })(_.cloneDeep(obj)) } diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/allFields.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/allFields.ts index 6231bc652..9e005757c 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/allFields.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/allFields.ts @@ -12,32 +12,32 @@ limitations under the License. */ export const AllFields = { - $id: "#allFields", - type: "array", - title: "Field List", - description: "List of fields for your FMT", + $id: '#allFields', + type: 'array', + title: 'Field List', + description: 'List of fields for your FMT', items: { - type: "object", - required: ["type"], + type: 'object', + required: ['type'], properties: { type: { - type: "string", + type: 'string', enum: [ - "text", - "textarea", - "include", - "datetime", - "select", - "file", - "blocks", - "color", - "boolean", - "tag_list", - "number", - "image_gallery", - "list", - "field_group", - "field_group_list", + 'text', + 'textarea', + 'include', + 'datetime', + 'select', + 'file', + 'blocks', + 'color', + 'boolean', + 'tag_list', + 'number', + 'image_gallery', + 'list', + 'field_group', + 'field_group_list', ], }, }, @@ -45,153 +45,153 @@ export const AllFields = { { if: { properties: { - type: { const: "text" }, + type: { const: 'text' }, }, }, then: { - $ref: "#/definitions/textField", + $ref: '#/definitions/textField', }, }, { if: { properties: { - type: { const: "blocks" }, + type: { const: 'blocks' }, }, }, then: { - $ref: "#/definitions/blocksField", + $ref: '#/definitions/blocksField', }, }, { if: { properties: { - type: { const: "number" }, + type: { const: 'number' }, }, }, then: { - $ref: "#/definitions/numberField", + $ref: '#/definitions/numberField', }, }, { if: { properties: { - type: { const: "include" }, + type: { const: 'include' }, }, }, then: { - $ref: "#/definitions/includeField", + $ref: '#/definitions/includeField', }, }, { if: { properties: { - type: { const: "color" }, + type: { const: 'color' }, }, }, then: { - $ref: "#/definitions/colorField", + $ref: '#/definitions/colorField', }, }, { if: { properties: { - type: { const: "tag_list" }, + type: { const: 'tag_list' }, }, }, then: { - $ref: "#/definitions/tagField", + $ref: '#/definitions/tagField', }, }, { if: { properties: { - type: { const: "datetime" }, + type: { const: 'datetime' }, }, }, then: { - $ref: "#/definitions/dateField", + $ref: '#/definitions/dateField', }, }, { if: { properties: { - type: { const: "textarea" }, + type: { const: 'textarea' }, }, }, then: { - $ref: "#/definitions/textAreaField", + $ref: '#/definitions/textAreaField', }, }, { if: { properties: { - type: { const: "select" }, + type: { const: 'select' }, }, }, then: { - $ref: "#/definitions/selectField", + $ref: '#/definitions/selectField', }, }, { if: { properties: { - type: { const: "file" }, + type: { const: 'file' }, }, }, then: { - $ref: "#/definitions/imageField", + $ref: '#/definitions/imageField', }, }, { if: { properties: { - type: { const: "boolean" }, + type: { const: 'boolean' }, }, }, then: { - $ref: "#/definitions/booleanField", + $ref: '#/definitions/booleanField', }, }, { if: { properties: { - type: { const: "image_gallery" }, + type: { const: 'image_gallery' }, }, }, then: { - $ref: "#/definitions/galleryField", + $ref: '#/definitions/galleryField', }, }, { if: { properties: { - type: { const: "field_group" }, + type: { const: 'field_group' }, }, }, then: { - $ref: "#/definitions/fieldGroupField", + $ref: '#/definitions/fieldGroupField', }, }, { if: { properties: { - type: { const: "field_group_list" }, + type: { const: 'field_group_list' }, }, }, then: { - $ref: "#/definitions/fieldGroupListField", + $ref: '#/definitions/fieldGroupListField', }, }, { if: { properties: { - type: { const: "list" }, + type: { const: 'list' }, }, }, then: { - $ref: "#/definitions/listField", + $ref: '#/definitions/listField', }, }, ], }, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/blocks.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/blocks.test.ts index 0272c8af1..7cc1bd3d5 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/blocks.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/blocks.test.ts @@ -11,77 +11,77 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' const base = { - name: "blocks", - type: "blocks", - label: "Blocks", -}; + name: 'blocks', + type: 'blocks', + label: 'Blocks', +} setupTests({ - "config with null properties": { + 'config with null properties': { initial: { ...base, - template_types: ["sidecar"], + template_types: ['sidecar'], config: { min: null, }, }, errors: [ { - dataPath: ".config.min", - keyword: "type", + dataPath: '.config.min', + keyword: 'type', }, ], fixed: { ...base, - template_types: ["sidecar"], + template_types: ['sidecar'], }, }, - "config with an incorrect type": { + 'config with an incorrect type': { initial: { ...base, - template_types: ["sidecar"], + template_types: ['sidecar'], config: { - min: "2", + min: '2', }, }, errors: [ { - dataPath: ".config.min", - keyword: "type", + dataPath: '.config.min', + keyword: 'type', }, ], fixed: { ...base, - template_types: ["sidecar"], + template_types: ['sidecar'], config: { min: 2, }, }, }, - "missing template type": { + 'missing template type': { initial: { ...base, }, errors: [ { - dataPath: "", - keyword: "required", + dataPath: '', + keyword: 'required', }, ], }, - "empty template type": { + 'empty template type': { initial: { ...base, template_types: [], }, errors: [ { - dataPath: ".template_types", - keyword: "minItems", + dataPath: '.template_types', + keyword: 'minItems', }, ], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/index.ts index 74df9f143..7447b8708 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/blocks/index.ts @@ -11,37 +11,37 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const BlocksField = { - $id: "#blocksField", - label: "Blocks", + $id: '#blocksField', + label: 'Blocks', description: - "A list of unlike Field Groups. Great for allowing a series of different page sections be assembled in a custom way.", - type: "object", + 'A list of unlike Field Groups. Great for allowing a series of different page sections be assembled in a custom way.', + type: 'object', properties: { ...base, type: { - const: "blocks", + const: 'blocks', }, template_types: { - type: "array", + type: 'array', minItems: 1, items: { - type: "string", + type: 'string', }, }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - min: { type: "number" }, - max: { type: "number" }, + required: { type: 'boolean' }, + min: { type: 'number' }, + max: { type: 'number' }, }, minProperties: 1, additionalProperties: false, }, }, additionalProperties: false, - required: [...baseRequired, "template_types"], -}; + required: [...baseRequired, 'template_types'], +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/boolean.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/boolean.test.ts index c44cd2056..a27905a80 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/boolean.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/boolean.test.ts @@ -11,19 +11,19 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with a missing label": { + 'with a missing label': { initial: { - name: "boolean", - type: "boolean", + name: 'boolean', + type: 'boolean', }, errors: [ { - dataPath: "", - keyword: "required", + dataPath: '', + keyword: 'required', }, ], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/index.ts index 91518e5bf..a034becd9 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/boolean/index.ts @@ -11,20 +11,20 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const BooleanField = { - $id: "#booleanField", - label: "Toggle Field", + $id: '#booleanField', + label: 'Toggle Field', description: - "A true or false toggle. Good for components that can be turned on/off on a by-page basis such as page sections. ", - type: "object", + 'A true or false toggle. Good for components that can be turned on/off on a by-page basis such as page sections. ', + type: 'object', properties: { ...base, type: { - const: "boolean", + const: 'boolean', }, }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/color.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/color.test.ts index 86dacebb0..f519e8153 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/color.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/color.test.ts @@ -11,57 +11,57 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with a missing label": { + 'with a missing label': { initial: { - name: "color", - type: "color", + name: 'color', + type: 'color', config: { - color_format: "Hex", + color_format: 'Hex', }, }, - errors: [{ dataPath: "", keyword: "required" }], + errors: [{ dataPath: '', keyword: 'required' }], }, - "with a missing config": { + 'with a missing config': { initial: { - name: "color", - label: "My Color", - type: "color", + name: 'color', + label: 'My Color', + type: 'color', }, - errors: [{ dataPath: "", keyword: "required" }], + errors: [{ dataPath: '', keyword: 'required' }], }, - "without a color_format": { + 'without a color_format': { initial: { - name: "color", - label: "My Color", - type: "color", + name: 'color', + label: 'My Color', + type: 'color', config: { required: true, }, }, errors: [ { - dataPath: ".config", - keyword: "required", + dataPath: '.config', + keyword: 'required', }, ], }, - "with an invalid color_format": { + 'with an invalid color_format': { initial: { - name: "color", - label: "My Color", - type: "color", + name: 'color', + label: 'My Color', + type: 'color', config: { - color_format: "Whoa!", + color_format: 'Whoa!', }, }, errors: [ { - dataPath: ".config.color_format", - keyword: "enum", + dataPath: '.config.color_format', + keyword: 'enum', }, ], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/index.ts index cc1e51fe3..81bec4cd8 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/color/index.ts @@ -11,28 +11,28 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const ColorField = { - $id: "#colorField", - label: "Color Picker Field", - description: "", - type: "object", + $id: '#colorField', + label: 'Color Picker Field', + description: '', + type: 'object', properties: { type: { - const: "color", + const: 'color', }, ...base, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - color_format: { type: "string", enum: ["RGB", "Hex"] }, + required: { type: 'boolean' }, + color_format: { type: 'string', enum: ['RGB', 'Hex'] }, }, additionalProperties: false, - required: ["color_format"], + required: ['color_format'], }, }, additionalProperties: false, - required: [...baseRequired, "config"], -}; + required: [...baseRequired, 'config'], +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/common.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/common.ts index f93ac04d2..caa5b250e 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/common.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/common.ts @@ -12,41 +12,41 @@ limitations under the License. */ const label = { - type: "string", - label: "Label", - description: "The human-friendly label shown above the input field.", -}; + type: 'string', + label: 'Label', + description: 'The human-friendly label shown above the input field.', +} const name = { - type: "string", - label: "Name", - description: "The key used in your front matter.", -}; + type: 'string', + label: 'Name', + description: 'The key used in your front matter.', +} const description = { - type: "string", - label: "Description", - description: "Help text that appears above the field.", -}; + type: 'string', + label: 'Description', + description: 'Help text that appears above the field.', +} const hidden = { - type: "boolean", - label: "Hidden", + type: 'boolean', + label: 'Hidden', description: - "Hide this field from the form. Used to create content with hidden default values.", -}; + 'Hide this field from the form. Used to create content with hidden default values.', +} const showOnly = { - type: "object", - label: "Show Only", + type: 'object', + label: 'Show Only', description: - "This field will only be shown if the following field equals the following value. Only works with sibling select and toggle fields.", + 'This field will only be shown if the following field equals the following value. Only works with sibling select and toggle fields.', properties: { field: { - type: "string", + type: 'string', }, value: { - type: "boolean", + type: 'boolean', }, }, - required: ["field", "value"], -}; + required: ['field', 'value'], +} export const base = { label, @@ -54,5 +54,5 @@ export const base = { description, hidden, showOnly, -}; -export const baseRequired = ["label", "name", "type"]; +} +export const baseRequired = ['label', 'name', 'type'] diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/datetime.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/datetime.test.ts index 8f08515eb..f644435a5 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/datetime.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/datetime.test.ts @@ -11,35 +11,35 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "an invalid default date": { + 'an invalid default date': { initial: { - name: "expirydate", - label: "Expirydate", - type: "datetime", - default: "20-07-13T19:00:00-03:00", + name: 'expirydate', + label: 'Expirydate', + type: 'datetime', + default: '20-07-13T19:00:00-03:00', }, errors: [ { - dataPath: ".default", - keyword: "anyOf", + dataPath: '.default', + keyword: 'anyOf', }, ], }, - "an empty string as the default": { + 'an empty string as the default': { initial: { - name: "expirydate", - label: "Expirydate", - type: "datetime", - default: "", + name: 'expirydate', + label: 'Expirydate', + type: 'datetime', + default: '', }, errors: [ { - dataPath: ".default", - keyword: "anyOf", + dataPath: '.default', + keyword: 'anyOf', }, ], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/index.ts index ef0145abe..fd2e0944f 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/datetime/index.ts @@ -11,45 +11,45 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const DateField = { - $id: "#dateField", - label: "Date Field", + $id: '#dateField', + label: 'Date Field', description: - "A date and time picker. Good for date values such as page created, page published etc.", - type: "object", + 'A date and time picker. Good for date values such as page created, page published etc.', + type: 'object', properties: { type: { - const: "datetime", + const: 'datetime', }, ...base, default: { - type: "string", + type: 'string', // removeIfFails: true, anyOf: [ { - type: "string", - const: "now", + type: 'string', + const: 'now', }, { - type: "string", - format: "date-time", + type: 'string', + format: 'date-time', }, ], }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - date_format: { type: "string" }, - time_format: { type: "string" }, - export_format: { type: "string" }, - display_utc: { type: "boolean" }, + required: { type: 'boolean' }, + date_format: { type: 'string' }, + time_format: { type: 'string' }, + export_format: { type: 'string' }, + display_utc: { type: 'boolean' }, }, additionalProperties: false, }, }, required: [...baseRequired], additionalProperties: false, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group/index.ts index 783c6ebca..327daffde 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group/index.ts @@ -11,30 +11,30 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const FieldGroupField = { - $id: "#fieldGroupField", - label: "Field Group", + $id: '#fieldGroupField', + label: 'Field Group', description: "A set of fields combined into one field. Good for objects that come in sets (e.g. a site's footer).", - type: "object", + type: 'object', properties: { type: { - const: "field_group", + const: 'field_group', }, ...base, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, + required: { type: 'boolean' }, }, additionalProperties: false, }, fields: { - $ref: "#/definitions/allFields", + $ref: '#/definitions/allFields', }, }, additionalProperties: false, - required: [...baseRequired, "fields"], -}; + required: [...baseRequired, 'fields'], +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group_list/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group_list/index.ts index efd83c1b5..d5e4fedbb 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group_list/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/field_group_list/index.ts @@ -11,34 +11,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const FieldGroupListField = { - $id: "#fieldGroupListField", - label: "Field Group List", + $id: '#fieldGroupListField', + label: 'Field Group List', description: - "A list of repeating Field Groups. Good for an object that can be reused multiple times on the same page (e.g. list of authors).", - type: "object", + 'A list of repeating Field Groups. Good for an object that can be reused multiple times on the same page (e.g. list of authors).', + type: 'object', properties: { type: { - const: "field_group_list", + const: 'field_group_list', }, ...base, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - use_select: { type: "boolean" }, - labelField: { type: "string" }, - min: { type: "number" }, - max: { type: "number" }, + required: { type: 'boolean' }, + use_select: { type: 'boolean' }, + labelField: { type: 'string' }, + min: { type: 'number' }, + max: { type: 'number' }, }, additionalProperties: false, }, fields: { - $ref: "#/definitions/allFields", + $ref: '#/definitions/allFields', }, }, - required: [...baseRequired, "fields"], + required: [...baseRequired, 'fields'], additionalProperties: false, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/gallery.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/gallery.test.ts index 849fdc8c9..27b47d82e 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/gallery.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/gallery.test.ts @@ -11,44 +11,44 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with an invalid default type": { + 'with an invalid default type': { initial: { - type: "image_gallery", - name: "images", - label: "Images", - description: "Used for SEO & Featured Images", + type: 'image_gallery', + name: 'images', + label: 'Images', + description: 'Used for SEO & Featured Images', default: 2, }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { - type: "image_gallery", - name: "images", - label: "Images", - description: "Used for SEO & Featured Images", - default: ["2"], + type: 'image_gallery', + name: 'images', + label: 'Images', + description: 'Used for SEO & Featured Images', + default: ['2'], }, }, - "with a default array with an empty string": { + 'with a default array with an empty string': { initial: { - type: "image_gallery", - name: "images", - label: "Images", - description: "Used for SEO & Featured Images", - default: [""], + type: 'image_gallery', + name: 'images', + label: 'Images', + description: 'Used for SEO & Featured Images', + default: [''], }, errors: [ { - dataPath: ".default[0]", - keyword: "minLength", + dataPath: '.default[0]', + keyword: 'minLength', }, ], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/index.ts index 8aa791566..26e13a2aa 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/gallery/index.ts @@ -11,36 +11,36 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const GalleryField = { - $id: "#galleryField", - label: "Gallery Field", + $id: '#galleryField', + label: 'Gallery Field', description: - "A list input that adds assets to the Media Library. Good for galleries and components that require multiple files. ", - type: "object", + 'A list input that adds assets to the Media Library. Good for galleries and components that require multiple files. ', + type: 'object', properties: { type: { - const: "image_gallery", + const: 'image_gallery', }, ...base, default: { - type: "array", + type: 'array', minItems: 1, items: { - type: "string", + type: 'string', minLength: 1, }, }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - maxSize: { type: "number" }, + required: { type: 'boolean' }, + maxSize: { type: 'number' }, }, additionalProperties: false, }, }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/image.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/image.test.ts index 486438296..cb5c56f43 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/image.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/image.test.ts @@ -11,56 +11,56 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with maxSize set as a string": { + 'with maxSize set as a string': { initial: { - label: "Image", - name: "image", - type: "file", + label: 'Image', + name: 'image', + type: 'file', config: { - maxSize: "64", + maxSize: '64', }, }, errors: [ { - dataPath: ".config.maxSize", - keyword: "type", + dataPath: '.config.maxSize', + keyword: 'type', }, ], fixed: { - label: "Image", - name: "image", - type: "file", + label: 'Image', + name: 'image', + type: 'file', config: { maxSize: 64, }, }, }, - "with an empty string default": { + 'with an empty string default': { initial: { - default: "", - label: "Image", - name: "image", - type: "file", + default: '', + label: 'Image', + name: 'image', + type: 'file', config: { maxSize: 64, }, }, errors: [ { - dataPath: ".default", - keyword: "minLength", + dataPath: '.default', + keyword: 'minLength', }, ], fixed: { - label: "Image", - name: "image", - type: "file", + label: 'Image', + name: 'image', + type: 'file', config: { maxSize: 64, }, }, }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/index.ts index dce67beaa..e76f90e81 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/image/index.ts @@ -11,33 +11,33 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const ImageField = { - $id: "#imageField", - label: "Image Field", + $id: '#imageField', + label: 'Image Field', description: - "A single file input that adds assets to the Media Library. Good for a featured image or a profile picture. ", - type: "object", + 'A single file input that adds assets to the Media Library. Good for a featured image or a profile picture. ', + type: 'object', properties: { type: { - const: "file", + const: 'file', }, ...base, default: { - type: "string", + type: 'string', minLength: 1, removeIfFails: true, }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - maxSize: { type: "number" }, + required: { type: 'boolean' }, + maxSize: { type: 'number' }, }, additionalProperties: false, }, }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/include/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/include/index.ts index 190f297e9..07200b374 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/include/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/include/index.ts @@ -11,30 +11,30 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const IncludeField = { - $id: "#includeField", - label: "Include Template", + $id: '#includeField', + label: 'Include Template', description: - "Include the fields of another Front Matter Template into the current one. ", - type: "object", + 'Include the fields of another Front Matter Template into the current one. ', + type: 'object', properties: { type: { - const: "include", + const: 'include', }, template: { - type: "string", - label: "Template", + type: 'string', + label: 'Template', description: "The template you'd like to include", }, ...base, config: { - type: "object", + type: 'object', properties: {}, additionalProperties: false, }, }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/index.ts index 688f9eab3..57002b116 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/index.ts @@ -11,40 +11,40 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' const additionalListConfig = { - use_select: { type: "boolean" }, - required: { type: "boolean" }, - min: { type: "number" }, - max: { type: "number" }, -}; + use_select: { type: 'boolean' }, + required: { type: 'boolean' }, + min: { type: 'number' }, + max: { type: 'number' }, +} export const ListField = { - $id: "#listField", - label: "List Field", + $id: '#listField', + label: 'List Field', description: - "A list of strings to make multiple selections. The selection is displayed as a list that can be sorted (e.g. related pages). ", - type: "object", + 'A list of strings to make multiple selections. The selection is displayed as a list that can be sorted (e.g. related pages). ', + type: 'object', properties: { type: { - const: "list", + const: 'list', }, ...base, default: { - type: "array", + type: 'array', items: { - type: "string", + type: 'string', }, }, config: { - type: "object", + type: 'object', properties: { - use_select: { type: "boolean" }, + use_select: { type: 'boolean' }, source: { - type: "object", + type: 'object', properties: { - type: { enum: ["simple", "pages", "documents"] }, + type: { enum: ['simple', 'pages', 'documents'] }, }, }, }, @@ -66,27 +66,27 @@ export const ListField = { properties: { source: { properties: { - type: { const: "simple" }, + type: { const: 'simple' }, }, }, }, }, then: { additionalProperties: false, - required: ["source", "options"], + required: ['source', 'options'], properties: { ...additionalListConfig, options: { - type: "array", + type: 'array', items: { - type: "string", + type: 'string', }, }, source: { properties: { - type: { const: "simple" }, + type: { const: 'simple' }, }, - required: ["type"], + required: ['type'], additionalProperties: false, }, }, @@ -97,7 +97,7 @@ export const ListField = { properties: { source: { properties: { - type: { const: "pages" }, + type: { const: 'pages' }, }, }, }, @@ -107,14 +107,14 @@ export const ListField = { ...additionalListConfig, source: { properties: { - type: { const: "pages" }, - section: { type: "string" }, + type: { const: 'pages' }, + section: { type: 'string' }, }, - required: ["type", "section"], + required: ['type', 'section'], additionalProperties: false, }, }, - required: ["source"], + required: ['source'], additionalProperties: false, }, }, @@ -123,7 +123,7 @@ export const ListField = { properties: { source: { properties: { - type: { const: "documents" }, + type: { const: 'documents' }, }, }, }, @@ -133,16 +133,16 @@ export const ListField = { ...additionalListConfig, source: { properties: { - type: { const: "documents" }, - section: { type: "string" }, - file: { type: "string" }, - path: { type: "string" }, + type: { const: 'documents' }, + section: { type: 'string' }, + file: { type: 'string' }, + path: { type: 'string' }, }, - required: ["type", "section", "file", "path"], + required: ['type', 'section', 'file', 'path'], additionalProperties: false, }, }, - required: ["source"], + required: ['source'], additionalProperties: false, }, }, @@ -154,4 +154,4 @@ export const ListField = { }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/list.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/list.test.ts index 4bbd08cab..d974596a0 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/list.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/list/list.test.ts @@ -11,24 +11,24 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' const base = { - label: "Authors", - name: "authors", - type: "list", -}; + label: 'Authors', + name: 'authors', + type: 'list', +} setupTests({ - "with an empty default": { + 'with an empty default': { initial: { ...base, default: [], config: { use_select: true, source: { - type: "pages", - section: "authors", + type: 'pages', + section: 'authors', }, }, }, @@ -38,13 +38,13 @@ setupTests({ config: { use_select: true, source: { - type: "pages", - section: "authors", + type: 'pages', + section: 'authors', }, }, }, }, - "with null config items": { + 'with null config items': { initial: { ...base, config: { @@ -52,19 +52,19 @@ setupTests({ min: null, max: null, source: { - type: "pages", - section: "authors", + type: 'pages', + section: 'authors', }, }, }, errors: [ { - dataPath: ".config.min", - keyword: "type", + dataPath: '.config.min', + keyword: 'type', }, { - dataPath: ".config.max", - keyword: "type", + dataPath: '.config.max', + keyword: 'type', }, ], fixed: { @@ -72,49 +72,49 @@ setupTests({ config: { use_select: true, source: { - type: "pages", - section: "authors", + type: 'pages', + section: 'authors', }, }, }, }, - "with a missing path for documents": { + 'with a missing path for documents': { initial: { ...base, config: { use_select: true, source: { - type: "documents", - file: "hugo/data/authors.yml", - section: "authors", + type: 'documents', + file: 'hugo/data/authors.yml', + section: 'authors', }, }, }, errors: [ { - dataPath: ".config.source", - keyword: "required", + dataPath: '.config.source', + keyword: 'required', }, ], }, - "with an options array for a documents list": { + 'with an options array for a documents list': { initial: { ...base, config: { use_select: true, - options: ["my-options"], + options: ['my-options'], source: { - type: "documents", - file: "hugo/data/authors.yml", - path: "map", - section: "authors", + type: 'documents', + file: 'hugo/data/authors.yml', + path: 'map', + section: 'authors', }, }, }, errors: [ { - dataPath: ".config", - keyword: "additionalProperties", + dataPath: '.config', + keyword: 'additionalProperties', }, ], fixed: { @@ -122,29 +122,29 @@ setupTests({ config: { use_select: true, source: { - type: "documents", - file: "hugo/data/authors.yml", - path: "map", - section: "authors", + type: 'documents', + file: 'hugo/data/authors.yml', + path: 'map', + section: 'authors', }, }, }, }, - "with a datafile source": { + 'with a datafile source': { initial: { ...base, config: { use_select: true, source: { - type: "datafiles", + type: 'datafiles', }, }, }, errors: [ { - dataPath: ".config.source.type", - keyword: "enum", + dataPath: '.config.source.type', + keyword: 'enum', }, ], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/index.ts index f7d2b60ff..d9c986fb3 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/index.ts @@ -11,43 +11,43 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const NumberField = { - $id: "#numberField", - label: "Number Field", + $id: '#numberField', + label: 'Number Field', description: - "A number input. Good for integer values such as page weight, amounts, counters etc. ", - type: "object", + 'A number input. Good for integer values such as page weight, amounts, counters etc. ', + type: 'object', properties: { ...base, type: { - const: "number", + const: 'number', }, default: { - type: "number", - multipleOf: { $data: "1/config/step" }, - minimum: { $data: "1/config/min" }, - maximum: { $data: "1/config/max" }, + type: 'number', + multipleOf: { $data: '1/config/step' }, + minimum: { $data: '1/config/min' }, + maximum: { $data: '1/config/max' }, }, config: { - type: "object", + type: 'object', properties: { required: { - type: "boolean", + type: 'boolean', }, min: { - type: "number", - multipleOf: { $data: "1/step" }, - maximum: { $data: "1/max" }, + type: 'number', + multipleOf: { $data: '1/step' }, + maximum: { $data: '1/max' }, }, max: { - type: "number", - multipleOf: { $data: "1/step" }, - minimum: { $data: "1/min" }, + type: 'number', + multipleOf: { $data: '1/step' }, + minimum: { $data: '1/min' }, }, step: { - type: "number", + type: 'number', exclusiveMinimum: 0, }, }, @@ -56,4 +56,4 @@ export const NumberField = { }, required: baseRequired, additionalProperties: false, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/number.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/number.test.ts index cd4d96d29..a581ff522 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/number.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/number/number.test.ts @@ -11,25 +11,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' const base = { - type: "number", - name: "weight", - label: "Weight", - description: "Used to handle sorting order, menu order, etc.", -}; + type: 'number', + name: 'weight', + label: 'Weight', + description: 'Used to handle sorting order, menu order, etc.', +} setupTests({ - "with an invalid default type": { + 'with an invalid default type': { initial: { ...base, - default: "2", + default: '2', }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { @@ -37,7 +37,7 @@ setupTests({ default: 2, }, }, - "with 0 as the default": { + 'with 0 as the default': { initial: { ...base, default: 0, @@ -55,8 +55,8 @@ setupTests({ }, errors: [ { - dataPath: "", - keyword: "additionalProperties", + dataPath: '', + keyword: 'additionalProperties', }, ], fixed: { @@ -66,7 +66,7 @@ setupTests({ }, }, }, - "when the default is not a multiple of the step config": { + 'when the default is not a multiple of the step config': { initial: { ...base, default: 3, @@ -74,9 +74,9 @@ setupTests({ step: 2, }, }, - errors: [{ dataPath: ".default", keyword: "multipleOf" }], + errors: [{ dataPath: '.default', keyword: 'multipleOf' }], }, - "when the default is greather than the max": { + 'when the default is greather than the max': { initial: { ...base, default: 4, @@ -84,9 +84,9 @@ setupTests({ max: 2, }, }, - errors: [{ dataPath: ".default", keyword: "maximum" }], + errors: [{ dataPath: '.default', keyword: 'maximum' }], }, - "when the default is less than the min": { + 'when the default is less than the min': { initial: { ...base, default: 4, @@ -94,6 +94,6 @@ setupTests({ min: 6, }, }, - errors: [{ dataPath: ".default", keyword: "minimum" }], + errors: [{ dataPath: '.default', keyword: 'minimum' }], }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/index.ts index 479a1a820..f6b43954d 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/index.ts @@ -11,30 +11,30 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const SelectField = { - $id: "#selectField", - label: "Select Field", - description: "A dropdown to make a single selection from a set of options. ", - type: "object", + $id: '#selectField', + label: 'Select Field', + description: 'A dropdown to make a single selection from a set of options. ', + type: 'object', properties: { type: { - const: "select", + const: 'select', }, ...base, default: { - type: "string", + type: 'string', removeIfFails: true, // we put [] as a default value in lots of places }, config: { - type: "object", + type: 'object', properties: { source: { - type: "object", + type: 'object', properties: { // FIXME: this doesnt look right - type: { enum: ["simple", "pages", "documents"] }, + type: { enum: ['simple', 'pages', 'documents'] }, }, }, }, @@ -44,27 +44,27 @@ export const SelectField = { properties: { source: { properties: { - type: { const: "simple" }, + type: { const: 'simple' }, }, }, }, }, then: { additionalProperties: false, - required: ["options", "source"], + required: ['options', 'source'], properties: { - required: { type: "boolean" }, + required: { type: 'boolean' }, source: { properties: { - type: { const: "simple" }, + type: { const: 'simple' }, }, - required: ["type"], + required: ['type'], additionalProperties: false, }, options: { - type: "array", + type: 'array', items: { - type: "string", + type: 'string', }, }, }, @@ -75,20 +75,20 @@ export const SelectField = { properties: { source: { properties: { - type: { const: "pages" }, + type: { const: 'pages' }, }, }, }, }, then: { properties: { - required: { type: "boolean" }, + required: { type: 'boolean' }, source: { properties: { - type: { const: "pages" }, - section: { type: "string" }, + type: { const: 'pages' }, + section: { type: 'string' }, }, - required: ["type", "section"], + required: ['type', 'section'], additionalProperties: false, }, }, @@ -100,22 +100,22 @@ export const SelectField = { properties: { source: { properties: { - type: { const: "documents" }, + type: { const: 'documents' }, }, }, }, }, then: { properties: { - required: { type: "boolean" }, + required: { type: 'boolean' }, source: { properties: { - type: { const: "documents" }, - section: { type: "string" }, - file: { type: "string" }, - path: { type: "string" }, + type: { const: 'documents' }, + section: { type: 'string' }, + file: { type: 'string' }, + path: { type: 'string' }, }, - required: ["type", "section", "file", "path"], + required: ['type', 'section', 'file', 'path'], additionalProperties: false, }, }, @@ -127,4 +127,4 @@ export const SelectField = { }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/select.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/select.test.ts index 535b17bac..d8c29337a 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/select.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/select/select.test.ts @@ -11,175 +11,175 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' const base = { - type: "select", - label: "Engine Name", - name: "engine_name", -}; + type: 'select', + label: 'Engine Name', + name: 'engine_name', +} setupTests({ - "with a missing options array for simple selects": { + 'with a missing options array for simple selects': { initial: { ...base, config: { source: { - type: "simple", + type: 'simple', }, required: true, }, }, - errors: [{ dataPath: ".config", keyword: "required" }], + errors: [{ dataPath: '.config', keyword: 'required' }], }, - "with an extra options array for page selects": { + 'with an extra options array for page selects': { initial: { ...base, config: { - options: ["some-random-option"], + options: ['some-random-option'], source: { - type: "pages", - section: "posts", + type: 'pages', + section: 'posts', }, }, }, - errors: [{ dataPath: ".config", keyword: "additionalProperties" }], + errors: [{ dataPath: '.config', keyword: 'additionalProperties' }], fixed: { ...base, config: { source: { - type: "pages", - section: "posts", + type: 'pages', + section: 'posts', }, }, }, }, - "with an extra path key for page selects": { + 'with an extra path key for page selects': { initial: { ...base, config: { source: { - type: "pages", - section: "posts", - path: "some-path", + type: 'pages', + section: 'posts', + path: 'some-path', }, }, }, - errors: [{ dataPath: ".config.source", keyword: "additionalProperties" }], + errors: [{ dataPath: '.config.source', keyword: 'additionalProperties' }], fixed: { ...base, config: { source: { - type: "pages", - section: "posts", + type: 'pages', + section: 'posts', }, }, }, }, - "with a missing path for document selects": { + 'with a missing path for document selects': { initial: { ...base, config: { source: { - type: "documents", - section: "posts", - file: "my-file", + type: 'documents', + section: 'posts', + file: 'my-file', }, }, }, - errors: [{ dataPath: ".config.source", keyword: "required" }], + errors: [{ dataPath: '.config.source', keyword: 'required' }], }, - "with a missing file for document selects": { + 'with a missing file for document selects': { initial: { ...base, config: { source: { - type: "documents", - section: "posts", - path: "my-file", + type: 'documents', + section: 'posts', + path: 'my-file', }, }, }, - errors: [{ dataPath: ".config.source", keyword: "required" }], + errors: [{ dataPath: '.config.source', keyword: 'required' }], }, - "with an empty array as a default value": { + 'with an empty array as a default value': { initial: { ...base, default: [], config: { - options: ["some-option"], + options: ['some-option'], source: { - type: "simple", + type: 'simple', }, }, }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { ...base, config: { - options: ["some-option"], + options: ['some-option'], source: { - type: "simple", + type: 'simple', }, }, }, }, - "with an single-item array as a default value": { + 'with an single-item array as a default value': { initial: { ...base, - default: ["some-option"], + default: ['some-option'], config: { - options: ["some-option"], + options: ['some-option'], source: { - type: "simple", + type: 'simple', }, }, }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { ...base, - default: "some-option", + default: 'some-option', config: { - options: ["some-option"], + options: ['some-option'], source: { - type: "simple", + type: 'simple', }, }, }, }, - "with a multi-item array as a default value": { + 'with a multi-item array as a default value': { initial: { ...base, - default: ["some-option", "what-even-is-this"], + default: ['some-option', 'what-even-is-this'], config: { - options: ["some-option"], + options: ['some-option'], source: { - type: "simple", + type: 'simple', }, }, }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { ...base, config: { - options: ["some-option"], + options: ['some-option'], source: { - type: "simple", + type: 'simple', }, }, }, @@ -211,4 +211,4 @@ setupTests({ // }, // }, // }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/setupTests.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/setupTests.ts index 36489e485..a483c1084 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/setupTests.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/setupTests.ts @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { validator } from "../validator"; -import { validateFile } from "../../index"; -import { ForestryFMTSchema } from "../fmt"; +import { validator } from '../validator' +import { validateFile } from '../../index' +import { ForestryFMTSchema } from '../fmt' /** * The idea with these test are that you can provide 3 keys (initial, error, fixed). @@ -29,127 +29,127 @@ import { ForestryFMTSchema } from "../fmt"; declare global { namespace jest { interface Matchers { - toBeUnsuccessful(): R; - toBeSuccessful(): R; + toBeUnsuccessful(): R + toBeSuccessful(): R } } } expect.extend({ toBeSuccessful(received) { - const pass = received.success; + const pass = received.success if (pass) { return { message: () => `response was successful`, pass: true, - }; + } } else { return { message: () => `expected to be able to fix data but there were still errors`, pass: false, - }; + } } }, toBeUnsuccessful(received) { - const pass = !received.success; + const pass = !received.success if (pass) { return { message: () => `response was unsuccessful`, pass: true, - }; + } } else { return { message: () => `expected response to be unsuccessful`, pass: false, - }; + } } }, -}); +}) // To see console.log disable this -jest.spyOn(console, "log").mockImplementation(); +jest.spyOn(console, 'log').mockImplementation() export const setupTests = (example) => { Object.keys(example).map((item) => { - const ajv = validator({ fix: true }); - const ajvWithErrors = validator({ fix: false }); - const { initial, fixed, errors } = example[item]; + const ajv = validator({ fix: true }) + const ajvWithErrors = validator({ fix: false }) + const { initial, fixed, errors } = example[item] describe(`The ${initial.type} field`, () => { describe(item, () => { const payload = { - label: "my-fmt", + label: 'my-fmt', hide_body: false, fields: [initial], - }; + } - describe("when run as a fix/migrate task", () => { + describe('when run as a fix/migrate task', () => { if (fixed) { test(`can be fixed/migrated`, async () => { const output = await validateFile({ - filePath: "my-path.yml", + filePath: 'my-path.yml', payload, schema: ForestryFMTSchema, ajv, fix: true, - }); - expect(output).toBeSuccessful(); - expect(output.fileJSON.fields[0]).toEqual(fixed); - }); + }) + expect(output).toBeSuccessful() + expect(output.fileJSON.fields[0]).toEqual(fixed) + }) } else { test(`cannot be fixed/migrated`, async () => { const output = await validateFile({ - filePath: "my-path.yml", + filePath: 'my-path.yml', payload, schema: ForestryFMTSchema, ajv, fix: true, - }); - expect(output).toBeUnsuccessful(); - }); + }) + expect(output).toBeUnsuccessful() + }) } - }); - describe("when run as an audit task", () => { + }) + describe('when run as an audit task', () => { if (errors?.length > 0) { test(`returns expected errors: \n ${errors .map(({ dataPath, keyword }) => `field${dataPath}: ${keyword}`) - .join("\n ")}`, async () => { + .join('\n ')}`, async () => { const outputWithErrors = await validateFile({ - filePath: "my-path.yml", + filePath: 'my-path.yml', payload, schema: ForestryFMTSchema, ajv: ajvWithErrors, fix: false, - }); + }) - const errorKeys = outputWithErrors.errors; + const errorKeys = outputWithErrors.errors const errorList = errorKeys.map(({ dataPath, keyword }) => { return { - dataPath: dataPath.replace(".fields[0]", ""), + dataPath: dataPath.replace('.fields[0]', ''), keyword, - }; - }); + } + }) expect(errorList).toEqual( errors.map(({ dataPath, keyword }) => { - return { dataPath: `${dataPath}`, keyword }; + return { dataPath: `${dataPath}`, keyword } }) - ); - }); + ) + }) } else { - test("has no errors", async () => { + test('has no errors', async () => { const outputWithErrors = await validateFile({ - filePath: "my-path.yml", + filePath: 'my-path.yml', payload, schema: ForestryFMTSchema, ajv: ajvWithErrors, fix: false, - }); + }) - expect(outputWithErrors.errors).toEqual([]); - }); + expect(outputWithErrors.errors).toEqual([]) + }) } - }); - }); - }); - }); -}; + }) + }) + }) + }) +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/index.ts index d31139d12..a6f687afe 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/index.ts @@ -11,32 +11,32 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const TagField = { - $id: "#tagField", - label: "Tags Field", + $id: '#tagField', + label: 'Tags Field', description: - "A list of strings to make multiple selections displayed inline. Good for page categories, page tags etc.", - type: "object", + 'A list of strings to make multiple selections displayed inline. Good for page categories, page tags etc.', + type: 'object', properties: { type: { - const: "tag_list", + const: 'tag_list', }, ...base, default: { - type: "array", + type: 'array', items: { - type: "string", + type: 'string', }, }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, + required: { type: 'boolean' }, }, additionalProperties: false, }, }, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/tag_list.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/tag_list.test.ts index 52e63cdef..5906efdeb 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/tag_list.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/tag_list/tag_list.test.ts @@ -11,29 +11,29 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with an invalid default type": { + 'with an invalid default type': { initial: { - name: "authors", - label: "Authors", - type: "tag_list", + name: 'authors', + label: 'Authors', + type: 'tag_list', hidden: true, default: 2, }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { - name: "authors", - label: "Authors", - type: "tag_list", + name: 'authors', + label: 'Authors', + type: 'tag_list', hidden: true, - default: ["2"], + default: ['2'], }, }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/index.ts index 310e993a5..57f880b3d 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/index.ts @@ -11,32 +11,32 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const TextField = { - $id: "#textField", - label: "Text Field", + $id: '#textField', + label: 'Text Field', description: - "Single line text input. Good for page titles, feature headlines etc.", - type: "object", + 'Single line text input. Good for page titles, feature headlines etc.', + type: 'object', properties: { ...base, type: { - const: "text", + const: 'text', }, default: { - type: "string", + type: 'string', }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, - min: { type: "number" }, - max: { type: "number" }, + required: { type: 'boolean' }, + min: { type: 'number' }, + max: { type: 'number' }, }, additionalProperties: false, }, }, additionalProperties: false, required: baseRequired, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/text.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/text.test.ts index 259c81810..5cc740a2f 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/text.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/text/text.test.ts @@ -11,51 +11,51 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with a missing label": { + 'with a missing label': { initial: { - name: "figure", - type: "text", + name: 'figure', + type: 'text', config: { required: false, }, - description: "A single number or word to emphasize", + description: 'A single number or word to emphasize', }, errors: [ { - dataPath: "", - keyword: "required", + dataPath: '', + keyword: 'required', }, ], }, - "with a missing config": { + 'with a missing config': { initial: { - name: "figure", - type: "text", + name: 'figure', + type: 'text', default: 2, config: { required: false, }, - label: "Figure", - description: "A single number or word to emphasize", + label: 'Figure', + description: 'A single number or word to emphasize', }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { - name: "figure", - type: "text", - default: "2", + name: 'figure', + type: 'text', + default: '2', config: { required: false, }, - label: "Figure", - description: "A single number or word to emphasize", + label: 'Figure', + description: 'A single number or word to emphasize', }, }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/index.ts index 4eb212a08..10cb306a0 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/index.ts @@ -11,37 +11,37 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { base, baseRequired } from "../common"; +import { base, baseRequired } from '../common' export const TextAreaField = { - $id: "#textAreaField", - label: "Textarea", + $id: '#textAreaField', + label: 'Textarea', description: - "Multi-line text input. Good for page descriptions, article summaries etc. ", - type: "object", + 'Multi-line text input. Good for page descriptions, article summaries etc. ', + type: 'object', properties: { type: { - const: "textarea", + const: 'textarea', }, ...base, - default: { type: "string" }, + default: { type: 'string' }, config: { - type: "object", + type: 'object', properties: { - required: { type: "boolean" }, + required: { type: 'boolean' }, wysiwyg: { - type: "boolean", - title: "WYSIWYG Editor", + type: 'boolean', + title: 'WYSIWYG Editor', description: - "Whether or not the editor should present a rich-text editor", + 'Whether or not the editor should present a rich-text editor', }, - min: { type: "number" }, - max: { type: "number" }, + min: { type: 'number' }, + max: { type: 'number' }, // FIXME: this should not be present when wysiwyg is false schema: { - type: "object", + type: 'object', properties: { - format: { type: "string", enum: ["html", "markdown"] }, + format: { type: 'string', enum: ['html', 'markdown'] }, }, }, }, @@ -51,4 +51,4 @@ export const TextAreaField = { }, required: baseRequired, additionalProperties: false, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/textarea.test.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/textarea.test.ts index 9848091af..ecd9b9ef8 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/textarea.test.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fields/textarea/textarea.test.ts @@ -11,35 +11,35 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { setupTests } from "../setupTests"; +import { setupTests } from '../setupTests' setupTests({ - "with a missing config": { + 'with a missing config': { initial: { - name: "figure", - type: "textarea", + name: 'figure', + type: 'textarea', default: 2, config: { required: false, }, - label: "Figure", - description: "A single number or word to emphasize", + label: 'Figure', + description: 'A single number or word to emphasize', }, errors: [ { - dataPath: ".default", - keyword: "type", + dataPath: '.default', + keyword: 'type', }, ], fixed: { - name: "figure", - type: "textarea", - default: "2", + name: 'figure', + type: 'textarea', + default: '2', config: { required: false, }, - label: "Figure", - description: "A single number or word to emphasize", + label: 'Figure', + description: 'A single number or word to emphasize', }, }, -}); +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fmt.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fmt.ts index 18413c1b2..a2559e7e7 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fmt.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/fmt.ts @@ -11,27 +11,27 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { AllFields } from "./fields/allFields"; -import { TextField } from "./fields/text"; -import { TextAreaField } from "./fields/textarea"; -import { NumberField } from "./fields/number"; -import { BooleanField } from "./fields/boolean"; -import { TagField } from "./fields/tag_list"; -import { DateField } from "./fields/datetime"; -import { SelectField } from "./fields/select"; -import { ListField } from "./fields/list"; -import { ImageField } from "./fields/image"; -import { ColorField } from "./fields/color"; -import { IncludeField } from "./fields/include"; -import { GalleryField } from "./fields/gallery"; -import { BlocksField } from "./fields/blocks"; -import { FieldGroupField } from "./fields/field_group"; -import { FieldGroupListField } from "./fields/field_group_list"; +import { AllFields } from './fields/allFields' +import { TextField } from './fields/text' +import { TextAreaField } from './fields/textarea' +import { NumberField } from './fields/number' +import { BooleanField } from './fields/boolean' +import { TagField } from './fields/tag_list' +import { DateField } from './fields/datetime' +import { SelectField } from './fields/select' +import { ListField } from './fields/list' +import { ImageField } from './fields/image' +import { ColorField } from './fields/color' +import { IncludeField } from './fields/include' +import { GalleryField } from './fields/gallery' +import { BlocksField } from './fields/blocks' +import { FieldGroupField } from './fields/field_group' +import { FieldGroupListField } from './fields/field_group_list' export const ForestryFMTSchema = { - title: "Forestry FMT Schema", - type: "object", - description: "", + title: 'Forestry FMT Schema', + type: 'object', + description: '', definitions: { textField: TextField, numberField: NumberField, @@ -52,26 +52,26 @@ export const ForestryFMTSchema = { }, properties: { label: { - title: "Label", - description: "The label used in the sidebar", - type: "string", + title: 'Label', + description: 'The label used in the sidebar', + type: 'string', }, hide_body: { - type: "boolean", - title: "Hide Body?", - description: "Whether to show the body for the markdown file.", + type: 'boolean', + title: 'Hide Body?', + description: 'Whether to show the body for the markdown file.', }, display_field: { - type: "string", + type: 'string', }, - fields: { $ref: "#/definitions/allFields" }, + fields: { $ref: '#/definitions/allFields' }, pages: { - type: "array", + type: 'array', items: { - type: "string", + type: 'string', }, }, }, - required: ["label", "hide_body", "fields"], + required: ['label', 'hide_body', 'fields'], additionalProperties: false, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/settings.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/settings.ts index 6d2892892..252b9fc23 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/settings.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/settings.ts @@ -12,225 +12,225 @@ limitations under the License. */ export const ForestrySettingsSchema = { - title: "Forestry Settings Schema", - type: "object", - description: "Todo item sent by the client", - required: ["new_page_extension", "upload_dir", "sections"], + title: 'Forestry Settings Schema', + type: 'object', + description: 'Todo item sent by the client', + required: ['new_page_extension', 'upload_dir', 'sections'], additionalProperties: false, properties: { new_page_extension: { - title: "New file format", - description: "New files created in Forestry can be Markdown or HTML", - type: "string", - enum: ["md", "html"], + title: 'New file format', + description: 'New files created in Forestry can be Markdown or HTML', + type: 'string', + enum: ['md', 'html'], }, version: { - title: "Schema version", - type: "string", + title: 'Schema version', + type: 'string', }, auto_deploy: { - title: "", - description: "", - type: "boolean", + title: '', + description: '', + type: 'boolean', }, admin_path: { - title: "Admin Path", - description: "The folder where you store the Forestry admin file.", - type: "string", + title: 'Admin Path', + description: 'The folder where you store the Forestry admin file.', + type: 'string', }, webhook_url: { - title: "Webhook URL", + title: 'Webhook URL', description: - "Forestry can send events to a webhook (ie. post_import, post_publish)", - type: "string", + 'Forestry can send events to a webhook (ie. post_import, post_publish)', + type: 'string', }, upload_dir: { - type: "string", - title: "Upload Directory", - description: "The directory where media is stored inside of git", + type: 'string', + title: 'Upload Directory', + description: 'The directory where media is stored inside of git', }, public_path: { - type: "string", - title: "Public Path", - description: "The path where media is served from", + type: 'string', + title: 'Public Path', + description: 'The path where media is served from', }, front_matter_path: { - type: "string", - title: "Front Matter Path", - description: "", + type: 'string', + title: 'Front Matter Path', + description: '', }, use_front_matter_path: { - type: "boolean", - title: "Use Front Matter Path", - description: "Override the public path for front matter fields.", + type: 'boolean', + title: 'Use Front Matter Path', + description: 'Override the public path for front matter fields.', }, file_template: { - type: "string", - title: "File Path", + type: 'string', + title: 'File Path', description: - "The path where media will be uploaded and served from.\n\nAvailable variables: :filename:, :year:, :month:, :day:.", + 'The path where media will be uploaded and served from.\n\nAvailable variables: :filename:, :year:, :month:, :day:.', }, build: { - type: "object", - title: "Webhook URL", + type: 'object', + title: 'Webhook URL', description: - "Forestry can send events to a webhook (ie. post_import, post_publish)", + 'Forestry can send events to a webhook (ie. post_import, post_publish)', additionalProperties: false, properties: { install_dependencies_command: { - type: "string", - title: "Install Dependencies Command", + type: 'string', + title: 'Install Dependencies Command', description: - "The command that installs your project dependencies, if necessary. The results of this command will be cached for faster startup times.", + 'The command that installs your project dependencies, if necessary. The results of this command will be cached for faster startup times.', }, preview_docker_image: { - type: "string", - title: "Preview Docker Image", - description: "Path to a publicly available image on Docker hub", + type: 'string', + title: 'Preview Docker Image', + description: 'Path to a publicly available image on Docker hub', }, preview_env: { - type: "array", - title: "Environment Variables", - description: "Ex. HUGO_ENV=staging", + type: 'array', + title: 'Environment Variables', + description: 'Ex. HUGO_ENV=staging', items: { - type: "string", + type: 'string', }, }, preview_output_directory: { - type: "string", - title: "Output Directory", + type: 'string', + title: 'Output Directory', description: - "The directory, relative to the root of your project, where your site is output to when previewing.", + 'The directory, relative to the root of your project, where your site is output to when previewing.', }, mount_path: { - type: "string", - title: "Mount Path", + type: 'string', + title: 'Mount Path', description: - "The directory inside the docker container where your site should be mounted.", + 'The directory inside the docker container where your site should be mounted.', }, working_dir: { - type: "string", - title: "Working Directory", + type: 'string', + title: 'Working Directory', description: - "Override the default working directory of the docker image", + 'Override the default working directory of the docker image', }, instant_preview_command: { - type: "string", - title: "Build Command", + type: 'string', + title: 'Build Command', description: "The command that starts your static site generator's dev server.", }, }, }, sections: { - type: "array", - title: "Sidebar", - description: "Add sections to the sidebar to expose content to editors", + type: 'array', + title: 'Sidebar', + description: 'Add sections to the sidebar to expose content to editors', items: { - type: "object", + type: 'object', properties: { type: { - type: "string", - enum: ["directory", "heading", "document"], + type: 'string', + enum: ['directory', 'heading', 'document'], }, }, allOf: [ { if: { properties: { - type: { const: "heading" }, + type: { const: 'heading' }, }, }, then: { properties: { type: { - const: "heading", + const: 'heading', }, label: { - type: "string", + type: 'string', }, }, - required: ["type", "label"], + required: ['type', 'label'], additionalProperties: false, }, }, { if: { properties: { - type: { const: "document" }, + type: { const: 'document' }, }, }, then: { properties: { type: { - const: "document", + const: 'document', }, label: { - type: "string", + type: 'string', }, path: { - type: "string", + type: 'string', }, read_only: { - type: "boolean", + type: 'boolean', }, }, - required: ["type", "label", "path"], + required: ['type', 'label', 'path'], additionalProperties: false, }, }, { if: { properties: { - type: { const: "directory" }, + type: { const: 'directory' }, }, }, then: { properties: { type: { - const: "directory", + const: 'directory', }, label: { - type: "string", + type: 'string', }, create: { - type: "string", - title: "Create", - description: "", + type: 'string', + title: 'Create', + description: '', }, path: { - type: "string", + type: 'string', }, match: { - type: "string", - title: "Match", - description: "", + type: 'string', + title: 'Match', + description: '', }, exclude: { - type: "string", - title: "", - description: "", + type: 'string', + title: '', + description: '', }, new_doc_ext: { - type: "string", - title: "New doc", - description: "", - enum: ["md", "html"], + type: 'string', + title: 'New doc', + description: '', + enum: ['md', 'html'], }, templates: { - type: "array", - title: "Webhook URL", + type: 'array', + title: 'Webhook URL', description: - "Forestry can send events to a webhook (ie. post_import, post_publish)", + 'Forestry can send events to a webhook (ie. post_import, post_publish)', items: { - type: "string", - title: "Webhook URL", + type: 'string', + title: 'Webhook URL', description: - "Forestry can send events to a webhook (ie. post_import, post_publish)", + 'Forestry can send events to a webhook (ie. post_import, post_publish)', }, }, }, - required: ["type", "path", "label", "create", "match"], + required: ['type', 'path', 'label', 'create', 'match'], additionalProperties: false, }, }, @@ -238,4 +238,4 @@ export const ForestrySettingsSchema = { }, }, }, -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/validator.ts b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/validator.ts index 4437077f0..fcb3de16a 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/validator.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/audit/schema/validator.ts @@ -11,7 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import Ajv from "ajv"; +import Ajv from 'ajv' export const validator = ({ fix }) => { if (fix) { @@ -19,26 +19,26 @@ export const validator = ({ fix }) => { allErrors: true, verbose: true, removeAdditional: true, - coerceTypes: "array", + coerceTypes: 'array', $data: true, - }).addKeyword("removeIfFails", { + }).addKeyword('removeIfFails', { // https://github.com/ajv-validator/ajv/issues/300#issuecomment-247667922 inline(it) { return `if (errors) { - vErrors.length = errs_${it.dataLevel || ""}; - errors = errs_${it.dataLevel || ""}; - delete data${it.dataLevel - 1 || ""}[${ + vErrors.length = errs_${it.dataLevel || ''}; + errors = errs_${it.dataLevel || ''}; + delete data${it.dataLevel - 1 || ''}[${ it.dataPathArr[it.dataLevel] }]; - }`; + }` }, statements: true, - }); + }) } return new Ajv({ allErrors: true, verbose: true, $data: true, - }); -}; + }) +} diff --git a/packages/tina-graphql-gateway-cli/src/cmds/baseCmds.ts b/packages/tina-graphql-gateway-cli/src/cmds/baseCmds.ts index b836de44c..f34a57c01 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/baseCmds.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/baseCmds.ts @@ -11,57 +11,57 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { Command } from "../command"; -import { chain } from "../middleware"; -import { genTypes, attachSchema } from "./query-gen"; -import { audit, migrate, dump } from "./audit"; -import { startServer } from "./start-server"; -import { compile } from "./compile"; +import { Command } from '../command' +import { chain } from '../middleware' +import { genTypes, attachSchema } from './query-gen' +import { audit, migrate, dump } from './audit' +import { startServer } from './start-server' +import { compile } from './compile' -export const CMD_GEN_TYPES = "schema:types"; -export const CMD_AUDIT = "schema:audit"; -export const CMD_DUMP = "schema:dump"; -export const CMD_MIGRATE = "schema:migrate"; -export const CMD_START_SERVER = "server:start"; -export const CMD_START_PLAYGROUND = "server:playground"; -export const CMD_COMPILE_MODELS = "schema:compile"; +export const CMD_GEN_TYPES = 'schema:types' +export const CMD_AUDIT = 'schema:audit' +export const CMD_DUMP = 'schema:dump' +export const CMD_MIGRATE = 'schema:migrate' +export const CMD_START_SERVER = 'server:start' +export const CMD_START_PLAYGROUND = 'server:playground' +export const CMD_COMPILE_MODELS = 'schema:compile' const startServerPortOption = { - name: "--port ", - description: "Specify a port to run the server on. (default 4001)", -}; + name: '--port ', + description: 'Specify a port to run the server on. (default 4001)', +} const auditFixOption = { - name: "--fix", - description: "Fix errors in the .tina folder configuration", -}; + name: '--fix', + description: 'Fix errors in the .tina folder configuration', +} const schemaDumpOption = { - name: "--folder ", - description: "Dump the schema into the given path", -}; + name: '--folder ', + description: 'Dump the schema into the given path', +} const migrateDryRunOption = { - name: "--dry-run", - description: "Audit the .forestry config without migrating", -}; + name: '--dry-run', + description: 'Audit the .forestry config without migrating', +} const subCommand = { - name: "-c, --command ", - description: "The sub-command to run", -}; + name: '-c, --command ', + description: 'The sub-command to run', +} const pathOption = { - name: "--root", + name: '--root', description: - "Specify to use the .tina folder in the root of your repository for the schema", -}; + 'Specify to use the .tina folder in the root of your repository for the schema', +} export const baseCmds: Command[] = [ { command: CMD_START_SERVER, - description: "Start Filesystem Graphql Server", + description: 'Start Filesystem Graphql Server', options: [startServerPortOption, subCommand], action: (options) => chain([startServer], options), }, { command: CMD_COMPILE_MODELS, - description: "Compile schema into static files for the server", + description: 'Compile schema into static files for the server', action: (options) => chain([compile], options), }, { @@ -91,4 +91,4 @@ export const baseCmds: Command[] = [ // options: [schemaDumpOption], // action: (options) => chain([dump], options), // }, -]; +] diff --git a/packages/tina-graphql-gateway-cli/src/cmds/compile/defaultSchema.ts b/packages/tina-graphql-gateway-cli/src/cmds/compile/defaultSchema.ts index ed41d2988..ee59d3e76 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/compile/defaultSchema.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/compile/defaultSchema.ts @@ -66,4 +66,4 @@ export default defineSchema({ ], }); -`; +` diff --git a/packages/tina-graphql-gateway-cli/src/cmds/compile/index.spec.ts b/packages/tina-graphql-gateway-cli/src/cmds/compile/index.spec.ts index 4947f9ca9..6c03d2b6e 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/compile/index.spec.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/compile/index.spec.ts @@ -10,28 +10,28 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ -import { compileInner, defineSchema } from "./index"; -import _ from "lodash"; +import { compileInner, defineSchema } from './index' +import _ from 'lodash' -type Case = Parameters[0]; +type Case = Parameters[0] -const validFieldPartial: Case["collections"][0]["templates"][0]["fields"][0] = { - type: "text", - label: "Title", - name: "title", -}; -const validTemplatePartial: Case["collections"][0]["templates"][0] = { - label: "Posts", - name: "posts", +const validFieldPartial: Case['collections'][0]['templates'][0]['fields'][0] = { + type: 'text', + label: 'Title', + name: 'title', +} +const validTemplatePartial: Case['collections'][0]['templates'][0] = { + label: 'Posts', + name: 'posts', fields: [validFieldPartial], -}; -const validSectionPartial: Case["collections"][0] = { - label: "Posts", - path: "content/posts", - name: "posts", +} +const validSectionPartial: Case['collections'][0] = { + label: 'Posts', + path: 'content/posts', + name: 'posts', templates: [validTemplatePartial], -}; -const validSchema = { collections: [validSectionPartial] }; +} +const validSchema = { collections: [validSectionPartial] } const safeReplaceAt = ( object: T, path: string, @@ -42,27 +42,27 @@ const safeReplaceAt = ( { ..._.cloneDeep(object) }, path, value - ); -}; + ) +} const invalidCases: { [key: string]: Case } = { //@ts-ignore - "misspelled collection": { sectionz: [{}] }, + 'misspelled collection': { sectionz: [{}] }, // @ts-ignore - "no collection defiend": {}, - "collection with missing name": { + 'no collection defiend': {}, + 'collection with missing name': { collections: [{ ...validSectionPartial, name: undefined }], }, - "collection with missing label": { + 'collection with missing label': { collections: [{ ...validSectionPartial, label: undefined }], }, - "collection with missing path": { + 'collection with missing path': { collections: [{ ...validSectionPartial, path: undefined }], }, - "no template defined": { + 'no template defined': { collections: [{ ...validSectionPartial, templates: undefined }], }, - "template with missing name": { + 'template with missing name': { collections: [ { ...validSectionPartial, @@ -70,7 +70,7 @@ const invalidCases: { [key: string]: Case } = { }, ], }, - "template with missing label": { + 'template with missing label': { collections: [ { ...validSectionPartial, @@ -78,7 +78,7 @@ const invalidCases: { [key: string]: Case } = { }, ], }, - "template with no fields defined": { + 'template with no fields defined': { collections: [ { ...validSectionPartial, @@ -86,7 +86,7 @@ const invalidCases: { [key: string]: Case } = { }, ], }, - "template with empty fields": { + 'template with empty fields': { collections: [ { ...validSectionPartial, @@ -95,7 +95,7 @@ const invalidCases: { [key: string]: Case } = { }, ], }, - "template with a field of an invalid type": { + 'template with a field of an invalid type': { collections: [ { ...validSectionPartial, @@ -103,118 +103,118 @@ const invalidCases: { [key: string]: Case } = { { ...validTemplatePartial, // @ts-ignore - fields: [{ ...validFieldPartial, type: "some-type" }], + fields: [{ ...validFieldPartial, type: 'some-type' }], }, ], }, ], }, - "group field with no sub-fields": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'group field with no sub-fields': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "group", + type: 'group', fields: [], }), }, - "group field with invalid sub-field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'group field with invalid sub-field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "group", - fields: [{ ...validFieldPartial, type: "some-field-type" }], + type: 'group', + fields: [{ ...validFieldPartial, type: 'some-field-type' }], }), }, - "block field with invalid template": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'block field with invalid template': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "blocks", + type: 'blocks', templates: [ { - name: "cta", - label: "cta", + name: 'cta', + label: 'cta', fields: [ { - name: "title", + name: 'title', label: undefined, - type: "text", + type: 'text', }, ], }, ], }), }, - "reference field with a collection that does not exist": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'reference field with a collection that does not exist': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "reference", - collection: "abc", + type: 'reference', + collection: 'abc', }), }, -}; +} const validCases: { [key: string]: Case } = { - "valid config": { collections: [validSectionPartial] }, - "text field": { collections: [validSectionPartial] }, - "textarea field": safeReplaceAt( + 'valid config': { collections: [validSectionPartial] }, + 'text field': { collections: [validSectionPartial] }, + 'textarea field': safeReplaceAt( validSchema, - "collections[0].templates[0].fields[0].type", - "textarea" + 'collections[0].templates[0].fields[0].type', + 'textarea' ), - "select field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'select field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "select", - options: ["some-option"], + type: 'select', + options: ['some-option'], }), }, - "list field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'list field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "list", + type: 'list', }), }, - "group field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'group field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "group", + type: 'group', fields: [validFieldPartial], }), }, - "group-list field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'group-list field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "group-list", + type: 'group-list', fields: [validFieldPartial], }), }, - "block field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'block field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "blocks", + type: 'blocks', templates: [ { - name: "cta", - label: "cta", + name: 'cta', + label: 'cta', fields: [ { - name: "title", - label: "Title", - type: "text", + name: 'title', + label: 'Title', + type: 'text', }, ], }, ], }), }, - "toggle field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'toggle field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "toggle", + type: 'toggle', }), }, - "tags field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'tags field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "tags", + type: 'tags', }), }, // "image field": { @@ -223,43 +223,43 @@ const validCases: { [key: string]: Case } = { // type: "image", // }), // }, - "number field": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'number field': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "number", + type: 'number', }), }, - "reference field with a collection that exists": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'reference field with a collection that exists': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "reference", - collection: "posts", + type: 'reference', + collection: 'posts', }), }, - "reference-list field with a collection that exists": { - ...safeReplaceAt(validSchema, "collections[0].templates[0].fields[0]", { + 'reference-list field with a collection that exists': { + ...safeReplaceAt(validSchema, 'collections[0].templates[0].fields[0]', { ...validFieldPartial, - type: "reference-list", - collection: "posts", + type: 'reference-list', + collection: 'posts', }), }, -}; +} -describe("defineSchema", () => { - describe("throws an error for invalid schemas", () => { +describe('defineSchema', () => { + describe('throws an error for invalid schemas', () => { Object.keys(invalidCases).map((key, index) => { it(key, async () => { - const config = invalidCases[key]; - expect(() => defineSchema(config)).toThrowError(); - }); - }); - }); - describe("succeeds for valid schemas", () => { + const config = invalidCases[key] + expect(() => defineSchema(config)).toThrowError() + }) + }) + }) + describe('succeeds for valid schemas', () => { Object.keys(validCases).map((key, index) => { it(key, async () => { - const config = validCases[key]; - expect(() => defineSchema(config)).not.toThrowError(); - }); - }); - }); -}); + const config = validCases[key] + expect(() => defineSchema(config)).not.toThrowError() + }) + }) + }) +}) diff --git a/packages/tina-graphql-gateway-cli/src/cmds/compile/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/compile/index.ts index 0ea56a8c6..488221acd 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/compile/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/compile/index.ts @@ -11,31 +11,31 @@ See the License for the specific language governing permissions and limitations under the License. */ -import glob from "fast-glob"; -import normalize from "normalize-path"; -import path from "path"; -import fs from "fs-extra"; -import * as ts from "typescript"; -import * as jsyaml from "js-yaml"; -import * as yup from "yup"; -import * as _ from "lodash"; -import { successText, dangerText, CONFIRMATION_TEXT } from "../../utils/theme"; -import { defaultSchema } from "./defaultSchema"; - -const tinaPath = path.join(process.cwd(), ".tina"); -const tinaTempPath = path.join(process.cwd(), ".tina", "__generated__", "temp"); +import glob from 'fast-glob' +import normalize from 'normalize-path' +import path from 'path' +import fs from 'fs-extra' +import * as ts from 'typescript' +import * as jsyaml from 'js-yaml' +import * as yup from 'yup' +import * as _ from 'lodash' +import { successText, dangerText, CONFIRMATION_TEXT } from '../../utils/theme' +import { defaultSchema } from './defaultSchema' + +const tinaPath = path.join(process.cwd(), '.tina') +const tinaTempPath = path.join(process.cwd(), '.tina', '__generated__', 'temp') const tinaConfigPath = path.join( process.cwd(), - ".tina", - "__generated__", - "config" -); + '.tina', + '__generated__', + 'config' +) const transformField = async ( tinaField: TinaField, schema: TinaCloudSchema ) => { - const field = tinaField; + const field = tinaField // const field = (await yup // .object() // .shape({ @@ -59,35 +59,35 @@ const transformField = async ( // want to check the entire object, like 'options' for a select field // .validate(tinaField)) as TinaField; - if (field.type === "group") { + if (field.type === 'group') { return { ...field, - type: "field_group", + type: 'field_group', fields: await Promise.all( field.fields.map((field) => transformField(field, schema)) ), - }; + } } - if (field.type === "toggle") { + if (field.type === 'toggle') { return { ...field, - type: "boolean", - }; + type: 'boolean', + } } - if (field.type === "group-list") { + if (field.type === 'group-list') { return { ...field, - type: "field_group_list", + type: 'field_group_list', fields: await Promise.all( field.fields.map((field) => transformField(field, schema)) ), - }; + } } - if (field.type === "tags") { + if (field.type === 'tags') { return { ...field, - type: "tag_list", - }; + type: 'tag_list', + } } // if (field.type === "image") { // return { @@ -95,55 +95,55 @@ const transformField = async ( // type: "file", // }; // } - if (field.type === "reference") { + if (field.type === 'reference') { yup .object({ collection: yup .string() .oneOf(schema.collections.map((collection) => collection.name)), }) - .validate(field); + .validate(field) return { name: field.name, label: field.label, - type: "select", + type: 'select', config: { source: { - type: "pages", + type: 'pages', section: field.collection, }, }, - }; + } } - if (field.type === "reference-list") { + if (field.type === 'reference-list') { return { name: field.name, label: field.label, - type: "list", + type: 'list', config: { source: { - type: "pages", + type: 'pages', section: field.collection, }, }, - }; + } } - if (field.type === "select") { + if (field.type === 'select') { return { name: field.name, label: field.label, - type: "select", + type: 'select', config: { source: { - type: "simple", + type: 'simple', }, options: field.options, }, - }; + } } - return field; -}; + return field +} const buildTemplate = async ( definition: TinaCloudTemplate, @@ -151,29 +151,29 @@ const buildTemplate = async ( ) => { const outputYmlPath = path.resolve( path.join( - tinaTempPath.replace("temp", "config").replace(".js", ""), - path.join("front_matter/templates", `${definition.name}.yml`) + tinaTempPath.replace('temp', 'config').replace('.js', ''), + path.join('front_matter/templates', `${definition.name}.yml`) ) - ); - const output: { pages?: string[] } & typeof definition = { ...definition }; + ) + const output: { pages?: string[] } & typeof definition = { ...definition } output.fields = await Promise.all( definition.fields.map(async (field) => { - if (field.type === "blocks") { + if (field.type === 'blocks') { return { name: field.name, label: field.label, - type: "blocks", + type: 'blocks', template_types: await Promise.all( field.templates.map(async (template, index) => { - await buildTemplate(template, schema); - return template.name; + await buildTemplate(template, schema) + return template.name }) ), - }; + } } - return transformField(field, schema); + return transformField(field, schema) }) - ); + ) // Don't write twice to the filesystem // TODO: check that a compiled template matches @@ -181,160 +181,160 @@ const buildTemplate = async ( // here to ensure we're keeping things sane if (compiledTemplates.includes(output.name)) { // console.log(`already compiled template at ${outputYmlPath}, skipping`); - return true; + return true } else { - compiledTemplates.push(output.name); + compiledTemplates.push(output.name) } - const templateString = "---\n" + jsyaml.dump(output); - await fs.outputFile(outputYmlPath, templateString); - return true; -}; + const templateString = '---\n' + jsyaml.dump(output) + await fs.outputFile(outputYmlPath, templateString) + return true +} let types = [ - "text", - "datetime", - "number", - "textarea", - "tags", - "image", - "toggle", - "select", - "list", - "group", - "group-list", - "blocks", - "reference", - "reference-list", -]; - -let compiledTemplates = []; + 'text', + 'datetime', + 'number', + 'textarea', + 'tags', + 'image', + 'toggle', + 'select', + 'list', + 'group', + 'group-list', + 'blocks', + 'reference', + 'reference-list', +] + +let compiledTemplates = [] export const compile = async () => { // FIXME: This assume it is a schema.ts file if ( !fs.existsSync(tinaPath) || - !fs.existsSync(path.join(tinaPath, "schema.ts")) + !fs.existsSync(path.join(tinaPath, 'schema.ts')) ) { console.log( dangerText(` .tina/schema.ts not found, Creating one for you... See Documentation: https://tina.io/docs/tina-cloud/cli/#getting-started" `) - ); - const file = path.join(tinaPath, "schema.ts"); + ) + const file = path.join(tinaPath, 'schema.ts') // Ensure there is a .tina/schema.ts file - await fs.ensureFile(file); + await fs.ensureFile(file) // Write a basic schema to it - await fs.writeFile(file, defaultSchema); + await fs.writeFile(file, defaultSchema) } - await fs.remove(tinaTempPath); - await fs.remove(tinaConfigPath); - await transpile(tinaPath, tinaTempPath); + await fs.remove(tinaTempPath) + await fs.remove(tinaConfigPath) + await transpile(tinaPath, tinaTempPath) Object.keys(require.cache).map((key) => { if (key.startsWith(tinaTempPath)) { - delete require.cache[require.resolve(key)]; + delete require.cache[require.resolve(key)] } - }); + }) - const schemaFunc = require(path.join(tinaTempPath, "schema.js")); - const schemaObject: TinaCloudSchema = schemaFunc.default.config; - await compileInner(schemaObject); - compiledTemplates = []; -}; + const schemaFunc = require(path.join(tinaTempPath, 'schema.js')) + const schemaObject: TinaCloudSchema = schemaFunc.default.config + await compileInner(schemaObject) + compiledTemplates = [] +} const regexMessageFunc = (message) => - `Field "${message.path}" with value "${message.value}" must match ${message.regex}. For example - "my-title" is invalid, use "myTitle" or "my_title instead`; + `Field "${message.path}" with value "${message.value}" must match ${message.regex}. For example - "my-title" is invalid, use "myTitle" or "my_title instead` export const compileInner = async (schemaObject: TinaCloudSchema) => { const collections = await Promise.all( schemaObject.collections.map(async (collection) => { - const isValidPath = await fs.exists(collection.path); + const isValidPath = await fs.exists(collection.path) if (!isValidPath) { console.log( dangerText( `Collection '${collection.name}', path '${collection.path}' not found, check that path exists on your filesystem` ) - ); + ) } - return collection; + return collection }) - ); + ) const sectionOutput = { // ...schemaObject, sections: collections.map((collection) => { return { ...collection, - type: "directory", - create: "documents", - match: "**/*.md", - new_doc_ext: "md", + type: 'directory', + create: 'documents', + match: '**/*.md', + new_doc_ext: 'md', templates: collection.templates.map((template) => template.name), - }; + } }), - }; - const schemaString = "---\n" + jsyaml.dump(sectionOutput); + } + const schemaString = '---\n' + jsyaml.dump(sectionOutput) await fs.outputFile( - path.join(tinaTempPath.replace("temp", "config"), "settings.yml"), + path.join(tinaTempPath.replace('temp', 'config'), 'settings.yml'), schemaString - ); + ) await Promise.all( collections.map( async (collection) => await Promise.all( collection.templates.map(async (definition) => { - return buildTemplate(definition, schemaObject); + return buildTemplate(definition, schemaObject) }) ) ) - ); - console.log(`Tina config ======> ${successText(tinaConfigPath)}`); - await fs.remove(tinaTempPath); -}; + ) + console.log(`Tina config ======> ${successText(tinaConfigPath)}`) + await fs.remove(tinaTempPath) +} const transpile = async (projectDir, tempDir) => { // Make sure that post paths are posix (unix paths). This is necessary on windows. - const posixProjectDir = normalize(projectDir); - const posixTempDir = normalize(tempDir); + const posixProjectDir = normalize(projectDir) + const posixTempDir = normalize(tempDir) return Promise.all( glob // We will replaces \\ with / as required by docs see: https://github.com/mrmlnc/fast-glob#how-to-write-patterns-on-windows - .sync(path.join(projectDir, "**", "*.ts").replace(/\\/g, "/"), { + .sync(path.join(projectDir, '**', '*.ts').replace(/\\/g, '/'), { ignore: [ path - .join(projectDir, "__generated__", "**", "*.ts") - .replace(/\\/g, "/"), + .join(projectDir, '__generated__', '**', '*.ts') + .replace(/\\/g, '/'), ], }) .map(async function (file) { - const fullPath = path.resolve(file); + const fullPath = path.resolve(file) - const contents = await fs.readFileSync(fullPath).toString(); - const newContent = ts.transpile(contents); + const contents = await fs.readFileSync(fullPath).toString() + const newContent = ts.transpile(contents) const newPath = file .replace(posixProjectDir, posixTempDir) - .replace(".ts", ".js"); - await fs.outputFile(newPath, newContent); - return true; + .replace('.ts', '.js') + await fs.outputFile(newPath, newContent) + return true }) - ); -}; + ) +} type validationMessage = { - message: string; -}; + message: string +} class ValidationError extends Error { - public validationMessage: validationMessage; + public validationMessage: validationMessage constructor(validationMessage: validationMessage, ...params) { // Pass remaining arguments (including vendor specific ones) to parent constructor - super(...params); + super(...params) // Maintains proper stack trace for where our error was thrown (only available on V8) if (Error.captureStackTrace) { - Error.captureStackTrace(this, ValidationError); + Error.captureStackTrace(this, ValidationError) } - this.name = "ValidationError"; - this.validationMessage = validationMessage; + this.name = 'ValidationError' + this.validationMessage = validationMessage } } @@ -357,68 +357,68 @@ export const defineSchema = (config: TinaCloudSchema) => { ) .min(1, (message) => `${message.path} must have at least 1 item`) .required(), - }); - }); + }) + }) - yup.addMethod(yup.array, "oneOfSchemas", function (schemas) { - return this.test("one-of-schemas", function (items, context) { - if (typeof items === "undefined") { - return; + yup.addMethod(yup.array, 'oneOfSchemas', function (schemas) { + return this.test('one-of-schemas', function (items, context) { + if (typeof items === 'undefined') { + return } try { return items.every((item) => { return schemas.some((schema, index) => { if (schema.isValidSync(item, { strict: true })) { - return true; + return true } else { if (item.type) { const isAType = yup .string() .oneOf(types) .required() - .isValidSync(item.type, { strict: true }); + .isValidSync(item.type, { strict: true }) if (!isAType) { throw new ValidationError({ message: `at path ${ context.path } \`type\` must be one of:\n\t${types.join( - ", " + ', ' )}\nbut received \`${item.type}\``, - }); + }) } else { - const schema = schemaMap[item.type]; + const schema = schemaMap[item.type] - let error = ""; + let error = '' if (!schema) { // console.log("no schema validate", item.type); } else { try { - schema.validateSync(item); + schema.validateSync(item) } catch (e) { - error = e.errors.join("\n"); + error = e.errors.join('\n') throw new ValidationError({ message: `Not all items in ${context.path} match one of the allowed schemas:\n\t${error}`, - }); + }) } } } } - return false; + return false } - }); - }); + }) + }) } catch (e) { if (e instanceof ValidationError) { - return context.createError(e.validationMessage); + return context.createError(e.validationMessage) } else { - throw e; + throw e } } - }); - }); + }) + }) const baseSchema = yup.object({ label: yup.string().required(), @@ -429,70 +429,70 @@ export const defineSchema = (config: TinaCloudSchema) => { message: regexMessageFunc, }), description: yup.string(), - }); + }) - const TextSchema = baseSchema.label("text").shape({ + const TextSchema = baseSchema.label('text').shape({ type: yup .string() .matches(/^text$/) .required(), - }); + }) - const DateTimeSchema = baseSchema.label("datetime").shape({ + const DateTimeSchema = baseSchema.label('datetime').shape({ type: yup .string() .matches(/^datetime$/) .required(), dateFormat: yup.string().required(), timeFormat: yup.string(), - }); + }) - const ToggleSchema = baseSchema.label("toggle").shape({ + const ToggleSchema = baseSchema.label('toggle').shape({ type: yup .string() .matches(/^toggle$/) .required(), - }); + }) - const ImageSchema = baseSchema.label("image").shape({ + const ImageSchema = baseSchema.label('image').shape({ type: yup .string() .matches(/^image$/) .required(), - }); + }) - const NumberSchema = baseSchema.label("number").shape({ + const NumberSchema = baseSchema.label('number').shape({ type: yup .string() .matches(/^number$/) .required(), - }); - const TextAreaSchema = baseSchema.label("textarea").shape({ + }) + const TextAreaSchema = baseSchema.label('textarea').shape({ type: yup .string() .matches(/^textarea$/) .required(), - }); - const TagsSchema = baseSchema.label("tags").shape({ + }) + const TagsSchema = baseSchema.label('tags').shape({ type: yup .string() .matches(/^tags$/) .required(), - }); - const SelectSchema = baseSchema.label("select").shape({ + }) + const SelectSchema = baseSchema.label('select').shape({ type: yup .string() .matches(/^select$/) .required(), options: yup.array().min(1).of(yup.string()).required(), - }); - const ListSchema = baseSchema.label("list").shape({ + }) + const ListSchema = baseSchema.label('list').shape({ type: yup .string() .matches(/^list$/) .required(), - }); - const GroupSchema = baseSchema.label("group").shape({ + }) + const GroupSchema = baseSchema.label('group').shape({ type: yup .string() .matches(/^group$/) @@ -505,8 +505,8 @@ export const defineSchema = (config: TinaCloudSchema) => { .oneOfSchemas(FieldSchemas) .required() ), - }); - const GroupListSchema = baseSchema.label("group-list").shape({ + }) + const GroupListSchema = baseSchema.label('group-list').shape({ type: yup .string() .matches(/^group-list$/) @@ -519,8 +519,8 @@ export const defineSchema = (config: TinaCloudSchema) => { .oneOfSchemas(FieldSchemas) .required() ), - }); - const ReferenceSchema = baseSchema.label("reference").shape({ + }) + const ReferenceSchema = baseSchema.label('reference').shape({ type: yup .string() .matches(/^reference$/) @@ -529,8 +529,8 @@ export const defineSchema = (config: TinaCloudSchema) => { .string() .oneOf(config.collections.map((collection) => collection.name)) .required(), - }); - const ReferenceListSchema = baseSchema.label("reference-list").shape({ + }) + const ReferenceListSchema = baseSchema.label('reference-list').shape({ type: yup .string() .matches(/^reference-list$/) @@ -543,9 +543,9 @@ export const defineSchema = (config: TinaCloudSchema) => { `${message.path} must be one of the following values: ${message.values}, but instead received: ${message.value}` ) .required(), - }); + }) - const BlocksSchema = baseSchema.label("blocks").shape({ + const BlocksSchema = baseSchema.label('blocks').shape({ type: yup .string() .matches(/^blocks$/) @@ -555,9 +555,9 @@ export const defineSchema = (config: TinaCloudSchema) => { .array() .min(1, (message) => `${message.path} must have at least 1 item`) .of(TemplateSchema) - .required("templates is a required field") + .required('templates is a required field') ), - }); + }) let schemaMap = { text: TextSchema, datetime: DateTimeSchema, @@ -565,11 +565,11 @@ export const defineSchema = (config: TinaCloudSchema) => { select: SelectSchema, list: ListSchema, group: GroupSchema, - "group-list": GroupListSchema, + 'group-list': GroupListSchema, reference: ReferenceSchema, - "reference-list": ReferenceListSchema, + 'reference-list': ReferenceListSchema, blocks: BlocksSchema, - }; + } var FieldSchemas = [ TextSchema, DateTimeSchema, @@ -586,7 +586,7 @@ export const defineSchema = (config: TinaCloudSchema) => { GroupListSchema, ReferenceSchema, ReferenceListSchema, - ]; + ] const TemplateSchema = yup.object({ label: yup.string().required(), @@ -602,7 +602,7 @@ export const defineSchema = (config: TinaCloudSchema) => { // @ts-ignore custom method to mimic oneOf for objects https://github.com/jquense/yup/issues/69#issuecomment-496814887 .oneOfSchemas(FieldSchemas) .required(), - }); + }) assertShape(config, (yup) => yup.object({ collections: yup @@ -617,49 +617,49 @@ export const defineSchema = (config: TinaCloudSchema) => { .array() .min(1, (message) => `${message.path} must have at least 1 item`) .of(TemplateSchema) - .required("templates is a required field"), + .required('templates is a required field'), }) ) - .required("collections is a required field"), + .required('collections is a required field'), }) - ); - return { _definitionType: "schema", config }; -}; + ) + return { _definitionType: 'schema', config } +} export function assertShape( value: unknown, yupSchema: (args: typeof yup) => yup.AnySchema ): asserts value is T { - const shape = yupSchema(yup); + const shape = yupSchema(yup) try { - shape.validateSync(value); + shape.validateSync(value) } catch (e) { throw new Error( `There were some issues when compiling your schema:\n${dangerText( - e.errors.join("\n") + e.errors.join('\n') )}` - ); + ) } } export interface TinaCloudSchema { - collections: TinaCloudSection[]; + collections: TinaCloudSection[] } export interface TinaCloudSettings { - collections: TinaCloudSection[]; + collections: TinaCloudSection[] } interface TinaCloudSection { - path: string; - name: string; - label: string; - format?: "json" | "md"; - templates: TinaCloudTemplate[]; + path: string + name: string + label: string + format?: 'json' | 'md' + templates: TinaCloudTemplate[] } export interface TinaCloudTemplate { - label: string; - name: string; - fields: TinaField[]; + label: string + name: string + fields: TinaField[] } export type TinaField = @@ -675,76 +675,76 @@ export type TinaField = | TagsField | BlocksField | Reference - | ReferenceList; + | ReferenceList interface TinaBaseField { - name: string; - label: string; - description?: string; + name: string + label: string + description?: string } interface TextField extends TinaBaseField { - type: "text"; + type: 'text' } interface DateTimeField extends TinaBaseField { - type: "datetime"; - dateFormat: string; - timeFormat?: string; + type: 'datetime' + dateFormat: string + timeFormat?: string } interface NumberField extends TinaBaseField { - type: "number"; + type: 'number' } interface TextareaField extends TinaBaseField { - type: "textarea"; + type: 'textarea' } interface SelectField extends TinaBaseField { - type: "select"; - options: string[]; // NOTE this is possibly an object in Tina's case + type: 'select' + options: string[] // NOTE this is possibly an object in Tina's case } interface ImageField extends TinaBaseField { - type: "image"; + type: 'image' } interface GroupField extends TinaBaseField { - type: "group"; - fields: TinaField[]; + type: 'group' + fields: TinaField[] } interface GroupListField extends TinaBaseField { - type: "group-list"; - fields: TinaField[]; + type: 'group-list' + fields: TinaField[] } interface ListField extends TinaBaseField { - type: "list"; + type: 'list' field: { - component: "text" | "textarea" | "number" | "select"; - }; + component: 'text' | 'textarea' | 'number' | 'select' + } } interface ToggleField extends TinaBaseField { - type: "toggle"; + type: 'toggle' } interface TagsField extends TinaBaseField { - type: "tags"; + type: 'tags' } interface BlocksField extends TinaBaseField { - type: "blocks"; - templates: TinaCloudTemplate[]; + type: 'blocks' + templates: TinaCloudTemplate[] } interface Reference extends TinaBaseField { - type: "reference"; - collection: string; + type: 'reference' + collection: string } interface ReferenceList extends TinaBaseField { - type: "reference-list"; - collection: string; + type: 'reference-list' + collection: string } diff --git a/packages/tina-graphql-gateway-cli/src/cmds/query-gen/attachSchema.ts b/packages/tina-graphql-gateway-cli/src/cmds/query-gen/attachSchema.ts index 42b16790c..b5861fa45 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/query-gen/attachSchema.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/query-gen/attachSchema.ts @@ -11,12 +11,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { buildSchema } from "tina-graphql"; +import { buildSchema } from 'tina-graphql' export async function attachSchema(ctx: any, next: () => void, options) { - const rootPath = process.cwd(); - const schema = await buildSchema(rootPath); + const rootPath = process.cwd() + const schema = await buildSchema(rootPath) - ctx.schema = schema; - next(); + ctx.schema = schema + next() } diff --git a/packages/tina-graphql-gateway-cli/src/cmds/query-gen/genTypes.ts b/packages/tina-graphql-gateway-cli/src/cmds/query-gen/genTypes.ts index dbf9c204d..80b77fd0f 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/query-gen/genTypes.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/query-gen/genTypes.ts @@ -11,36 +11,36 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { successText } from "../../utils/theme"; -import { generateTypes } from "../../codegen"; -import { printSchema, GraphQLSchema } from "graphql"; -import fs from "fs-extra"; +import { successText } from '../../utils/theme' +import { generateTypes } from '../../codegen' +import { printSchema, GraphQLSchema } from 'graphql' +import fs from 'fs-extra' export async function genTypes( { schema }: { schema: GraphQLSchema }, next: () => void, options ) { - const typescriptTypes = await generateTypes(schema); - const typesPath = process.cwd() + "/.tina/__generated__/types.ts"; + const typescriptTypes = await generateTypes(schema) + const typesPath = process.cwd() + '/.tina/__generated__/types.ts' await fs.outputFile( typesPath, `// DO NOT MODIFY THIS FILE. This file is automatically generated by Tina ${typescriptTypes} ` - ); - console.log(`Typescript types => ${successText(typesPath)}`); + ) + console.log(`Typescript types => ${successText(typesPath)}`) - const schemaString = await printSchema(schema); - const schemaPath = process.cwd() + "/.tina/__generated__/schema.gql"; + const schemaString = await printSchema(schema) + const schemaPath = process.cwd() + '/.tina/__generated__/schema.gql' await fs.outputFile( schemaPath, `# DO NOT MODIFY THIS FILE. This file is automatically generated by Tina ${schemaString} ` - ); - console.log(`GraphQL types ====> ${successText(schemaPath)}`); - next(); + ) + console.log(`GraphQL types ====> ${successText(schemaPath)}`) + next() } diff --git a/packages/tina-graphql-gateway-cli/src/cmds/query-gen/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/query-gen/index.ts index 83e46f469..3b510933b 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/query-gen/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/query-gen/index.ts @@ -11,5 +11,5 @@ See the License for the specific language governing permissions and limitations under the License. */ -export * from "./attachSchema"; -export * from "./genTypes"; +export * from './attachSchema' +export * from './genTypes' diff --git a/packages/tina-graphql-gateway-cli/src/cmds/start-server/index.ts b/packages/tina-graphql-gateway-cli/src/cmds/start-server/index.ts index c8fb36dd1..d14d74f35 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/start-server/index.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/start-server/index.ts @@ -11,20 +11,20 @@ See the License for the specific language governing permissions and limitations under the License. */ -import childProcess from "child_process"; -import path from "path"; -import { buildSchema } from "tina-graphql"; -import { genTypes } from "../query-gen"; -import { compile } from "../compile"; -import chokidar from "chokidar"; -import { successText, dangerText } from "../../utils/theme"; +import childProcess from 'child_process' +import path from 'path' +import { buildSchema } from 'tina-graphql' +import { genTypes } from '../query-gen' +import { compile } from '../compile' +import chokidar from 'chokidar' +import { successText, dangerText } from '../../utils/theme' interface Options { - port?: number; - command?: string; + port?: number + command?: string } -const gqlPackageFile = require.resolve("tina-graphql"); +const gqlPackageFile = require.resolve('tina-graphql') export async function startServer( _ctx, @@ -32,109 +32,109 @@ export async function startServer( { port = 4001, command }: Options ) { const startSubprocess = () => { - if (typeof command === "string") { - const commands = command.split(" "); + if (typeof command === 'string') { + const commands = command.split(' ') const ps = childProcess.spawn(commands[0], [commands[1]], { - stdio: "inherit", - }); - ps.on("close", (code) => { - console.log(`child process exited with code ${code}`); - process.exit(code); - }); + stdio: 'inherit', + }) + ps.on('close', (code) => { + console.log(`child process exited with code ${code}`) + process.exit(code) + }) } - }; - let projectRoot = path.join(process.cwd()); - let ready = false; + } + let projectRoot = path.join(process.cwd()) + let ready = false if (!process.env.CI) { chokidar .watch(`${projectRoot}/**/*.ts`, { ignored: `${path.resolve(projectRoot)}/.tina/__generated__/**/*`, }) - .on("ready", async () => { + .on('ready', async () => { try { - console.log("Generating Tina config"); + console.log('Generating Tina config') console.log('Compiling...') - await compile(); + await compile() console.log('Building schema...') - const schema = await buildSchema(process.cwd()); + const schema = await buildSchema(process.cwd()) console.log('Generating types...') - await genTypes({ schema }, () => {}, {}); - ready = true; - startSubprocess(); + await genTypes({ schema }, () => {}, {}) + ready = true + startSubprocess() } catch (e) { - console.log(dangerText(`${e.message}, exiting...`)); - console.log(e); - process.exit(0); + console.log(dangerText(`${e.message}, exiting...`)) + console.log(e) + process.exit(0) } }) - .on("all", async (event, path) => { + .on('all', async (event, path) => { if (ready) { - console.log("Tina change detected, regenerating config"); + console.log('Tina change detected, regenerating config') try { - await compile(); - const schema = await buildSchema(process.cwd()); - await genTypes({ schema }, () => {}, {}); + await compile() + const schema = await buildSchema(process.cwd()) + await genTypes({ schema }, () => {}, {}) } catch (e) { console.log( dangerText( - "Compilation failed with errors, server has not been restarted" + 'Compilation failed with errors, server has not been restarted' ) - ); - console.log(e.message); + ) + console.log(e.message) } } - }); + }) } const state = { server: null, sockets: [], - }; + } - let isReady = false; + let isReady = false const start = async () => { - const s = require("./server"); - state.server = await s.default(); + const s = require('./server') + state.server = await s.default() state.server.listen(port, () => { - console.log(`Started Filesystem GraphQL server on port: ${port}`); - }); - state.server.on("connection", (socket) => { - state.sockets.push(socket); - }); - }; + console.log(`Started Filesystem GraphQL server on port: ${port}`) + }) + state.server.on('connection', (socket) => { + state.sockets.push(socket) + }) + } const restart = async () => { - console.log("Detected change to gql package, restarting..."); - delete require.cache[gqlPackageFile]; + console.log('Detected change to gql package, restarting...') + delete require.cache[gqlPackageFile] state.sockets.forEach((socket, index) => { if (socket.destroyed === false) { - socket.destroy(); + socket.destroy() } - }); - state.sockets = []; + }) + state.sockets = [] state.server.close(() => { - console.log("Server closed"); - start(); - }); - }; + console.log('Server closed') + start() + }) + } if (!process.env.CI) { chokidar .watch(gqlPackageFile) - .on("ready", async () => { - isReady = true; - start(); + .on('ready', async () => { + isReady = true + start() }) - .on("all", async () => { + .on('all', async () => { if (isReady) { - restart(); + restart() } - }); + }) } else { - console.log("Detected CI environment, omitting watch commands..."); - start(); - startSubprocess(); + console.log('Detected CI environment, omitting watch commands...') + start() + startSubprocess() } } diff --git a/packages/tina-graphql-gateway-cli/src/cmds/start-server/server.ts b/packages/tina-graphql-gateway-cli/src/cmds/start-server/server.ts index 7f3cbf875..01e21d3cf 100644 --- a/packages/tina-graphql-gateway-cli/src/cmds/start-server/server.ts +++ b/packages/tina-graphql-gateway-cli/src/cmds/start-server/server.ts @@ -11,30 +11,30 @@ See the License for the specific language governing permissions and limitations under the License. */ -import path from "path"; -import cors from "cors"; -import http from "http"; -import express from "express"; +import path from 'path' +import cors from 'cors' +import http from 'http' +import express from 'express' // @ts-ignore -import bodyParser from "body-parser"; +import bodyParser from 'body-parser' const gqlServer = async () => { // This is lazily required so we can update the module // without having to restart the server - const gqlPackage = require("tina-graphql"); - const app = express(); - const server = http.createServer(app); - app.use(cors()); - app.use(bodyParser.json()); + const gqlPackage = require('tina-graphql') + const app = express() + const server = http.createServer(app) + app.use(cors()) + app.use(bodyParser.json()) - let projectRoot = path.join(process.cwd()); + let projectRoot = path.join(process.cwd()) - app.post("/graphql", async (req, res) => { - const { query, variables } = req.body; - const result = await gqlPackage.gql({ projectRoot, query, variables }); - return res.json(result); - }); - return server; -}; + app.post('/graphql', async (req, res) => { + const { query, variables } = req.body + const result = await gqlPackage.gql({ projectRoot, query, variables }) + return res.json(result) + }) + return server +} -export default gqlServer; +export default gqlServer diff --git a/packages/tina-graphql-gateway-cli/src/codegen/index.ts b/packages/tina-graphql-gateway-cli/src/codegen/index.ts index adcba6221..d7af5bb93 100644 --- a/packages/tina-graphql-gateway-cli/src/codegen/index.ts +++ b/packages/tina-graphql-gateway-cli/src/codegen/index.ts @@ -11,15 +11,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { parse, printSchema, GraphQLSchema } from "graphql"; -import { codegen } from "@graphql-codegen/core"; -import { plugin as typescriptPlugin } from "@graphql-codegen/typescript"; -import { plugin as typescriptOperationsPlugin } from "@graphql-codegen/typescript-operations"; +import { parse, printSchema, GraphQLSchema } from 'graphql' +import { codegen } from '@graphql-codegen/core' +import { plugin as typescriptPlugin } from '@graphql-codegen/typescript' +import { plugin as typescriptOperationsPlugin } from '@graphql-codegen/typescript-operations' export const generateTypes = async (schema: GraphQLSchema) => { try { const res = await codegen({ - filename: process.cwd() + "/.forestry/autoschema.gql", + filename: process.cwd() + '/.forestry/autoschema.gql', schema: parse(printSchema(schema)), documents: [], config: {}, @@ -32,9 +32,9 @@ export const generateTypes = async (schema: GraphQLSchema) => { plugin: typescriptOperationsPlugin, }, }, - }); - return res; + }) + return res } catch (e) { - console.error(e); + console.error(e) } -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/command.ts b/packages/tina-graphql-gateway-cli/src/command.ts index f9266733f..763c02999 100644 --- a/packages/tina-graphql-gateway-cli/src/command.ts +++ b/packages/tina-graphql-gateway-cli/src/command.ts @@ -12,17 +12,17 @@ limitations under the License. */ export interface Command { - resource?: string; - command: string; - alias?: string; - description: string; - action: (...args: any[]) => void; - examples?: string; - subCommands?: Command[]; - options?: Option[]; + resource?: string + command: string + alias?: string + description: string + action: (...args: any[]) => void + examples?: string + subCommands?: Command[] + options?: Option[] } interface Option { - name: string; - description: string; + name: string + description: string } diff --git a/packages/tina-graphql-gateway-cli/src/index.ts b/packages/tina-graphql-gateway-cli/src/index.ts index 3d004eb3f..563003ebe 100644 --- a/packages/tina-graphql-gateway-cli/src/index.ts +++ b/packages/tina-graphql-gateway-cli/src/index.ts @@ -11,93 +11,92 @@ See the License for the specific language governing permissions and limitations under the License. */ -import * as commander from "commander"; +import * as commander from 'commander' //@ts-ignore -import { version } from "../package.json"; -import { Command } from "./command"; -import { baseCmds as baseCommands } from "./cmds/baseCmds"; -import { logText } from "./utils/theme"; -export { defineSchema } from "./cmds/compile"; -export type { TinaCloudTemplate, TinaCloudSettings } from "./cmds/compile"; +import { version } from '../package.json' +import { Command } from './command' +import { baseCmds as baseCommands } from './cmds/baseCmds' +import { logText } from './utils/theme' +export { defineSchema } from './cmds/compile' +export type { TinaCloudTemplate, TinaCloudSettings } from './cmds/compile' -const program = new commander.Command(); +const program = new commander.Command() const registerCommands = (commands: Command[], noHelp: boolean = false) => { commands.forEach((command, i) => { let newCmd = program .command(command.command, { noHelp }) .description(command.description) .action((...args) => { - console.log(""); - command.action(...args); - }); + console.log('') + command.action(...args) + }) if (command.alias) { - newCmd = newCmd.alias(command.alias); + newCmd = newCmd.alias(command.alias) } - newCmd.on("--help", function () { + newCmd.on('--help', function () { if (command.examples) { - console.log(`\nExamples:\n ${command.examples}`); + console.log(`\nExamples:\n ${command.examples}`) } if (command.subCommands) { - console.log("\nCommands:"); - const optionTag = " [options]"; + console.log('\nCommands:') + const optionTag = ' [options]' command.subCommands.forEach((subcommand, i) => { const commandStr = `${subcommand.command}${ - (subcommand.options || []).length ? optionTag : "" - }`; + (subcommand.options || []).length ? optionTag : '' + }` const padLength = Math.max(...command.subCommands.map((sub) => sub.command.length)) + - optionTag.length; + optionTag.length console.log( `${commandStr.padEnd(padLength)} ${subcommand.description}` - ); - }); + ) + }) } - console.log(""); - }); - - (command.options || []).forEach((option) => { - newCmd.option(option.name, option.description); - }); + console.log('') + }) + ;(command.options || []).forEach((option) => { + newCmd.option(option.name, option.description) + }) if (command.subCommands) { - registerCommands(command.subCommands, true); + registerCommands(command.subCommands, true) } - }); -}; + }) +} export async function init(args: any) { - program.version(version); + program.version(version) - const commands: Command[] = [...baseCommands]; + const commands: Command[] = [...baseCommands] - registerCommands(commands); + registerCommands(commands) - program.usage("command [options]"); + program.usage('command [options]') // error on unknown commands - program.on("command:*", function () { + program.on('command:*', function () { console.error( - "Invalid command: %s\nSee --help for a list of available commands.", - args.join(" ") - ); - process.exit(1); - }); + 'Invalid command: %s\nSee --help for a list of available commands.', + args.join(' ') + ) + process.exit(1) + }) - program.on("--help", function () { + program.on('--help', function () { console.log( logText(` You can get help on any command with "-h" or "--help". e.g: "forestry types:gen --help" `) - ); - }); + ) + }) if (!process.argv.slice(2).length) { // no subcommands - program.help(); + program.help() } - program.parse(args); + program.parse(args) } diff --git a/packages/tina-graphql-gateway-cli/src/middleware.spec.ts b/packages/tina-graphql-gateway-cli/src/middleware.spec.ts index f4fce2699..7fcedd795 100644 --- a/packages/tina-graphql-gateway-cli/src/middleware.spec.ts +++ b/packages/tina-graphql-gateway-cli/src/middleware.spec.ts @@ -11,50 +11,50 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { chain } from "./middleware"; +import { chain } from './middleware' -describe("middleware", () => { +describe('middleware', () => { beforeEach(() => { const mockExit = jest - .spyOn(process, "exit") - .mockImplementation((() => {}) as any); - }); - it("calls each cmd", async () => { - const fn1 = createMiddlewareFn(); - const fn2 = createMiddlewareFn(); + .spyOn(process, 'exit') + .mockImplementation((() => {}) as any) + }) + it('calls each cmd', async () => { + const fn1 = createMiddlewareFn() + const fn2 = createMiddlewareFn() - await chain([fn1, fn2], {}); + await chain([fn1, fn2], {}) - expect(fn1).toHaveBeenCalledTimes(1); - }); + expect(fn1).toHaveBeenCalledTimes(1) + }) - it("passes along updated ctx", async () => { + it('passes along updated ctx', async () => { const fn1 = jest.fn(async (_ctx: any, next: any, _options: any) => { - _ctx.foo = "bar"; - await next(); - }); + _ctx.foo = 'bar' + await next() + }) const fn2 = jest.fn(async (_ctx: any, next: any, _options: any) => { - expect(_ctx.foo).toEqual("bar"); - await next(); - }); + expect(_ctx.foo).toEqual('bar') + await next() + }) - await chain([fn1, fn2], {}); - }); + await chain([fn1, fn2], {}) + }) - it("stops execution when error thrown", async () => { + it('stops execution when error thrown', async () => { const fn1 = jest.fn(async () => { - throw new Error(); - }); - const fn2 = jest.fn(); + throw new Error() + }) + const fn2 = jest.fn() try { - await chain([fn1, fn2], {}); + await chain([fn1, fn2], {}) } catch {} - expect(fn2).not.toHaveBeenCalled(); - }); -}); + expect(fn2).not.toHaveBeenCalled() + }) +}) const createMiddlewareFn = (fn: any = () => {}) => jest.fn(async (_ctx: any, next: any, _options: any) => { - await next(); - }); + await next() + }) diff --git a/packages/tina-graphql-gateway-cli/src/middleware.ts b/packages/tina-graphql-gateway-cli/src/middleware.ts index 6f4dc6460..833731beb 100644 --- a/packages/tina-graphql-gateway-cli/src/middleware.ts +++ b/packages/tina-graphql-gateway-cli/src/middleware.ts @@ -11,31 +11,31 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { dangerText } from "./utils/theme"; +import { dangerText } from './utils/theme' export const chain = async ( cmds: ((ctx: any, next: any, options: any) => Promise)[], options: any ) => { - let ctx = {}; + let ctx = {} const next = async (middlewareIndex: number) => { if (middlewareIndex >= cmds.length) { - process.exit(0); + process.exit(0) } try { await cmds[middlewareIndex]( ctx, () => next(middlewareIndex + 1), options || {} - ); + ) } catch (err) { - console.error(` ${dangerText(err)}`); - process.exit(1); + console.error(` ${dangerText(err)}`) + process.exit(1) } - }; + } if (cmds.length > 0) { - await next(0); + await next(0) } -}; +} diff --git a/packages/tina-graphql-gateway-cli/src/utils/theme.ts b/packages/tina-graphql-gateway-cli/src/utils/theme.ts index 86cdeaa39..2485620aa 100644 --- a/packages/tina-graphql-gateway-cli/src/utils/theme.ts +++ b/packages/tina-graphql-gateway-cli/src/utils/theme.ts @@ -11,14 +11,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -import chalk from "chalk"; +import chalk from 'chalk' -export const successText = chalk.bold.green; -export const dangerText = chalk.bold.red; -export const neutralText = chalk.bold.cyan; -export const labelText = chalk.bold; -export const cmdText = chalk.inverse; +export const successText = chalk.bold.green +export const dangerText = chalk.bold.red +export const neutralText = chalk.bold.cyan +export const labelText = chalk.bold +export const cmdText = chalk.inverse -export const logText = chalk.italic.gray; +export const logText = chalk.italic.gray -export const CONFIRMATION_TEXT = chalk.dim("enter to confirm"); +export const CONFIRMATION_TEXT = chalk.dim('enter to confirm') diff --git a/packages/tina-graphql-gateway/app.css b/packages/tina-graphql-gateway/app.css index dbd094c48..8929cc83a 100644 --- a/packages/tina-graphql-gateway/app.css +++ b/packages/tina-graphql-gateway/app.css @@ -1,15 +1,15 @@ body { margin: 0; padding: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", - "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } code { - font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } diff --git a/packages/tina-graphql-gateway/package.json b/packages/tina-graphql-gateway/package.json index a90d1ce80..0474e8acf 100644 --- a/packages/tina-graphql-gateway/package.json +++ b/packages/tina-graphql-gateway/package.json @@ -1,6 +1,6 @@ { "name": "tina-graphql-gateway", - "version": "0.2.12", + "version": "0.2.13", "main": "dist/index.js", "files": [ "dist/*" diff --git a/packages/tina-graphql-gateway/src/auth/AuthModal.tsx b/packages/tina-graphql-gateway/src/auth/AuthModal.tsx index a66d1f07b..d1663a33e 100644 --- a/packages/tina-graphql-gateway/src/auth/AuthModal.tsx +++ b/packages/tina-graphql-gateway/src/auth/AuthModal.tsx @@ -17,19 +17,19 @@ import { ModalHeader, ModalBody, ModalActions, -} from "tinacms"; -import { StyleReset } from "@tinacms/styles"; -import React, { useCallback, useState } from "react"; -import { LoadingDots } from "@tinacms/react-forms"; -import { Button } from "@tinacms/styles"; -import styled from "styled-components"; +} from 'tinacms' +import { StyleReset } from '@tinacms/styles' +import React, { useCallback, useState } from 'react' +import { LoadingDots } from '@tinacms/react-forms' +import { Button } from '@tinacms/styles' +import styled from 'styled-components' interface ModalBuilderProps { - title: string; - message: string; - error?: string; - actions: any[]; - close(): void; + title: string + message: string + error?: string + actions: any[] + close(): void } export function ModalBuilder(modalProps: ModalBuilderProps) { @@ -50,32 +50,32 @@ export function ModalBuilder(modalProps: ModalBuilderProps) { - ); + ) } export const ErrorLabel = styled.p` color: var(--tina-color-error) !important; -`; +` interface ButtonProps { - name: string; - action(): Promise; - primary: boolean; + name: string + action(): Promise + primary: boolean } export const AsyncButton = ({ name, primary, action }: ButtonProps) => { - const [submitting, setSubmitting] = useState(false); + const [submitting, setSubmitting] = useState(false) const onClick = useCallback(async () => { - setSubmitting(true); + setSubmitting(true) try { - await action(); - setSubmitting(false); + await action() + setSubmitting(false) } catch (e) { - setSubmitting(false); - throw e; + setSubmitting(false) + throw e } - }, [action, setSubmitting]); + }, [action, setSubmitting]) return ( - ); -}; + ) +} diff --git a/packages/tina-graphql-gateway/src/auth/TinaCloudProvider.tsx b/packages/tina-graphql-gateway/src/auth/TinaCloudProvider.tsx index 67ddd91c0..ead271c2c 100644 --- a/packages/tina-graphql-gateway/src/auth/TinaCloudProvider.tsx +++ b/packages/tina-graphql-gateway/src/auth/TinaCloudProvider.tsx @@ -11,65 +11,73 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { ModalBuilder } from "./AuthModal"; -import React, { useState } from "react"; -import { TinaCMS, TinaProvider } from "tinacms"; +import { ModalBuilder } from './AuthModal' +import React, { useState } from 'react' +import { TinaCMS, TinaProvider } from 'tinacms' -import { Client } from "../client"; -import type { TokenObject } from "./authenticate"; -import { useTinaAuthRedirect } from "./useTinaAuthRedirect"; +import { Client } from '../client' +import type { TokenObject } from './authenticate' +import { useTinaAuthRedirect } from './useTinaAuthRedirect' -type ModalNames = null | "authenticate"; +type ModalNames = null | 'authenticate' function sleep(ms) { - return new Promise((resolve) => setTimeout(resolve, ms)); + return new Promise((resolve) => setTimeout(resolve, ms)) } export interface TinaCloudAuthWallProps { - cms: TinaCMS; - children: React.ReactNode; - loginScreen?: React.ReactNode; - getModalActions?:(args: {closeModal:()=>void})=> {name: string, action: () => Promise, primary: boolean}[] + cms: TinaCMS + children: React.ReactNode + loginScreen?: React.ReactNode + getModalActions?: (args: { + closeModal: () => void + }) => { name: string; action: () => Promise; primary: boolean }[] } export const AuthWallInner = ({ children, cms, loginScreen, - getModalActions + getModalActions, }: TinaCloudAuthWallProps) => { - const client: Client = cms.api.tina; + const client: Client = cms.api.tina - const [activeModal, setActiveModal] = useState(null); - const [showChildren, setShowChildren] = useState(false); + const [activeModal, setActiveModal] = useState(null) + const [showChildren, setShowChildren] = useState(false) React.useEffect(() => { client.isAuthenticated().then((isAuthenticated) => { if (isAuthenticated) { - setShowChildren(true); - cms.enable(); + setShowChildren(true) + cms.enable() } else { // FIXME: might be some sort of race-condition when loading styles sleep(500).then(() => { - setActiveModal("authenticate"); - }); + setActiveModal('authenticate') + }) } - }); - }, []); + }) + }, []) const onAuthSuccess = async (token: TokenObject) => { if (await client.isAuthenticated()) { - setShowChildren(true); - setActiveModal(null); + setShowChildren(true) + setActiveModal(null) } else { - throw new Error("No access to repo"); // TODO - display modal here + throw new Error('No access to repo') // TODO - display modal here } - }; + } - const otherModalActions = getModalActions ? getModalActions({closeModal: ()=>{setActiveModal(null)}}) : [] + const otherModalActions = getModalActions + ? getModalActions({ + closeModal: () => { + setActiveModal(null) + }, + }) + : [] return ( <> - {activeModal === "authenticate" && ( + {activeModal === 'authenticate' && ( { - const token = await client.authenticate(); - onAuthSuccess(token); + const token = await client.authenticate() + onAuthSuccess(token) }, primary: true, }, @@ -89,20 +97,20 @@ export const AuthWallInner = ({ )} {showChildren ? children : loginScreen ? loginScreen : null} - ); -}; + ) +} /** * Provides an authentication wall so Tina is not enabled without a valid user session. * * Note: this will not restrict access for local filesystem clients */ -export const TinaCloudAuthWall = (props: TinaCloudAuthWallProps ) => { - useTinaAuthRedirect(); +export const TinaCloudAuthWall = (props: TinaCloudAuthWallProps) => { + useTinaAuthRedirect() return ( - ); -}; + ) +} diff --git a/packages/tina-graphql-gateway/src/auth/authenticate.ts b/packages/tina-graphql-gateway/src/auth/authenticate.ts index 6177f508f..338364a1f 100644 --- a/packages/tina-graphql-gateway/src/auth/authenticate.ts +++ b/packages/tina-graphql-gateway/src/auth/authenticate.ts @@ -11,45 +11,45 @@ See the License for the specific language governing permissions and limitations under the License. */ -import popupWindow from "./popupWindow"; +import popupWindow from './popupWindow' -const TINA_LOGIN_EVENT = "tinaCloudLogin"; -export const AUTH_TOKEN_KEY = "tinacms-auth"; +const TINA_LOGIN_EVENT = 'tinaCloudLogin' +export const AUTH_TOKEN_KEY = 'tinacms-auth' -const BASE_TINA_URL = process.env.BASE_TINA_URL || `tina.io`; +const BASE_TINA_URL = process.env.BASE_TINA_URL || `tina.io` export type TokenObject = { - id_token: string; - access_token: string; - refresh_token: string; -}; + id_token: string + access_token: string + refresh_token: string +} export const authenticate = ( clientId: string, organizationId: string ): Promise => { return new Promise((resolve) => { // @ts-ignore - let authTab: Window | undefined; + let authTab: Window | undefined // TODO - Grab this from the URL instead of passing through localstorage - window.addEventListener("message", function (e: MessageEvent) { + window.addEventListener('message', function (e: MessageEvent) { if (e.data.source === TINA_LOGIN_EVENT) { if (authTab) { - authTab.close(); + authTab.close() } resolve({ id_token: e.data.id_token, access_token: e.data.access_token, refresh_token: e.data.refresh_token, - }); + }) } - }); + }) authTab = popupWindow( `https://${organizationId}.${BASE_TINA_URL}/signin?clientId=${clientId}`, - "_blank", + '_blank', window, 1000, 700 - ); - }); -}; + ) + }) +} diff --git a/packages/tina-graphql-gateway/src/auth/index.tsx b/packages/tina-graphql-gateway/src/auth/index.tsx index bf8478010..f6414c6fe 100644 --- a/packages/tina-graphql-gateway/src/auth/index.tsx +++ b/packages/tina-graphql-gateway/src/auth/index.tsx @@ -11,5 +11,5 @@ See the License for the specific language governing permissions and limitations under the License. */ -export * from "./TinaCloudProvider"; -export * from "./useTinaAuthRedirect"; +export * from './TinaCloudProvider' +export * from './useTinaAuthRedirect' diff --git a/packages/tina-graphql-gateway/src/auth/popupWindow.ts b/packages/tina-graphql-gateway/src/auth/popupWindow.ts index 8c4bb89cf..b6bf9ee03 100644 --- a/packages/tina-graphql-gateway/src/auth/popupWindow.ts +++ b/packages/tina-graphql-gateway/src/auth/popupWindow.ts @@ -18,20 +18,20 @@ function popupWindow( w: number, h: number ): Window { - const y = window.top.outerHeight / 2 + window.top.screenY - h / 2; - const x = window.top.outerWidth / 2 + window.top.screenX - w / 2; + const y = window.top.outerHeight / 2 + window.top.screenY - h / 2 + const x = window.top.outerWidth / 2 + window.top.screenX - w / 2 return window.open( url, title, - "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=" + + 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=' + w + - ", height=" + + ', height=' + h + - ", top=" + + ', top=' + y + - ", left=" + + ', left=' + x - ); + ) } -export default popupWindow; +export default popupWindow diff --git a/packages/tina-graphql-gateway/src/auth/useGenerator.ts b/packages/tina-graphql-gateway/src/auth/useGenerator.ts index fdfa84cb3..9ba7e1adf 100644 --- a/packages/tina-graphql-gateway/src/auth/useGenerator.ts +++ b/packages/tina-graphql-gateway/src/auth/useGenerator.ts @@ -11,39 +11,39 @@ See the License for the specific language governing permissions and limitations under the License. */ -import * as crypto from "crypto-js"; +import * as crypto from 'crypto-js' const randomString = (length: number = 40) => { - let state = ""; + let state = '' let possible = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' for (let i = 0; i < length; i++) - state += possible.charAt(Math.floor(Math.random() * possible.length)); - return state; -}; + state += possible.charAt(Math.floor(Math.random() * possible.length)) + return state +} function generateCodeVerifier() { - return randomString(128); + return randomString(128) } function base64URL(string) { - crypto.enc.Base64.stringify(string); + crypto.enc.Base64.stringify(string) return string .toString(crypto.enc.Base64) - .replace(/=/g, "") - .replace(/\+/g, "-") - .replace(/\//g, "_"); + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_') } function generateCodeChallenge(code_verifier) { - return base64URL(crypto.SHA256(code_verifier)); + return base64URL(crypto.SHA256(code_verifier)) } export const useGenerator = () => { - const codeVerifier = generateCodeVerifier(); + const codeVerifier = generateCodeVerifier() return { state: randomString(), codeChallenge: generateCodeChallenge(codeVerifier), codeVerifier, - }; -}; + } +} diff --git a/packages/tina-graphql-gateway/src/auth/useTinaAuthRedirect.tsx b/packages/tina-graphql-gateway/src/auth/useTinaAuthRedirect.tsx index 39c31eeb7..7a33f5527 100644 --- a/packages/tina-graphql-gateway/src/auth/useTinaAuthRedirect.tsx +++ b/packages/tina-graphql-gateway/src/auth/useTinaAuthRedirect.tsx @@ -11,23 +11,23 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { useEffect } from "react"; +import { useEffect } from 'react' -const TINA_AUTH_CONFIG = "tina_auth_config"; +const TINA_AUTH_CONFIG = 'tina_auth_config' export const useTinaAuthRedirect = () => { useEffect(() => { - const urlParams = new URLSearchParams(window.location.search); + const urlParams = new URLSearchParams(window.location.search) const config = { - code: urlParams.get("code") || "", - scope: urlParams.get("scope") || "email", - state: urlParams.get("state"), - }; + code: urlParams.get('code') || '', + scope: urlParams.get('scope') || 'email', + state: urlParams.get('state'), + } if (!config.code) { - return; + return } - localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config); - }, []); -}; + localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config) + }, []) +} diff --git a/packages/tina-graphql-gateway/src/client/index.ts b/packages/tina-graphql-gateway/src/client/index.ts index b8503c238..76f2509d2 100644 --- a/packages/tina-graphql-gateway/src/client/index.ts +++ b/packages/tina-graphql-gateway/src/client/index.ts @@ -11,104 +11,100 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { - AUTH_TOKEN_KEY, - TokenObject, - authenticate, -} from "../auth/authenticate"; +import { AUTH_TOKEN_KEY, TokenObject, authenticate } from '../auth/authenticate' import { DocumentNode, GraphQLSchema, buildClientSchema, getIntrospectionQuery, print, -} from "graphql"; +} from 'graphql' -import { formify } from "tina-graphql-helpers"; -import gql from "graphql-tag"; -import { transformPayload } from "./transform-payload"; +import { formify } from 'tina-graphql-helpers' +import gql from 'graphql-tag' +import { transformPayload } from './transform-payload' interface ServerOptions { - organizationId: string; - clientId: string; - branch: string; - customContentApiUrl?: string; - getTokenFn?: () => TokenObject; - tokenStorage?: "MEMORY" | "LOCAL_STORAGE" | "CUSTOM"; + organizationId: string + clientId: string + branch: string + customContentApiUrl?: string + getTokenFn?: () => TokenObject + tokenStorage?: 'MEMORY' | 'LOCAL_STORAGE' | 'CUSTOM' } -const BASE_TINA_URL = process.env.BASE_TINA_URL || `tinajs.io`; +const BASE_TINA_URL = process.env.BASE_TINA_URL || `tinajs.io` const IDENTITY_API_URL = - process.env.IDENTITY_API_OVERRIDE || `https://identity.${BASE_TINA_URL}`; + process.env.IDENTITY_API_OVERRIDE || `https://identity.${BASE_TINA_URL}` const CONTENT_API_URL = - process.env.CONTENT_API_OVERRIDE || `https://content.${BASE_TINA_URL}`; + process.env.CONTENT_API_OVERRIDE || `https://content.${BASE_TINA_URL}` export class Client { - contentApiUrl: string; - organizationId: string; - schema: GraphQLSchema; - clientId: string; - query: string; - setToken: (_token: TokenObject) => void; - private getToken: () => TokenObject; - private token: string; // used with memory storage + contentApiUrl: string + organizationId: string + schema: GraphQLSchema + clientId: string + query: string + setToken: (_token: TokenObject) => void + private getToken: () => TokenObject + private token: string // used with memory storage - constructor({ tokenStorage = "MEMORY", ...options }: ServerOptions) { - const _this = this; + constructor({ tokenStorage = 'MEMORY', ...options }: ServerOptions) { + const _this = this /** * Prevents a CORS-issue when the `branch` has slashes in it. * https://github.com/tinacms/tina-graphql-gateway/issues/219 */ - const encodedBranch = encodeURIComponent(options.branch); - (this.contentApiUrl = + const encodedBranch = encodeURIComponent(options.branch) + ;(this.contentApiUrl = options.customContentApiUrl || `${CONTENT_API_URL}/content/${options.organizationId}/${options.clientId}/github/${encodedBranch}`), // `https://content.tinajs.dev/content/${options.organizationId}/${options.clientId}/github/${encodedBranch}`), - (this.clientId = options.clientId); - this.organizationId = options.organizationId; + (this.clientId = options.clientId) + this.organizationId = options.organizationId switch (tokenStorage) { - case "LOCAL_STORAGE": + case 'LOCAL_STORAGE': this.getToken = function () { - const tokens = localStorage.getItem(AUTH_TOKEN_KEY) || null; + const tokens = localStorage.getItem(AUTH_TOKEN_KEY) || null if (tokens) { - return JSON.parse(tokens); + return JSON.parse(tokens) } else { return { access_token: null, id_token: null, refresh_token: null, - }; + } } - }; + } this.setToken = function (token) { - localStorage.setItem(AUTH_TOKEN_KEY, JSON.stringify(token, null, 2)); - }; - break; - case "MEMORY": + localStorage.setItem(AUTH_TOKEN_KEY, JSON.stringify(token, null, 2)) + } + break + case 'MEMORY': this.getToken = function () { if (_this.token) { - return JSON.parse(_this.token); + return JSON.parse(_this.token) } else { return { access_token: null, id_token: null, refresh_token: null, - }; + } } - }; + } this.setToken = function (token) { - _this.token = JSON.stringify(token, null, 2); - }; - break; - case "CUSTOM": + _this.token = JSON.stringify(token, null, 2) + } + break + case 'CUSTOM': if (!options.getTokenFn) { throw new Error( - "When CUSTOM token storage is selected, a getTokenFn must be provided" - ); + 'When CUSTOM token storage is selected, a getTokenFn must be provided' + ) } - this.getToken = options.getTokenFn; - break; + this.getToken = options.getTokenFn + break } } @@ -124,26 +120,26 @@ export class Client { } } } - }`; + }` const result = await this.request(mutation, { variables: props, - }); + }) - return result; - }; + return result + } getSchema = async () => { if (!this.schema) { const data = await this.request(getIntrospectionQuery(), { variables: {}, - }); + }) - this.schema = buildClientSchema(data); + this.schema = buildClientSchema(data) } - return this.schema; - }; + return this.schema + } prepareVariables = async ({ mutationString, @@ -151,38 +147,38 @@ export class Client { values, sys, }: { - mutationString: string; - relativePath: string; - values: object; + mutationString: string + relativePath: string + values: object sys: { - template: string; + template: string collection: { - slug: string; - }; - }; + slug: string + } + } }) => { - const schema = await this.getSchema(); + const schema = await this.getSchema() const params = transformPayload({ mutation: mutationString, values: values, sys, schema, - }); + }) return { relativePath, params, - }; - }; + } + } async requestWithForm( query: (gqlTag: typeof gql) => DocumentNode, { variables }: { variables } ) { - const schema = await this.getSchema(); - const formifiedQuery = formify(query(gql), schema); + const schema = await this.getSchema() + const formifiedQuery = formify(query(gql), schema) - return this.request(print(formifiedQuery), { variables }); + return this.request(print(formifiedQuery), { variables }) } async request( @@ -190,95 +186,94 @@ export class Client { { variables }: { variables: object } ): Promise { const res = await fetch(this.contentApiUrl, { - method: "POST", + method: 'POST', headers: { - "Content-Type": "application/json", - Authorization: "Bearer " + this.getToken().id_token, + 'Content-Type': 'application/json', + Authorization: 'Bearer ' + this.getToken().id_token, }, body: JSON.stringify({ - query: typeof query === "function" ? print(query(gql)) : query, + query: typeof query === 'function' ? print(query(gql)) : query, variables, }), - }); + }) - const json = await res.json(); + const json = await res.json() if (json.errors) { throw new Error( `Unable to fetch, errors: \n\t${json.errors .map((error) => error.message) - .join("\n")}` - ); - return json; + .join('\n')}` + ) + return json } - return json.data as ReturnType; + return json.data as ReturnType } async isAuthorized(): Promise { if (this.isLocalClient()) { - return true; + return true } - return this.isAuthenticated(); // TODO - check access + return this.isAuthenticated() // TODO - check access } isLocalClient(): boolean { - return !this.clientId; + return !this.clientId } async isAuthenticated(): Promise { if (this.isLocalClient()) { - return true; + return true } - return !!(await this.getUser()); + return !!(await this.getUser()) } async authenticate() { - const token = await authenticate(this.clientId, this.organizationId); - this.setToken(token); - return token; + const token = await authenticate(this.clientId, this.organizationId) + this.setToken(token) + return token } async getUser() { - const url = `${IDENTITY_API_URL}/realm/${this.organizationId}/${this.clientId}/currentUser`; + const url = `${IDENTITY_API_URL}/realm/${this.organizationId}/${this.clientId}/currentUser` try { const res = await fetch(url, { - method: "GET", + method: 'GET', headers: new Headers({ - Authorization: "Bearer " + this.getToken().id_token, - "Content-Type": "application/json", + Authorization: 'Bearer ' + this.getToken().id_token, + 'Content-Type': 'application/json', }), - }); - const val = await res.json(); - if (!res.status.toString().startsWith("2")) { - console.error(val.error); - return null; + }) + const val = await res.json() + if (!res.status.toString().startsWith('2')) { + console.error(val.error) + return null } - return val; + return val } catch (e) { - console.error(e); - return null; + console.error(e) + return null } } } -export { ForestryMediaStore } from "./media-store"; +export { ForestryMediaStore } from './media-store' -export const DEFAULT_LOCAL_TINA_GQL_SERVER_URL = - "http://localhost:4001/graphql"; +export const DEFAULT_LOCAL_TINA_GQL_SERVER_URL = 'http://localhost:4001/graphql' export class LocalClient extends Client { constructor(props?: { customContentApiUrl?: string }) { const clientProps = { - organizationId: "", - clientId: "", - branch: "", + organizationId: '', + clientId: '', + branch: '', customContentApiUrl: props && props.customContentApiUrl ? props.customContentApiUrl : DEFAULT_LOCAL_TINA_GQL_SERVER_URL, - }; - super(clientProps); + } + super(clientProps) } } diff --git a/packages/tina-graphql-gateway/src/client/media-store.ts b/packages/tina-graphql-gateway/src/client/media-store.ts index 959e9e55f..78e9e7b97 100644 --- a/packages/tina-graphql-gateway/src/client/media-store.ts +++ b/packages/tina-graphql-gateway/src/client/media-store.ts @@ -17,29 +17,29 @@ import { Media, MediaListOptions, MediaList, -} from "@tinacms/core"; +} from '@tinacms/core' -import type { Client } from "./index"; +import type { Client } from './index' export class ForestryMediaStore implements MediaStore { - accept = "*"; + accept = '*' constructor(private client: Client) { - this.client = client; + this.client = client } async persist(files: MediaUploadOptions[]) { - const uploaded: Media[] = []; + const uploaded: Media[] = [] - return uploaded; + return uploaded } async previewSrc(src: string) { - return src; + return src } async list(options?: MediaListOptions): Promise { - const directory = options?.directory ?? ""; - const offset = options?.offset ?? 0; - const limit = options?.limit ?? 50; + const directory = options?.directory ?? '' + const offset = options?.offset ?? 0 + const limit = options?.limit ?? 50 // console.log("get image directory list here", this.client); @@ -49,12 +49,12 @@ export class ForestryMediaStore implements MediaStore { offset: 0, limit: 10, nextOffset: nextOffset(offset, limit, 3), - }; + } } async delete(media: Media): Promise {} } export const nextOffset = (offset: number, limit: number, count: number) => { - if (offset + limit < count) return offset + limit; - return undefined; -}; + if (offset + limit < count) return offset + limit + return undefined +} diff --git a/packages/tina-graphql-gateway/src/client/transform-payload.ts b/packages/tina-graphql-gateway/src/client/transform-payload.ts index 0676451cc..5fa9fbaae 100644 --- a/packages/tina-graphql-gateway/src/client/transform-payload.ts +++ b/packages/tina-graphql-gateway/src/client/transform-payload.ts @@ -12,7 +12,7 @@ limitations under the License. */ // @ts-ignore -import { friendlyName } from "tina-graphql-helpers"; +import { friendlyName } from 'tina-graphql-helpers' import { GraphQLSchema, getNamedType, @@ -20,7 +20,7 @@ import { isScalarType, GraphQLList, parse, -} from "graphql"; +} from 'graphql' export const transformPayload = ({ mutation, @@ -28,140 +28,138 @@ export const transformPayload = ({ schema, sys, }: { - mutation: string; - values: object; - schema: GraphQLSchema; + mutation: string + values: object + schema: GraphQLSchema sys: { - template: string; + template: string collection: { - slug: string; - }; - }; + slug: string + } + } }) => { try { - const accum = {}; + const accum = {} // FIXME: this is assuming we're passing in a valid mutation with the top-level // selection being the mutation - const parsedMutation = parse(mutation); + const parsedMutation = parse(mutation) const mutationName = parsedMutation.definitions.find( (def) => - def.kind === "OperationDefinition" && def.operation === "mutation" + def.kind === 'OperationDefinition' && def.operation === 'mutation' // @ts-ignore - ).selectionSet.selections[0].name.value; - const mutationType = schema.getMutationType(); + ).selectionSet.selections[0].name.value + const mutationType = schema.getMutationType() if (!mutationType) { - throw new Error(`Expected to find mutation type in schema`); + throw new Error(`Expected to find mutation type in schema`) } - const mutationNameType = mutationType.getFields()[mutationName]; + const mutationNameType = mutationType.getFields()[mutationName] if (!mutationNameType) { - throw new Error(`Expected to find mutation type ${mutationNameType}`); + throw new Error(`Expected to find mutation type ${mutationNameType}`) } - const paramsArg = mutationNameType.args.find( - (arg) => arg.name === "params" - ); - const inputType = paramsArg.type; + const paramsArg = mutationNameType.args.find((arg) => arg.name === 'params') + const inputType = paramsArg.type if (inputType instanceof GraphQLInputObjectType) { // SectionParams is special because we need to include the seciton // and template as the 2 highest keys in the payload - if (inputType.name === "SectionParams") { + if (inputType.name === 'SectionParams') { const section = Object.values(inputType.getFields()).find((field) => { - return field.name === sys.collection.slug; - }); + return field.name === sys.collection.slug + }) if (section.type instanceof GraphQLInputObjectType) { const template = Object.values(section.type.getFields()).find( (field) => { const templateNameString = friendlyName(sys.template, { lowerCase: true, - }); - return field.name === templateNameString; + }) + return field.name === templateNameString } - ); + ) if (template) { const transformedInput = transformInputObject( values, accum, section.type - ); + ) const payload = { [section.name]: transformedInput, - }; - return payload; + } + return payload } else { throw new Error( `Unable to find matching template for ${sys.template} in collection ${sys.collection.slug}` - ); + ) } } } - return transformInputObject(values, accum, inputType); + return transformInputObject(values, accum, inputType) } else { throw new Error( `Unable to transform payload, expected param arg to by an instance of GraphQLInputObjectType` - ); + ) } } catch (e) { - console.log("oh no", e); + console.log('oh no', e) } -}; +} const transformInputObject = ( values: object, accum: { [key: string]: unknown }, payloadType: GraphQLInputObjectType ) => { - const fields = payloadType.getFields(); - const template = values["_template"]; + const fields = payloadType.getFields() + const template = values['_template'] // No template for field-group and field-group-list // so just return the value as-is if (!template) { - return values; + return values } const templateNameString = friendlyName(template, { lowerCase: true, - }); - const templateField = fields[templateNameString]; + }) + const templateField = fields[templateNameString] // FIXME: redundant? Looks like it's handled above // Field Groups don't have a _template field if (!templateField) { // FIXME: sometimes we're sending _template when it's not needed // matched by the fields we're supposed to have - return values; + return values } - const templateType = getNamedType(templateField.type); + const templateType = getNamedType(templateField.type) if (templateType instanceof GraphQLInputObjectType) { - const fieldTypes = {}; + const fieldTypes = {} Object.values(templateType.getFields()).map((field) => { - const fieldType = getNamedType(field.type); + const fieldType = getNamedType(field.type) - const valueForField = values[field.name]; + const valueForField = values[field.name] if (isScalarType(fieldType)) { - fieldTypes[field.name] = valueForField; + fieldTypes[field.name] = valueForField } else { if (field.type instanceof GraphQLList) { fieldTypes[field.name] = (valueForField || []).map((val) => { if (fieldType instanceof GraphQLInputObjectType) { - return transformInputObject(val, {}, fieldType); + return transformInputObject(val, {}, fieldType) } else { throw new Error( `Expected instance of GraphQLInputObjectType but got ${fieldType}` - ); + ) } - }); + }) } else { // Field Groups don't have a _template field - fieldTypes[field.name] = valueForField; + fieldTypes[field.name] = valueForField } } - }); - accum[templateNameString] = fieldTypes; + }) + accum[templateNameString] = fieldTypes } - return accum; -}; + return accum +} diff --git a/packages/tina-graphql-gateway/src/hooks/create-page-plugin.ts b/packages/tina-graphql-gateway/src/hooks/create-page-plugin.ts index 625291ae5..76c2b6b4b 100644 --- a/packages/tina-graphql-gateway/src/hooks/create-page-plugin.ts +++ b/packages/tina-graphql-gateway/src/hooks/create-page-plugin.ts @@ -11,52 +11,52 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { AddContentPlugin, Field, TinaCMS } from "tinacms"; +import { AddContentPlugin, Field, TinaCMS } from 'tinacms' type CollectionShape = { - label: string; - format: string; - slug: string; -}; + label: string + format: string + slug: string +} interface CreateContentButtonOptions { - label: string; - fields: any[]; - collections: CollectionShape[]; - onNewDocument: OnNewDocument; + label: string + fields: any[] + collections: CollectionShape[] + onNewDocument: OnNewDocument } type FormShape = { - collection: string; - collectionTemplate: string; - relativePath: string; -}; + collection: string + collectionTemplate: string + relativePath: string +} type PayloadShape = { - collection: string; - template: string; - relativePath: string; -}; + collection: string + template: string + relativePath: string +} export type OnNewDocument = (args: { - collection: { slug: string }; - relativePath: string; - breadcrumbs: string[]; - path: string; -}) => void; + collection: { slug: string } + relativePath: string + breadcrumbs: string[] + path: string +}) => void export class ContentCreatorPlugin implements AddContentPlugin { - __type: "content-creator" = "content-creator"; - fields: AddContentPlugin["fields"]; - onNewDocument: OnNewDocument; - name: string; - collections: CollectionShape[]; + __type: 'content-creator' = 'content-creator' + fields: AddContentPlugin['fields'] + onNewDocument: OnNewDocument + name: string + collections: CollectionShape[] constructor(options: CreateContentButtonOptions) { - this.fields = options.fields; - this.name = options.label; - this.onNewDocument = options.onNewDocument; - this.collections = options.collections; + this.fields = options.fields + this.name = options.label + this.onNewDocument = options.onNewDocument + this.collections = options.collections } async onSubmit( @@ -67,29 +67,29 @@ export class ContentCreatorPlugin implements AddContentPlugin { * Split collectionTemplate into `collection` and `template` */ const [collection, template] = collectionTemplate - ? collectionTemplate.split(".") + ? collectionTemplate.split('.') : this.fields - .find((field) => field.name === "collectionTemplate") + .find((field) => field.name === 'collectionTemplate') // @ts-ignore - FIXME: we need a way to supply an initial value https://github.com/tinacms/tinacms/issues/1715 - .options[0].value.split("."); + .options[0].value.split('.') const selectedCollection = this.collections.find( (collectionItem) => collectionItem.slug === collection - ); - const collectionFormat = selectedCollection.format; + ) + const collectionFormat = selectedCollection.format /** * Check for and ensure `.md` or `.json` is appended to the end of `relativePath` */ - const extensionLength = -1 * (collectionFormat.length + 1); - let relativePathWithExt = relativePath; + const extensionLength = -1 * (collectionFormat.length + 1) + let relativePathWithExt = relativePath if ( relativePath.slice(extensionLength).toLocaleLowerCase() === `.${collectionFormat}` ) { - relativePathWithExt = `${relativePath.slice(0, -3)}.${collectionFormat}`; + relativePathWithExt = `${relativePath.slice(0, -3)}.${collectionFormat}` } else { - relativePathWithExt = `${relativePath}.${collectionFormat}`; + relativePathWithExt = `${relativePath}.${collectionFormat}` } /** @@ -99,22 +99,22 @@ export class ContentCreatorPlugin implements AddContentPlugin { relativePath: relativePathWithExt, collection, template, - }; + } try { - const res = await cms.api.tina.addPendingContent(payload); + const res = await cms.api.tina.addPendingContent(payload) if (res.errors) { res.errors.map((e) => { - cms.alerts.error(e.message); - }); + cms.alerts.error(e.message) + }) } else { - cms.alerts.info("Document created!"); - if (typeof this.onNewDocument === "function") { - this.onNewDocument(res.addPendingDocument.sys); + cms.alerts.info('Document created!') + if (typeof this.onNewDocument === 'function') { + this.onNewDocument(res.addPendingDocument.sys) } } } catch (e) { - cms.alerts.error(e.message); + cms.alerts.error(e.message) } } } diff --git a/packages/tina-graphql-gateway/src/hooks/form-service.ts b/packages/tina-graphql-gateway/src/hooks/form-service.ts index 73e6e5de8..fe7fbb3c7 100644 --- a/packages/tina-graphql-gateway/src/hooks/form-service.ts +++ b/packages/tina-graphql-gateway/src/hooks/form-service.ts @@ -17,50 +17,50 @@ import { spawn, SpawnedActorRef, sendParent, -} from "xstate"; -import { splitQuery } from "tina-graphql-helpers"; -import { Form, TinaCMS } from "tinacms"; +} from 'xstate' +import { splitQuery } from 'tina-graphql-helpers' +import { Form, TinaCMS } from 'tinacms' -import type { Client } from "../client"; -import type { DocumentNode } from "./use-graphql-forms"; -import { fixMutators } from "./temporary-fix-mutators"; -import { formifyCallback } from "./use-graphql-forms"; +import type { Client } from '../client' +import type { DocumentNode } from './use-graphql-forms' +import { fixMutators } from './temporary-fix-mutators' +import { formifyCallback } from './use-graphql-forms' export const createFormMachine = (initialContext: { - queryFieldName: string; - queryString: string; - node: DocumentNode; - client: Client; - cms: TinaCMS; - onSubmit: (args: any) => void; - formify?: formifyCallback; + queryFieldName: string + queryString: string + node: DocumentNode + client: Client + cms: TinaCMS + onSubmit: (args: any) => void + formify?: formifyCallback }) => { - const id = initialContext.queryFieldName + "_FormService"; + const id = initialContext.queryFieldName + '_FormService' return createMachine({ id, - initial: "loading", + initial: 'loading', states: { loading: { invoke: { - id: id + "breakdownData", + id: id + 'breakdownData', src: async (context, event) => { return splitQuery({ queryString: context.queryString, schema: await context.client.getSchema(), - }); + }) }, onDone: { - target: "ready", + target: 'ready', actions: assign({ queries: (context, event) => { - return event.data.queries; + return event.data.queries }, fragments: (context, event) => { - return event.data.fragments; + return event.data.fragments }, }), }, - onError: "failure", + onError: 'failure', }, }, ready: { @@ -70,14 +70,14 @@ export const createFormMachine = (initialContext: { on: { ON_FIELD_CHANGE: { actions: sendParent((context, event) => ({ - type: "FORM_VALUE_CHANGE", + type: 'FORM_VALUE_CHANGE', pathAndValue: event.values, })), }, }, }, failure: { - entry: (c, e) => console.log("failed", e), + entry: (c, e) => console.log('failed', e), }, }, context: { @@ -93,57 +93,57 @@ export const createFormMachine = (initialContext: { onSubmit: initialContext.onSubmit, formify: initialContext.formify, }, - }); -}; + }) +} export type NodeFormContext = { - queryFieldName: string; - queryString: string; - node: DocumentNode; - cms: TinaCMS; - client: Client; - formRef: null | SpawnedActorRef; + queryFieldName: string + queryString: string + node: DocumentNode + cms: TinaCMS + client: Client + formRef: null | SpawnedActorRef queries: { [key: string]: { - query: string; - mutation: string; - fragments: string[]; - }; - } | null; - fragments: { name: string; fragment: string }[]; - error: null | string; - onSubmit: (args: any) => void; - formify: formifyCallback; -}; + query: string + mutation: string + fragments: string[] + } + } | null + fragments: { name: string; fragment: string }[] + error: null | string + onSubmit: (args: any) => void + formify: formifyCallback +} export type NodeFormEvent = { - type: "ON_FIELD_CHANGE"; - values: { path: (string | number)[]; value: unknown }; -}; + type: 'ON_FIELD_CHANGE' + values: { path: (string | number)[]; value: unknown } +} type NodeFormState = | { - value: "idle"; - context: NodeFormContext; + value: 'idle' + context: NodeFormContext } | { - value: "loading"; + value: 'loading' context: NodeFormContext & { - error: null; - }; + error: null + } } | { - value: "ready"; + value: 'ready' context: NodeFormContext & { - error: null; - }; + error: null + } } | { - value: "failure"; + value: 'failure' context: NodeFormContext & { - error: string; - }; - }; + error: string + } + } const buildFields = ({ parentPath, @@ -151,25 +151,25 @@ const buildFields = ({ context, callback, }: { - parentPath: string[]; - form: Pick; - context: NodeFormContext; - callback: (args: NodeFormEvent) => void; + parentPath: string[] + form: Pick + context: NodeFormContext + callback: (args: NodeFormEvent) => void }) => { // @ts-ignore FIXME: gotta do a type assertion here return form.fields.map((field) => { // Group List and Group - if (field.component === "group" || field.component === "group-list") { + if (field.component === 'group' || field.component === 'group-list') { field.fields = buildFields({ parentPath: parentPath, form: field, context, callback, - }); + }) } // List - if (field.component === "list") { + if (field.component === 'list') { field.field = { ...field.field, parse: buildParseFunction({ @@ -178,12 +178,12 @@ const buildFields = ({ context, field: field.field, }), - }; + } } // Blocks - if (field.component === "blocks") { - const templateKeys = Object.keys(field.templates); + if (field.component === 'blocks') { + const templateKeys = Object.keys(field.templates) Object.values(field.templates).map((template, index) => { field.templates[templateKeys[index]].fields = buildFields({ parentPath, @@ -191,16 +191,16 @@ const buildFields = ({ // @ts-ignore FIXME: gotta do a type assertion here form: template, callback, - }); - }); + }) + }) } return { ...field, parse: buildParseFunction({ parentPath, context, field, callback }), - }; - }); -}; + } + }) +} const buildParseFunction = ({ parentPath, @@ -208,35 +208,35 @@ const buildParseFunction = ({ field, callback, }: { - parentPath; - context: NodeFormContext; - field; - callback; + parentPath + context: NodeFormContext + field + callback }) => { return (value, name) => { // Remove indexes in path, ex. "data.0.blocks.2.author" -> "data.blocks.author" - const queryPath = [...parentPath, ...name.split(".")] + const queryPath = [...parentPath, ...name.split('.')] .filter((item) => { - return isNaN(parseInt(item)); + return isNaN(parseInt(item)) }) - .join("."); + .join('.') - if (field.component === "select" && context.queries[queryPath]) { - const queryObj = context.queries[queryPath]; - const frags = []; - let uniqueFragments = [...new Set(queryObj.fragments)]; + if (field.component === 'select' && context.queries[queryPath]) { + const queryObj = context.queries[queryPath] + const frags = [] + let uniqueFragments = [...new Set(queryObj.fragments)] uniqueFragments.forEach((fragment) => { frags.push( context.fragments.find((fr) => fr.name === fragment).fragment - ); - }); + ) + }) // Setting back to empty string should not trigger a fetch if (!value) { - return; + return } context.client .request( - `${frags.join("\n")} + `${frags.join('\n')} ${queryObj.query}`, { variables: { @@ -246,35 +246,35 @@ ${queryObj.query}`, ) .then((res) => { callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [...parentPath, ...name.split(".")], + path: [...parentPath, ...name.split('.')], value: Object.values(res)[0], }, - }); - }); + }) + }) } else { callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [...parentPath, ...name.split(".")], + path: [...parentPath, ...name.split('.')], value, }, - }); + }) } - return value; - }; -}; + return value + } +} const formCallback = (context: NodeFormContext) => (callback, receive) => { - const path = [context.queryFieldName, "data"]; + const path = [context.queryFieldName, 'data'] const fields = buildFields({ parentPath: path, context, // @ts-ignore FIXME: Pick< isn't working properly for some reason form: context.node.form, callback, - }); + }) const formConfig = { id: context.queryFieldName, @@ -282,63 +282,63 @@ const formCallback = (context: NodeFormContext) => (callback, receive) => { fields, reset: () => { callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [context.queryFieldName, "data"], + path: [context.queryFieldName, 'data'], value: context.node.initialData, }, - }); + }) }, initialValues: context.node.values, onSubmit: async (values) => { - const queryForMutation = context.queries[context.queryFieldName]; - const mutation = queryForMutation.mutation; + const queryForMutation = context.queries[context.queryFieldName] + const mutation = queryForMutation.mutation - const frags = []; - let uniqueFragments = [...new Set(queryForMutation.fragments)]; + const frags = [] + let uniqueFragments = [...new Set(queryForMutation.fragments)] uniqueFragments.forEach((fragment) => { frags.push( context.fragments.find((fr) => fr.name === fragment).fragment - ); - }); + ) + }) try { await context.onSubmit({ - mutationString: `${frags.join("\n")} + mutationString: `${frags.join('\n')} ${mutation} `, relativePath: context.node._internalSys.relativePath, values: values, sys: context.node._internalSys, - }); - context.cms.alerts.info("Document saved!"); + }) + context.cms.alerts.info('Document saved!') } catch (e) { - context.cms.alerts.info(e.message); + context.cms.alerts.info(e.message) } }, - }; + } const createForm = (formConfig) => { - const form = new Form(formConfig); - context.cms.plugins.add(form); - return form; - }; + const form = new Form(formConfig) + context.cms.plugins.add(form) + return form + } - let form; - let skipped = false; + let form + let skipped = false const skip = () => { - skipped = true; - }; + skipped = true + } if (context.formify) { - form = context.formify({ formConfig, createForm, skip }); + form = context.formify({ formConfig, createForm, skip }) } else { - form = createForm(formConfig); + form = createForm(formConfig) } - if (skipped) return; + if (skipped) return if (!(form instanceof Form)) { - throw new Error("formify must return a form or skip()"); + throw new Error('formify must return a form or skip()') } /** @@ -347,21 +347,21 @@ ${mutation} * https://github.com/tinacms/tinacms/issues/1669 is resolved * */ - fixMutators({ context, form, callback }); + fixMutators({ context, form, callback }) form.subscribe( (all) => { // Sync form value changes to value key callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [context.queryFieldName, "values"], + path: [context.queryFieldName, 'values'], value: all.values, }, - }); + }) }, { values: true } - ); + ) - return () => context.cms.plugins.remove(form); -}; + return () => context.cms.plugins.remove(form) +} diff --git a/packages/tina-graphql-gateway/src/hooks/temporary-fix-mutators.ts b/packages/tina-graphql-gateway/src/hooks/temporary-fix-mutators.ts index f104dbcfa..f3ef00a56 100644 --- a/packages/tina-graphql-gateway/src/hooks/temporary-fix-mutators.ts +++ b/packages/tina-graphql-gateway/src/hooks/temporary-fix-mutators.ts @@ -11,22 +11,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -import finalFormArrays from "final-form-arrays"; -import { getIn, setIn } from "final-form"; -import type { NodeFormEvent, NodeFormContext } from "./form-service"; -import type { Form } from "tinacms"; +import finalFormArrays from 'final-form-arrays' +import { getIn, setIn } from 'final-form' +import type { NodeFormEvent, NodeFormContext } from './form-service' +import type { Form } from 'tinacms' export const fixMutators = (args: { - context: NodeFormContext; - callback: (args: NodeFormEvent) => void; + context: NodeFormContext + callback: (args: NodeFormEvent) => void form: Form< { - [x: string]: any; + [x: string]: any }, any - >; + > }) => { - const { form, context, callback } = args; + const { form, context, callback } = args /** * @@ -44,67 +44,71 @@ export const fixMutators = (args: { * */ const changeValue = (state, name, mutate) => { - const before = getIn(state.formState.values, name); - const after = mutate(before); - state.formState.values = setIn(state.formState.values, name, after) || {}; - }; + const before = getIn(state.formState.values, name) + const after = mutate(before) + state.formState.values = setIn(state.formState.values, name, after) || {} + } - const { move: moveCopy, remove: removeCopy, insert: insertCopy } = { + const { + move: moveCopy, + remove: removeCopy, + insert: insertCopy, + } = { ...form.finalForm.mutators, - }; + } form.finalForm.mutators.move = (name, from, to) => { - const dataValue = getIn(context.node.data, name); + const dataValue = getIn(context.node.data, name) let state = { formState: { values: { fakeValue: dataValue } }, - }; + } try { // @ts-ignore state is expecting the full final-form state, but we don't need it - finalFormArrays.move(["fakeValue", from, to], state, { changeValue }); + finalFormArrays.move(['fakeValue', from, to], state, { changeValue }) // FIXME: this throws an error, probably because of "state" but the mutation works :shrug: } catch (e) { callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [context.queryFieldName, "data", ...name.split(".")], + path: [context.queryFieldName, 'data', ...name.split('.')], value: state.formState.values.fakeValue, }, - }); + }) } // Return the copy like nothing ever happened - return moveCopy(name, from, to); - }; + return moveCopy(name, from, to) + } form.finalForm.mutators.remove = (name, index) => { - const dataValue = getIn(context.node.data, name); + const dataValue = getIn(context.node.data, name) let state = { formState: { values: { fakeValue: dataValue } }, - }; + } try { // @ts-ignore state is expecting the full final-form state, but we don't need it - finalFormArrays.remove(["fakeValue", index], state, { changeValue }); + finalFormArrays.remove(['fakeValue', index], state, { changeValue }) // FIXME: this throws an error, probably because of "state" but the mutation works :shrug: } catch (e) { callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [context.queryFieldName, "data", ...name.split(".")], + path: [context.queryFieldName, 'data', ...name.split('.')], value: state.formState.values.fakeValue, }, - }); + }) } // Return the copy like nothing ever happened - return removeCopy(name, index); - }; + return removeCopy(name, index) + } form.finalForm.mutators.insert = (name, index, item) => { - const dataValue = getIn(context.node.data, name); + const dataValue = getIn(context.node.data, name) let state = { formState: { values: { fakeValue: dataValue } }, - }; + } try { - let newItem = item; + let newItem = item // FIXME: this is a pretty rough translation, not sure if "_Data" would be present in all cases // This should be abstracted in to graphql-helpers so we can commonize these transforms if (item._template) { @@ -112,8 +116,8 @@ export const fixMutators = (args: { __typename: item._template.charAt(0).toUpperCase() + item._template.slice(1) + - "_Data", - }; + '_Data', + } } else { // if item is -> {}, the real insertCopy doesn't set up the event listeners properly // so inputs within the added field won't work for some reason @@ -122,29 +126,29 @@ export const fixMutators = (args: { Object.keys(item).length === 0 && item.constructor === Object ) { - item = null; + item = null } } finalFormArrays.insert( - ["fakeValue", index, newItem], + ['fakeValue', index, newItem], // @ts-ignore state is expecting the full final-form state, but we don't need it state, { changeValue, } - ); + ) // FIXME: this throws an error, probably because of "state" but the mutation works :shrug: } catch (e) { callback({ - type: "ON_FIELD_CHANGE", + type: 'ON_FIELD_CHANGE', values: { - path: [context.queryFieldName, "data", ...name.split(".")], + path: [context.queryFieldName, 'data', ...name.split('.')], value: state.formState.values.fakeValue, }, - }); + }) } // Return the copy like nothing ever happened - return insertCopy(name, index, item); - }; -}; + return insertCopy(name, index, item) + } +} diff --git a/packages/tina-graphql-gateway/src/hooks/use-graphql-forms.ts b/packages/tina-graphql-gateway/src/hooks/use-graphql-forms.ts index b093be690..f5d0a9deb 100644 --- a/packages/tina-graphql-gateway/src/hooks/use-graphql-forms.ts +++ b/packages/tina-graphql-gateway/src/hooks/use-graphql-forms.ts @@ -11,79 +11,79 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React from "react"; -import { useCMS } from "tinacms"; -import type { TinaCMS, Form, FormOptions } from "tinacms"; -import { createFormMachine } from "./form-service"; -import { createMachine, spawn, StateSchema, assign } from "xstate"; -import { useMachine } from "@xstate/react"; -import { ContentCreatorPlugin, OnNewDocument } from "./create-page-plugin"; -import gql from "graphql-tag"; -import { print } from "graphql"; -import type { DocumentNode as GqlDocumentNode } from "graphql"; -import { setIn } from "final-form"; +import React from 'react' +import { useCMS } from 'tinacms' +import type { TinaCMS, Form, FormOptions } from 'tinacms' +import { createFormMachine } from './form-service' +import { createMachine, spawn, StateSchema, assign } from 'xstate' +import { useMachine } from '@xstate/react' +import { ContentCreatorPlugin, OnNewDocument } from './create-page-plugin' +import gql from 'graphql-tag' +import { print } from 'graphql' +import type { DocumentNode as GqlDocumentNode } from 'graphql' +import { setIn } from 'final-form' export interface FormifyArgs { - formConfig: FormOptions; - createForm: (formConfig: FormOptions) => Form; - skip?: () => void; + formConfig: FormOptions + createForm: (formConfig: FormOptions) => Form + skip?: () => void } -export type formifyCallback = (args: FormifyArgs) => Form | void; +export type formifyCallback = (args: FormifyArgs) => Form | void interface FormsMachineSchemaType extends StateSchema { states: { - initializing; - inactive; - active; - }; + initializing + inactive + active + } } -export type toggleMachineStateValue = keyof FormsMachineSchemaType["states"]; +export type toggleMachineStateValue = keyof FormsMachineSchemaType['states'] type FormsState = | { - value: "inactive"; - context: FormsContext; + value: 'inactive' + context: FormsContext } | { - value: "active"; - context: FormsContext; - }; + value: 'active' + context: FormsContext + } type FormsEvent = | { - type: "RETRY"; - value: { payload: object; queryString: string }; + type: 'RETRY' + value: { payload: object; queryString: string } } | { - type: "FORM_VALUE_CHANGE"; - pathAndValue: any; - }; + type: 'FORM_VALUE_CHANGE' + pathAndValue: any + } interface FormsContext { - payload: object; - formRefs: object; - cms: TinaCMS; - queryString: string; - onSubmit?: (args: { mutationString: string; variables: object }) => void; - formify: formifyCallback; + payload: object + formRefs: object + cms: TinaCMS + queryString: string + onSubmit?: (args: { mutationString: string; variables: object }) => void + formify: formifyCallback } const formsMachine = createMachine({ - id: "forms", - initial: "inactive", + id: 'forms', + initial: 'inactive', states: { inactive: { on: { RETRY: { - target: "initializing", + target: 'initializing', actions: assign({ payload: (context, event) => { - return event.value.payload; + return event.value.payload }, queryString: (context, event) => { - return event.value.queryString; + return event.value.queryString }, }), }, @@ -91,13 +91,13 @@ const formsMachine = createMachine({ }, initializing: { always: { - target: "active", + target: 'active', actions: assign({ formRefs: (context, event) => { - const accum = {}; - const keys = Object.keys(context.payload); + const accum = {} + const keys = Object.keys(context.payload) Object.values(context.payload).forEach((item, index) => { - if (!item.form) return; + if (!item.form) return accum[keys[index]] = spawn( createFormMachine({ client: context.cms.api.tina, @@ -113,9 +113,9 @@ const formsMachine = createMachine({ formify: context.formify, }), `form-${keys[index]}` - ); - }); - return accum; + ) + }) + return accum }, }), }, @@ -131,40 +131,40 @@ const formsMachine = createMachine({ // which should be populated return setIn( context.payload, - event.pathAndValue.path.join("."), + event.pathAndValue.path.join('.'), event.pathAndValue.value - ); + ) }, }), }, RETRY: { - target: "initializing", + target: 'initializing', actions: assign({ payload: (context, event) => { - return event.value.payload; + return event.value.payload }, queryString: (context, event) => { - return event.value.queryString; + return event.value.queryString }, }), }, }, }, }, -}); +}) export type FilterCollections = ( options: { - label: string; - value: string; + label: string + value: string }[] -) => { label: string; value: string }[]; +) => { label: string; value: string }[] export const useDocumentCreatorPlugin = ( onNewDocument?: OnNewDocument, filterCollections?: FilterCollections ) => { - const cms = useCMS(); + const cms = useCMS() React.useEffect(() => { const run = async () => { const res = await cms.api.tina.request( @@ -178,26 +178,26 @@ export const useDocumentCreatorPlugin = ( } `, { variables: {} } - ); + ) - const emptyOption = { value: "", label: "Choose Collection" }; - const options: { label: string; value: string }[] = []; + const emptyOption = { value: '', label: 'Choose Collection' } + const options: { label: string; value: string }[] = [] res.getCollections.forEach((collection) => { - const value = collection.slug; - const label = `${collection.label}`; - options.push({ value, label }); - }); - - if (filterCollections && typeof filterCollections === "function") { - const filtered = filterCollections(options); - return [emptyOption, ...filtered]; + const value = collection.slug + const label = `${collection.label}` + options.push({ value, label }) + }) + + if (filterCollections && typeof filterCollections === 'function') { + const filtered = filterCollections(options) + return [emptyOption, ...filtered] } - const collectionOptions = [emptyOption, ...options]; + const collectionOptions = [emptyOption, ...options] const getCollectionTemplateOptions = async (collection: String) => { if (!collection) { - return []; + return [] } const res = await cms.api.tina.request( (gql) => gql` @@ -208,15 +208,15 @@ export const useDocumentCreatorPlugin = ( } `, { variables: { collection } } - ); - const options = [{ value: "", label: "Choose Template" }]; + ) + const options = [{ value: '', label: 'Choose Template' }] res.getCollection?.templates?.forEach((template) => { - const value = `${collection}.${template}`; - const label = `${template}`; - options.push({ value, label }); - }); - return options; - }; + const value = `${collection}.${template}` + const label = `${template}` + options.push({ value, label }) + }) + return options + } cms.plugins.add( new ContentCreatorPlugin({ @@ -224,22 +224,22 @@ export const useDocumentCreatorPlugin = ( collections: res.getCollections, fields: [ { - component: "select", - name: "collection", - label: "Collection", - description: "Select the collection.", + component: 'select', + name: 'collection', + label: 'Collection', + description: 'Select the collection.', options: collectionOptions, validate: async (value: any) => { if (!value) { - return "Required"; + return 'Required' } }, }, { - component: "select", - name: "collectionTemplate", - label: "Template", - description: "Select the template.", + component: 'select', + name: 'collectionTemplate', + label: 'Template', + description: 'Select the template.', options: [], validate: async ( value: any, @@ -247,39 +247,37 @@ export const useDocumentCreatorPlugin = ( meta: any, field: any ) => { - const collection = allValues?.collection; + const collection = allValues?.collection const previousCollection = value - ? value.split(".")[0] - : undefined; + ? value.split('.')[0] + : undefined if (!collection) { - field.options = []; - meta.change(""); - return "Required"; + field.options = [] + meta.change('') + return 'Required' } if (collection !== previousCollection) { - field.options = await getCollectionTemplateOptions( - collection - ); - meta.change(""); - return "Required"; + field.options = await getCollectionTemplateOptions(collection) + meta.change('') + return 'Required' } if (!value) { - return "Required"; + return 'Required' } }, }, { - component: "text", - name: "relativePath", - label: "Name", + component: 'text', + name: 'relativePath', + label: 'Name', description: `A unique name for the content. Example: "newPost" or "blog_022021`, - placeholder: "newPost", + placeholder: 'newPost', validate: (value: any) => { if (!value) { - return "Required"; + return 'Required' } /** @@ -287,33 +285,33 @@ export const useDocumentCreatorPlugin = ( * https://github.com/tinacms/tina-graphql-gateway/blob/682e2ed54c51520d1a87fac2887950839892f465/packages/tina-graphql-gateway-cli/src/cmds/compile/index.ts#L296 * */ - const isValid = /^[_a-zA-Z][_a-zA-Z0-9]*$/.test(value); + const isValid = /^[_a-zA-Z][_a-zA-Z0-9]*$/.test(value) if (value && !isValid) { - return "Must begin with a-z, A-Z, or _ and contain only a-z, A-Z, 0-9, or _"; + return 'Must begin with a-z, A-Z, or _ and contain only a-z, A-Z, 0-9, or _' } }, }, ], - label: "Add Document", + label: 'Add Document', }) - ); - }; + ) + } - run(); - }, [cms]); -}; + run() + }, [cms]) +} function useRegisterFormsAndSyncPayload({ queryString, onSubmit, formify, }: { - queryString: string; - onSubmit?: (args: { queryString: string; variables: object }) => void; - formify?: formifyCallback; + queryString: string + onSubmit?: (args: { queryString: string; variables: object }) => void + formify?: formifyCallback }) { - const cms = useCMS(); - const [tinaForms, setTinaForms] = React.useState([]); + const cms = useCMS() + const [tinaForms, setTinaForms] = React.useState([]) const [machineState, send, service] = useMachine(formsMachine, { context: { @@ -322,7 +320,7 @@ function useRegisterFormsAndSyncPayload({ queryString, formify, onSubmit: async (values) => { - const variables = await cms.api.tina.prepareVariables(values); + const variables = await cms.api.tina.prepareVariables(values) return onSubmit ? onSubmit({ queryString: values.mutationString, @@ -332,35 +330,35 @@ function useRegisterFormsAndSyncPayload({ .request(values.mutationString, { variables }) .then((res) => { if (res.errors) { - console.error(res); - cms.alerts.error("Unable to update document"); + console.error(res) + cms.alerts.error('Unable to update document') } - }); + }) }, }, - }); + }) React.useEffect(() => { const subscription = service.subscribe((state) => { - if (state.matches("active")) { - const formIds = Object.keys(state.context.formRefs); + if (state.matches('active')) { + const formIds = Object.keys(state.context.formRefs) const forms = state.context.cms.plugins - .all("form") + .all('form') .map((formPlugin) => { if (formIds.includes(formPlugin.name)) { - return formPlugin; + return formPlugin } else { - return false; + return false } }) - .filter(Boolean); + .filter(Boolean) - setTinaForms(forms); + setTinaForms(forms) } - }); + }) - return subscription.unsubscribe; - }, [service, setTinaForms]); // note: service should never change + return subscription.unsubscribe + }, [service, setTinaForms]) // note: service should never change return { data: { @@ -368,10 +366,10 @@ function useRegisterFormsAndSyncPayload({ tinaForms, }, retry: (payload, queryString) => { - send({ type: "RETRY", value: { payload, queryString } }); + send({ type: 'RETRY', value: { payload, queryString } }) }, - ready: machineState.matches("active"), - }; + ready: machineState.matches('active'), + } } export function useGraphqlForms({ @@ -380,64 +378,64 @@ export function useGraphqlForms({ onSubmit, formify = null, }: { - query: (gqlTag: typeof gql) => GqlDocumentNode; - variables: object; - onSubmit?: (args: { queryString: string; variables: object }) => void; - formify?: formifyCallback; + query: (gqlTag: typeof gql) => GqlDocumentNode + variables: object + onSubmit?: (args: { queryString: string; variables: object }) => void + formify?: formifyCallback }): [T, Boolean] { - const cms = useCMS(); + const cms = useCMS() - const queryString = print(query(gql)); + const queryString = print(query(gql)) const { data, retry, ready } = useRegisterFormsAndSyncPayload({ queryString, onSubmit, formify, - }); + }) React.useEffect(() => { cms.api.tina .requestWithForm(query, { variables }) .then((payload) => { - retry(payload, queryString); + retry(payload, queryString) }) .catch((e) => { - console.error(e); - }); - }, [queryString]); + console.error(e) + }) + }, [queryString]) // @ts-ignore - return [data.payload, !ready]; + return [data.payload, !ready] } type Field = { - __typename: string; - name: string; - label: string; - component: string; -}; + __typename: string + name: string + label: string + component: string +} export type DocumentNode = { // id: string; _internalSys: { - filename: string; - relativePath: string; - basename: string; - path: string; - }; + filename: string + relativePath: string + basename: string + path: string + } form: { - __typename: string; - fields: Field[]; - label: string; - name: string; - }; + __typename: string + fields: Field[] + label: string + name: string + } values: { - [key: string]: string | string[] | object | object[]; - }; + [key: string]: string | string[] | object | object[] + } data: { - [key: string]: string | string[] | object | object[]; - }; + [key: string]: string | string[] | object | object[] + } initialData: { - [key: string]: string | string[] | object | object[]; - }; -}; + [key: string]: string | string[] | object | object[] + } +} diff --git a/packages/tina-graphql-gateway/src/index.ts b/packages/tina-graphql-gateway/src/index.ts index 5aa9d79ca..1e72dc1d8 100644 --- a/packages/tina-graphql-gateway/src/index.ts +++ b/packages/tina-graphql-gateway/src/index.ts @@ -11,9 +11,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -export * from "./client"; -export * from "./auth"; -export * from "./hooks/use-graphql-forms"; +export * from './client' +export * from './auth' +export * from './hooks/use-graphql-forms' /** * A passthru function which allows editors @@ -21,6 +21,6 @@ export * from "./hooks/use-graphql-forms"; * query or muation */ function graphql(strings: TemplateStringsArray) { - return strings[0]; + return strings[0] } -export { graphql }; +export { graphql } diff --git a/packages/tina-graphql-helpers/create.jest.config.js b/packages/tina-graphql-helpers/create.jest.config.js index e1e41e6cf..fc5bc55fc 100644 --- a/packages/tina-graphql-helpers/create.jest.config.js +++ b/packages/tina-graphql-helpers/create.jest.config.js @@ -15,17 +15,17 @@ module.exports = function createJestConfig(pack) { return { verbose: true, transform: { - ".(ts|tsx)": "ts-jest", + '.(ts|tsx)': 'ts-jest', }, - testRegex: "(\\.spec)\\.(ts|tsx|js)$", - modulePaths: ["/src/", "/node_modules/"], - moduleFileExtensions: ["ts", "tsx", "js"], + testRegex: '(\\.spec)\\.(ts|tsx|js)$', + modulePaths: ['/src/', '/node_modules/'], + moduleFileExtensions: ['ts', 'tsx', 'js'], displayName: pack.name, name: pack.name, moduleNameMapper: { - "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": - "/../../__mocks__/fileMock.js", - "\\.(css|scss)$": "identity-obj-proxy", + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/../../__mocks__/fileMock.js', + '\\.(css|scss)$': 'identity-obj-proxy', }, - }; -}; + } +} diff --git a/packages/tina-graphql-helpers/jest.config.js b/packages/tina-graphql-helpers/jest.config.js index 6dd541cee..5e9dbe470 100644 --- a/packages/tina-graphql-helpers/jest.config.js +++ b/packages/tina-graphql-helpers/jest.config.js @@ -11,7 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -const createJestConfig = require("./create.jest.config.js"); -const pack = require("./package"); +const createJestConfig = require('./create.jest.config.js') +const pack = require('./package') -module.exports = createJestConfig(pack); +module.exports = createJestConfig(pack) diff --git a/packages/tina-graphql-helpers/package.json b/packages/tina-graphql-helpers/package.json index e38a5e87d..2f7c9adc9 100644 --- a/packages/tina-graphql-helpers/package.json +++ b/packages/tina-graphql-helpers/package.json @@ -1,6 +1,6 @@ { "name": "tina-graphql-helpers", - "version": "0.0.21", + "version": "0.0.22", "main": "dist/index.js", "files": [ "dist/*" diff --git a/packages/tina-graphql-helpers/src/dummy-generators.ts b/packages/tina-graphql-helpers/src/dummy-generators.ts index 64d76a4bd..dc7e3ed77 100644 --- a/packages/tina-graphql-helpers/src/dummy-generators.ts +++ b/packages/tina-graphql-helpers/src/dummy-generators.ts @@ -16,9 +16,9 @@ import { DocumentNode, getNamedType, GraphQLObjectType, -} from "graphql"; -import { friendlyName } from "./util"; -import { buildSelectionsFields } from "./queryBuilder"; +} from 'graphql' +import { friendlyName } from './util' +import { buildSelectionsFields } from './queryBuilder' /** * @@ -29,98 +29,98 @@ export const queryGenerator = ( variables: { relativePath: string; collection: string }, schema: GraphQLSchema ): DocumentNode => { - const t = schema.getQueryType(); - const queryFields = t?.getFields(); + const t = schema.getQueryType() + const queryFields = t?.getFields() if (queryFields) { - const queryName = `get${friendlyName(variables.collection)}Document`; - const queryField = queryFields[queryName]; + const queryName = `get${friendlyName(variables.collection)}Document` + const queryField = queryFields[queryName] - const returnType = getNamedType(queryField.type); + const returnType = getNamedType(queryField.type) if (returnType instanceof GraphQLObjectType) { - let depth = 0; + let depth = 0 const fields = buildSelectionsFields( Object.values(returnType.getFields()).filter( - (field) => field.name === "data" + (field) => field.name === 'data' ), (fields) => { const filteredFieldsList = [ - "sys", - "__typename", - "template", - "html", - "form", - "values", - "markdownAst", - ]; - depth = depth + 1; + 'sys', + '__typename', + 'template', + 'html', + 'form', + 'values', + 'markdownAst', + ] + depth = depth + 1 const filteredFields = fields.filter((field) => { - return !filteredFieldsList.includes(field.name); - }); + return !filteredFieldsList.includes(field.name) + }) - return { continue: depth < 5, filteredFields }; + return { continue: depth < 5, filteredFields } } - ); + ) return { - kind: "Document" as const, + kind: 'Document' as const, definitions: [ { - kind: "OperationDefinition" as const, - operation: "query", + kind: 'OperationDefinition' as const, + operation: 'query', name: { - kind: "Name" as const, + kind: 'Name' as const, value: queryName, }, variableDefinitions: [ { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "relativePath", + kind: 'Name' as const, + value: 'relativePath', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, - value: "String", + kind: 'Name' as const, + value: 'String', }, }, }, }, ], selectionSet: { - kind: "SelectionSet", + kind: 'SelectionSet', selections: [ { - kind: "Field", + kind: 'Field', name: { - kind: "Name", + kind: 'Name', value: queryName, }, arguments: [ { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, }, }, ], directives: [], selectionSet: { - kind: "SelectionSet", + kind: 'SelectionSet', selections: fields, }, }, @@ -128,13 +128,11 @@ export const queryGenerator = ( }, }, ], - }; + } } else { - throw new Error( - "Expected return type to be an instance of GraphQLObject" - ); + throw new Error('Expected return type to be an instance of GraphQLObject') } } else { - throw new Error("Unable to find query fields for provided schema"); + throw new Error('Unable to find query fields for provided schema') } -}; +} diff --git a/packages/tina-graphql-helpers/src/fieldInterpretter.ts b/packages/tina-graphql-helpers/src/fieldInterpretter.ts index afcf0d6e1..8747f1126 100644 --- a/packages/tina-graphql-helpers/src/fieldInterpretter.ts +++ b/packages/tina-graphql-helpers/src/fieldInterpretter.ts @@ -19,8 +19,8 @@ import { GraphQLUnionType, GraphQLArgument, ASTNode, -} from "graphql"; -import get from 'lodash.get'; +} from 'graphql' +import get from 'lodash.get' interface FieldInterpretterProps { mutationName: string @@ -34,109 +34,120 @@ abstract class FieldInterpretter { protected fieldName: string protected docAst: any protected paramInputType: GraphQLArgument - constructor({mutationName, fieldName ,docAst,paramInputType}: FieldInterpretterProps) { + constructor({ + mutationName, + fieldName, + docAst, + paramInputType, + }: FieldInterpretterProps) { this.mutationName = mutationName this.fieldName = fieldName this.docAst = docAst this.paramInputType = paramInputType - } + } - abstract getQuery(): DocumentNode; + abstract getQuery(): DocumentNode - abstract getMutation(): DocumentNode; + abstract getMutation(): DocumentNode - abstract getDataPath(path: readonly (string | number)[], ancestors: any): string[] + abstract getDataPath( + path: readonly (string | number)[], + ancestors: any + ): string[] } -export const getFieldInterpretter = (namedType: GraphQLNamedType, args: FieldInterpretterProps): FieldInterpretter | undefined => { - if(namedType instanceof GraphQLUnionType && namedType.name === "SectionDocumentUnion") { +export const getFieldInterpretter = ( + namedType: GraphQLNamedType, + args: FieldInterpretterProps +): FieldInterpretter | undefined => { + if ( + namedType instanceof GraphQLUnionType && + namedType.name === 'SectionDocumentUnion' + ) { return new SectionDocumentUnionInterpretter(args) } - if(namedType instanceof GraphQLObjectType) - { + if (namedType instanceof GraphQLObjectType) { return new GraphQLObjectTypeInterpretter(args) - } return } class SectionDocumentUnionInterpretter extends FieldInterpretter { - getQuery(): DocumentNode { return { - kind: "Document" as const, + kind: 'Document' as const, definitions: [ { - kind: "OperationDefinition" as const, - operation: "query", + kind: 'OperationDefinition' as const, + operation: 'query', name: { - kind: "Name" as const, + kind: 'Name' as const, value: this.fieldName, }, variableDefinitions: [ { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "section", + kind: 'Name' as const, + value: 'section', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, - value: "String", + kind: 'Name' as const, + value: 'String', }, }, }, }, { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "relativePath", + kind: 'Name' as const, + value: 'relativePath', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, - value: "String", + kind: 'Name' as const, + value: 'String', }, }, }, }, ], selectionSet: { - kind: "SelectionSet", + kind: 'SelectionSet', selections: [ { - kind: "Field", + kind: 'Field', name: { - kind: "Name", + kind: 'Name', value: this.fieldName, }, arguments: [ { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, }, }, @@ -149,57 +160,55 @@ class SectionDocumentUnionInterpretter extends FieldInterpretter { }, ], } - - } getMutation(): DocumentNode { return { - kind: "Document" as const, + kind: 'Document' as const, definitions: [ { - kind: "OperationDefinition" as const, - operation: "mutation", + kind: 'OperationDefinition' as const, + operation: 'mutation', name: { - kind: "Name" as const, + kind: 'Name' as const, value: this.mutationName, }, variableDefinitions: [ { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "relativePath", + kind: 'Name' as const, + value: 'relativePath', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, - value: "String", + kind: 'Name' as const, + value: 'String', }, }, }, }, { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "params", + kind: 'Name' as const, + value: 'params', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: getNamedType(this.paramInputType?.type).name, }, }, @@ -207,40 +216,40 @@ class SectionDocumentUnionInterpretter extends FieldInterpretter { }, ], selectionSet: { - kind: "SelectionSet", + kind: 'SelectionSet', selections: [ { - kind: "Field", + kind: 'Field', name: { - kind: "Name", + kind: 'Name', value: this.mutationName, }, arguments: [ { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, }, }, { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "params", + kind: 'Name', + value: 'params', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "params", + kind: 'Name', + value: 'params', }, }, }, @@ -256,27 +265,27 @@ class SectionDocumentUnionInterpretter extends FieldInterpretter { } getDataPath(path: readonly (string | number)[], ancestors: any): string[] { - let dataPath: string[] = []; - const anc = ancestors[0]; - const pathAccum: (string | number)[] = []; + let dataPath: string[] = [] + const anc = ancestors[0] + const pathAccum: (string | number)[] = [] path.map((p, i) => { - pathAccum.push(p); - const item: ASTNode | ASTNode[] = get(anc, pathAccum); + pathAccum.push(p) + const item: ASTNode | ASTNode[] = get(anc, pathAccum) if (Array.isArray(item)) { } else { switch (item.kind) { - case "OperationDefinition": - break; - case "SelectionSet": - break; - case "InlineFragment": - break; - case "Field": - dataPath.push(item.name?.value); - break; + case 'OperationDefinition': + break + case 'SelectionSet': + break + case 'InlineFragment': + break + case 'Field': + dataPath.push(item.name?.value) + break } } - }); + }) return dataPath } } @@ -284,58 +293,58 @@ class SectionDocumentUnionInterpretter extends FieldInterpretter { class GraphQLObjectTypeInterpretter extends FieldInterpretter { getQuery(): DocumentNode { return { - kind: "Document" as const, + kind: 'Document' as const, definitions: [ { - kind: "OperationDefinition" as const, - operation: "query", + kind: 'OperationDefinition' as const, + operation: 'query', name: { - kind: "Name" as const, + kind: 'Name' as const, value: this.fieldName, }, variableDefinitions: [ { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "relativePath", + kind: 'Name' as const, + value: 'relativePath', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, - value: "String", + kind: 'Name' as const, + value: 'String', }, }, }, }, ], selectionSet: { - kind: "SelectionSet", + kind: 'SelectionSet', selections: [ { - kind: "Field", + kind: 'Field', name: { - kind: "Name", + kind: 'Name', value: this.fieldName, }, arguments: [ { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, }, }, @@ -347,56 +356,56 @@ class GraphQLObjectTypeInterpretter extends FieldInterpretter { }, }, ], - }; + } } getMutation(): DocumentNode { return { - kind: "Document" as const, + kind: 'Document' as const, definitions: [ { - kind: "OperationDefinition" as const, - operation: "mutation", + kind: 'OperationDefinition' as const, + operation: 'mutation', name: { - kind: "Name" as const, + kind: 'Name' as const, value: this.mutationName, }, variableDefinitions: [ { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "relativePath", + kind: 'Name' as const, + value: 'relativePath', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, - value: "String", + kind: 'Name' as const, + value: 'String', }, }, }, }, { - kind: "VariableDefinition" as const, + kind: 'VariableDefinition' as const, variable: { - kind: "Variable" as const, + kind: 'Variable' as const, name: { - kind: "Name" as const, - value: "params", + kind: 'Name' as const, + value: 'params', }, }, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: getNamedType(this.paramInputType?.type).name, }, }, @@ -404,40 +413,40 @@ class GraphQLObjectTypeInterpretter extends FieldInterpretter { }, ], selectionSet: { - kind: "SelectionSet", + kind: 'SelectionSet', selections: [ { - kind: "Field", + kind: 'Field', name: { - kind: "Name", + kind: 'Name', value: this.mutationName, }, arguments: [ { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "relativePath", + kind: 'Name', + value: 'relativePath', }, }, }, { - kind: "Argument", + kind: 'Argument', name: { - kind: "Name", - value: "params", + kind: 'Name', + value: 'params', }, value: { - kind: "Variable", + kind: 'Variable', name: { - kind: "Name", - value: "params", + kind: 'Name', + value: 'params', }, }, }, @@ -449,36 +458,32 @@ class GraphQLObjectTypeInterpretter extends FieldInterpretter { }, }, ], - }; + } } getDataPath(path: readonly (string | number)[], ancestors: any): string[] { - let dataPath: string[] = []; - const anc = ancestors[0]; - const pathAccum: (string | number)[] = []; + let dataPath: string[] = [] + const anc = ancestors[0] + const pathAccum: (string | number)[] = [] path.map((p, i) => { - pathAccum.push(p); - const item: ASTNode | ASTNode[] = get(anc, pathAccum); + pathAccum.push(p) + const item: ASTNode | ASTNode[] = get(anc, pathAccum) if (Array.isArray(item)) { } else { switch (item.kind) { - case "OperationDefinition": - break; - case "SelectionSet": - break; - case "InlineFragment": - break; - case "Field": - const value = item.alias - ? item.alias.value - : item.name.value; + case 'OperationDefinition': + break + case 'SelectionSet': + break + case 'InlineFragment': + break + case 'Field': + const value = item.alias ? item.alias.value : item.name.value - dataPath.push(value); + dataPath.push(value) } } - }); + }) return dataPath - - } -} \ No newline at end of file +} diff --git a/packages/tina-graphql-helpers/src/index.ts b/packages/tina-graphql-helpers/src/index.ts index f6ccfadbf..ec51068a9 100644 --- a/packages/tina-graphql-helpers/src/index.ts +++ b/packages/tina-graphql-helpers/src/index.ts @@ -11,6 +11,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -export { friendlyName, templateTypeName, templateName } from "./util"; -export { formify, splitQuery } from "./queryBuilder"; -export { queryGenerator } from "./dummy-generators"; +export { friendlyName, templateTypeName, templateName } from './util' +export { formify, splitQuery } from './queryBuilder' +export { queryGenerator } from './dummy-generators' diff --git a/packages/tina-graphql-helpers/src/queryBuilder.spec.ts b/packages/tina-graphql-helpers/src/queryBuilder.spec.ts index 730690922..2fca55b1d 100644 --- a/packages/tina-graphql-helpers/src/queryBuilder.spec.ts +++ b/packages/tina-graphql-helpers/src/queryBuilder.spec.ts @@ -11,20 +11,20 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { formify, splitQuery } from "./queryBuilder"; -import { buildSchema, parse, print } from "graphql"; -import fs from "fs"; -import path from "path"; -import { gql } from "./test-util"; +import { formify, splitQuery } from './queryBuilder' +import { buildSchema, parse, print } from 'graphql' +import fs from 'fs' +import path from 'path' +import { gql } from './test-util' const PATH_TO_TEST_APP = path.join( - path.resolve(__dirname, "../../.."), - "apps/test" -); + path.resolve(__dirname, '../../..'), + 'apps/test' +) const PATH_TO_TEST_SCHEMA = path.join( PATH_TO_TEST_APP, - ".tina/__generated__/schema.gql" -); + '.tina/__generated__/schema.gql' +) const query = gql` fragment PostDetailsFragment on Post_Details_Data { @@ -46,12 +46,12 @@ const query = gql` } } } -`; +` -describe("formify", () => { - test("adds Tina form configurations to each node in the query graph", async () => { - const schema = await fs.readFileSync(PATH_TO_TEST_SCHEMA).toString(); - const formifiedQuery = formify(parse(query), buildSchema(schema)); +describe('formify', () => { + test('adds Tina form configurations to each node in the query graph', async () => { + const schema = await fs.readFileSync(PATH_TO_TEST_SCHEMA).toString() + const formifiedQuery = formify(parse(query), buildSchema(schema)) expect(print(formifiedQuery)).toEqual(gql` fragment PostDetailsFragment on Post_Details_Data { reading_time @@ -138,23 +138,23 @@ describe("formify", () => { } } } - `); - }); -}); + `) + }) +}) -describe("splitQuery", () => { - test("includes fragments and nested fragments\n\tand its mutation matches the shape of the query", async () => { - const schema = await fs.readFileSync(PATH_TO_TEST_SCHEMA).toString(); +describe('splitQuery', () => { + test('includes fragments and nested fragments\n\tand its mutation matches the shape of the query', async () => { + const schema = await fs.readFileSync(PATH_TO_TEST_SCHEMA).toString() const splitNodes = splitQuery({ queryString: query, schema: buildSchema(schema), - }); + }) - const getPostDocumentQuery = splitNodes.queries["getPostsDocument"]; + const getPostDocumentQuery = splitNodes.queries['getPostsDocument'] expect(getPostDocumentQuery.fragments).toEqual( - expect.arrayContaining(["PostFragment", "PostDetailsFragment"]) - ); + expect.arrayContaining(['PostFragment', 'PostDetailsFragment']) + ) expect(getPostDocumentQuery.mutation).toEqual(gql` mutation updatePostsDocument( $relativePath: String! @@ -167,6 +167,6 @@ describe("splitQuery", () => { } } } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql-helpers/src/queryBuilder.ts b/packages/tina-graphql-helpers/src/queryBuilder.ts index 5332b61ae..ce5ceb962 100644 --- a/packages/tina-graphql-helpers/src/queryBuilder.ts +++ b/packages/tina-graphql-helpers/src/queryBuilder.ts @@ -31,12 +31,12 @@ import { GraphQLUnionType, print, isScalarType, -} from "graphql"; -import set from "lodash.set"; -import get from "lodash.get"; -import { getFieldInterpretter } from "./fieldInterpretter"; +} from 'graphql' +import set from 'lodash.set' +import get from 'lodash.get' +import { getFieldInterpretter } from './fieldInterpretter' -type VisitorType = Visitor; +type VisitorType = Visitor /** * @@ -98,71 +98,71 @@ type VisitorType = Visitor; * ``` */ export const formify = (query: DocumentNode, schema: GraphQLSchema) => { - const typeInfo = new TypeInfo(schema); + const typeInfo = new TypeInfo(schema) const pathsToPopulate: { - path: string; + path: string paths: { - path: string[]; - ast: object; - }[]; - }[] = []; + path: string[] + ast: object + }[] + }[] = [] const visitor: VisitorType = { leave(node, key, parent, path, ancestors) { - const type = typeInfo.getType(); + const type = typeInfo.getType() if (type) { - const namedType = getNamedType(type); + const namedType = getNamedType(type) if (namedType instanceof GraphQLObjectType) { const hasNodeInterface = !!namedType .getInterfaces() - .find((i) => i.name === "Node"); + .find((i) => i.name === 'Node') if (hasNodeInterface) { // Instead of this, there's probably a more fine-grained visitor key to use - if (typeof path[path.length - 1] === "number") { - assertIsObjectType(namedType); + if (typeof path[path.length - 1] === 'number') { + assertIsObjectType(namedType) - const valuesNode = namedType.getFields().values; + const valuesNode = namedType.getFields().values const namedValuesNode = getNamedType( valuesNode.type - ) as GraphQLNamedType; - const pathForValues = [...path]; - pathForValues.push("selectionSet"); - pathForValues.push("selections"); - const valuesAst = buildValuesForType(namedValuesNode); + ) as GraphQLNamedType + const pathForValues = [...path] + pathForValues.push('selectionSet') + pathForValues.push('selections') + const valuesAst = buildValuesForType(namedValuesNode) // High number to make sure this index isn't taken // might be more performant for it to be a low number though // use setWith instead - pathForValues.push(100); + pathForValues.push(100) - const formNode = namedType.getFields().form; + const formNode = namedType.getFields().form const namedFormNode = getNamedType( formNode.type - ) as GraphQLNamedType; + ) as GraphQLNamedType - const pathForForm = [...path]; + const pathForForm = [...path] - pathForForm.push("selectionSet"); - pathForForm.push("selections"); + pathForForm.push('selectionSet') + pathForForm.push('selections') // High number to make sure this index isn't taken // might be more performant for it to be a low number though // use setWith instead - const formAst = buildFormForType(namedFormNode); - pathForForm.push(101); + const formAst = buildFormForType(namedFormNode) + pathForForm.push(101) - const sysNode = namedType.getFields().sys; + const sysNode = namedType.getFields().sys const namedSysNode = getNamedType( sysNode.type - ) as GraphQLNamedType; - const pathForSys = [...path]; - pathForSys.push("selectionSet"); - pathForSys.push("selections"); - const sysAst = buildSysForType(namedSysNode); - pathForSys.push(102); + ) as GraphQLNamedType + const pathForSys = [...path] + pathForSys.push('selectionSet') + pathForSys.push('selections') + const sysAst = buildSysForType(namedSysNode) + pathForSys.push(102) pathsToPopulate.push({ - path: path.map((p) => p.toString()).join("-"), + path: path.map((p) => p.toString()).join('-'), paths: [ { path: pathForValues.map((p) => p.toString()), @@ -177,41 +177,41 @@ export const formify = (query: DocumentNode, schema: GraphQLSchema) => { ast: sysAst, }, ], - }); + }) } } } } }, - }; + } - visit(query, visitWithTypeInfo(typeInfo, visitor)); + visit(query, visitWithTypeInfo(typeInfo, visitor)) // We don't want to build form/value fields for nested nodes (for now) // so filter out paths which aren't "top-level" ones const topLevelPaths = pathsToPopulate.filter((p, i) => { - const otherPaths = pathsToPopulate.filter((_, index) => index !== i); + const otherPaths = pathsToPopulate.filter((_, index) => index !== i) const isChildOfOtherPaths = otherPaths.some((op) => { if (p.path.startsWith(op.path)) { - return true; + return true } else { - return false; + return false } - }); + }) if (isChildOfOtherPaths) { - return false; + return false } else { - return true; + return true } - }); + }) topLevelPaths.map((p) => { p.paths.map((pathNode) => { - set(query, pathNode.path, pathNode.ast); - }); - }); + set(query, pathNode.path, pathNode.ast) + }) + }) - return query; -}; + return query +} /** * @@ -222,20 +222,20 @@ export const formify = (query: DocumentNode, schema: GraphQLSchema) => { * */ const buildSysForType = (type: GraphQLNamedType): FieldNode => { - assertIsObjectType(type); + assertIsObjectType(type) return { - kind: "Field" as const, + kind: 'Field' as const, alias: { - kind: "Name", - value: "_internalSys", + kind: 'Name', + value: '_internalSys', }, name: { - kind: "Name" as const, - value: "sys", + kind: 'Name' as const, + value: 'sys', }, selectionSet: { - kind: "SelectionSet" as const, + kind: 'SelectionSet' as const, selections: buildSelectionsFields( Object.values(type.getFields()), (fields) => { @@ -243,220 +243,218 @@ const buildSysForType = (type: GraphQLNamedType): FieldNode => { continue: true, // prevent infinite loop by not include documents filteredFields: fields.filter( - (field) => field.name !== "documents" + (field) => field.name !== 'documents' ), - }; + } } ), }, - }; -}; + } +} const buildValuesForType = (type: GraphQLNamedType): FieldNode => { - assertIsUnionType(type); + assertIsUnionType(type) return { - kind: "Field" as const, + kind: 'Field' as const, name: { - kind: "Name" as const, - value: "values", + kind: 'Name' as const, + value: 'values', }, selectionSet: { - kind: "SelectionSet" as const, + kind: 'SelectionSet' as const, selections: buildSelectionInlineFragments(type.getTypes()), }, - }; -}; + } +} const buildFormForType = (type: GraphQLNamedType): FieldNode => { - assertIsUnionType(type); + assertIsUnionType(type) return { - kind: "Field" as const, + kind: 'Field' as const, name: { - kind: "Name" as const, - value: "form", + kind: 'Name' as const, + value: 'form', }, selectionSet: { - kind: "SelectionSet" as const, + kind: 'SelectionSet' as const, selections: buildSelectionInlineFragments(type.getTypes()), }, - }; -}; + } +} const buildSelectionInlineFragments = ( types: GraphQLObjectType[], - callback?: ( - fields: GraphQLField[] - ) => { continue: boolean; filteredFields: GraphQLField[] } + callback?: (fields: GraphQLField[]) => { + continue: boolean + filteredFields: GraphQLField[] + } ): InlineFragmentNode[] => { return types.map((type) => { return { - kind: "InlineFragment" as const, + kind: 'InlineFragment' as const, typeCondition: { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: type.name, }, }, selectionSet: { - kind: "SelectionSet" as const, + kind: 'SelectionSet' as const, selections: [ - ...Object.values(type.getFields()).map( - (field): FieldNode => { - const namedType = getNamedType(field.type); - if (isLeafType(namedType)) { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - }; - } else if (namedType instanceof GraphQLUnionType) { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - selectionSet: { - kind: "SelectionSet" as const, - selections: [ - ...buildSelectionInlineFragments( - namedType.getTypes(), - callback - ), - ], - }, - }; - } else if (namedType instanceof GraphQLObjectType) { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - selectionSet: { - kind: "SelectionSet" as const, - selections: [ - ...buildSelectionsFields( - Object.values(namedType.getFields()), - callback - ), - ], - }, - }; - } else { - throw new Error( - `Unexpected GraphQL type for field ${namedType.name}` - ); + ...Object.values(type.getFields()).map((field): FieldNode => { + const namedType = getNamedType(field.type) + if (isLeafType(namedType)) { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + } + } else if (namedType instanceof GraphQLUnionType) { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + selectionSet: { + kind: 'SelectionSet' as const, + selections: [ + ...buildSelectionInlineFragments( + namedType.getTypes(), + callback + ), + ], + }, } + } else if (namedType instanceof GraphQLObjectType) { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + selectionSet: { + kind: 'SelectionSet' as const, + selections: [ + ...buildSelectionsFields( + Object.values(namedType.getFields()), + callback + ), + ], + }, + } + } else { + throw new Error( + `Unexpected GraphQL type for field ${namedType.name}` + ) } - ), + }), ], }, - }; - }); -}; + } + }) +} export const buildSelectionsFields = ( fields: GraphQLField[], - callback?: ( - fields: GraphQLField[] - ) => { continue: boolean; filteredFields: GraphQLField[] } + callback?: (fields: GraphQLField[]) => { + continue: boolean + filteredFields: GraphQLField[] + } ): FieldNode[] => { - let filteredFields = fields; + let filteredFields = fields if (callback) { - const result = callback(fields); + const result = callback(fields) if (!result.continue) { if ( fields.every((field) => { - return !isScalarType(getNamedType(field.type)); + return !isScalarType(getNamedType(field.type)) }) ) { return [ { - kind: "Field" as const, + kind: 'Field' as const, name: { - kind: "Name" as const, - value: "__typename", + kind: 'Name' as const, + value: '__typename', }, }, - ]; + ] } return buildSelectionsFields( result.filteredFields.filter((field) => { if (isScalarType(getNamedType(field.type))) { - return true; + return true } - return false; + return false }) - ); + ) } else { - filteredFields = result.filteredFields; + filteredFields = result.filteredFields } } - return filteredFields.map( - (field): FieldNode => { - const namedType = getNamedType(field.type); - if (isLeafType(namedType)) { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - }; - } else if (namedType instanceof GraphQLUnionType) { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - selectionSet: { - kind: "SelectionSet" as const, - selections: [ - ...buildSelectionInlineFragments(namedType.getTypes(), callback), - ], - }, - }; - } else if (namedType instanceof GraphQLObjectType) { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - selectionSet: { - kind: "SelectionSet" as const, - selections: [ - ...buildSelectionsFields( - Object.values(namedType.getFields()), - callback - ), - ], - }, - }; - } else { - return { - kind: "Field" as const, - name: { - kind: "Name" as const, - value: field.name, - }, - selectionSet: { - kind: "SelectionSet" as const, - selections: [], - }, - }; + return filteredFields.map((field): FieldNode => { + const namedType = getNamedType(field.type) + if (isLeafType(namedType)) { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + } + } else if (namedType instanceof GraphQLUnionType) { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + selectionSet: { + kind: 'SelectionSet' as const, + selections: [ + ...buildSelectionInlineFragments(namedType.getTypes(), callback), + ], + }, + } + } else if (namedType instanceof GraphQLObjectType) { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + selectionSet: { + kind: 'SelectionSet' as const, + selections: [ + ...buildSelectionsFields( + Object.values(namedType.getFields()), + callback + ), + ], + }, + } + } else { + return { + kind: 'Field' as const, + name: { + kind: 'Name' as const, + value: field.name, + }, + selectionSet: { + kind: 'SelectionSet' as const, + selections: [], + }, } } - ); -}; + }) +} /** * The role of `splitQuery` is to look at a query and find all of the nodes @@ -471,33 +469,33 @@ export const buildSelectionsFields = ( * given document. */ export const splitQuery = (args: { - queryString: string; - schema: GraphQLSchema; + queryString: string + schema: GraphQLSchema }) => { - const { schema } = args; - const typeInfo = new TypeInfo(schema); - const queryType = schema.getQueryType(); - const mutationType = schema.getMutationType(); + const { schema } = args + const typeInfo = new TypeInfo(schema) + const queryType = schema.getQueryType() + const mutationType = schema.getMutationType() const queries: { [key: string]: { - query: string; - mutation: string; - path: (number | string)[]; - fragments: string[]; - }; - } = {}; + query: string + mutation: string + path: (number | string)[] + fragments: string[] + } + } = {} const fragmentDefinitions: { - name: string; - path: (string | number)[]; - fragment: string; - subFragments: string[]; - }[] = []; + name: string + path: (string | number)[] + fragment: string + subFragments: string[] + }[] = [] const fragmentSpreads: { - path: (string | number)[]; - fragment: string; + path: (string | number)[] + fragment: string // fragments: typeof fragmentDefinitions[]; - }[] = []; - const queryAst = parse(args.queryString); + }[] = [] + const queryAst = parse(args.queryString) const visitor: VisitorType = { leave: { FragmentDefinition(node, key, parent, path) { @@ -506,105 +504,105 @@ export const splitQuery = (args: { path: [...path], fragment: print(node), subFragments: [], - }); + }) }, FragmentSpread(node, key, parent, path) { fragmentSpreads.push({ path: [...path], fragment: node.name.value, // fragments: [], - }); + }) }, Field(node, key, parent, path, ancestors) { - const type = typeInfo.getType(); + const type = typeInfo.getType() if (type) { - const namedType = getNamedType(type); + const namedType = getNamedType(type) const isGraphQLUnionType = namedType instanceof GraphQLUnionType && - namedType.name === "SectionDocumentUnion"; - const isGraphQLObjectType = namedType instanceof GraphQLObjectType; + namedType.name === 'SectionDocumentUnion' + const isGraphQLObjectType = namedType instanceof GraphQLObjectType //TODO - Instead of doing this check, we should just check if fieldInterpretter below exists. // Leaving here for now as things may break on the calculation of fieldInterpretter's constructor args if (!isGraphQLUnionType && !isGraphQLObjectType) { - return; + return } if ( namedType instanceof GraphQLObjectType && - !namedType.getInterfaces().find((i) => i.name === "Node") + !namedType.getInterfaces().find((i) => i.name === 'Node') ) { - return; + return } // @ts-ignore const f = Object.values(queryType?.getFields()).find((field) => { - const queryNamedType = getNamedType(field.type); - return queryNamedType.name === namedType.name; - }); - const mutationFields = mutationType?.getFields(); + const queryNamedType = getNamedType(field.type) + return queryNamedType.name === namedType.name + }) + const mutationFields = mutationType?.getFields() if (!mutationFields) { - throw new Error("oh no"); + throw new Error('oh no') } const m = Object.values(mutationFields).find((field) => { - const mutationNamedType = getNamedType(field.type); - return mutationNamedType.name === namedType.name; - }); + const mutationNamedType = getNamedType(field.type) + return mutationNamedType.name === namedType.name + }) if (!f) { - throw new Error("oh no"); + throw new Error('oh no') } const paramInputType = m?.args.find((arg) => { - return arg.name === "params"; - }); + return arg.name === 'params' + }) if (!paramInputType) { - throw new Error("oh no"); + throw new Error('oh no') } if (!m) { - throw new Error("oh no"); + throw new Error('oh no') } - const docAst = get(queryAst, path); + const docAst = get(queryAst, path) const fieldInterpretter = getFieldInterpretter(namedType, { mutationName: m.name, fieldName: f.name, docAst, paramInputType, - }); + }) if (!fieldInterpretter) { - return; + return } - const newQuery = fieldInterpretter.getQuery(); - const newMutation = fieldInterpretter.getMutation(); - let dataPath = fieldInterpretter.getDataPath(path, ancestors); + const newQuery = fieldInterpretter.getQuery() + const newMutation = fieldInterpretter.getMutation() + let dataPath = fieldInterpretter.getDataPath(path, ancestors) - const pathCopy = [...path]; - queries[dataPath.join(".")] = { + const pathCopy = [...path] + queries[dataPath.join('.')] = { query: print(newQuery), mutation: print(newMutation), fragments: [], path: pathCopy, - }; + } } }, }, - }; - visit(queryAst, visitWithTypeInfo(typeInfo, visitor)); + } + visit(queryAst, visitWithTypeInfo(typeInfo, visitor)) fragmentDefinitions.forEach((fragmentDefinition) => { // loop through all fragment spreads, see if your fragment definition is using any other fragments fragmentSpreads.forEach((fragmentSpread) => { if (hasSubArray(fragmentSpread.path, fragmentDefinition.path)) { - fragmentDefinition.subFragments.push(fragmentSpread.fragment); + fragmentDefinition.subFragments.push(fragmentSpread.fragment) // console.log( // `Fragment definition ${fragmentDefinition.name} is using fragment spread ${fragmentSpread.fragment}` // ); } - }); - }); + }) + }) const recursiveFragmentSpread = ( fragmentName: string, @@ -613,49 +611,49 @@ export const splitQuery = (args: { ) => { const fragmentDefinition = fragmentDefinitions.find( ({ name }) => fragmentName === name - ); + ) if (!fragmentDefinition) { throw new Error( `Expected to find a fragment definition for ${fragmentName}` - ); + ) } if (fragmentDefinition?.subFragments.length > 0) { fragmentDefinition?.subFragments.map((subFragment) => { - accumulator.push(subFragment); + accumulator.push(subFragment) const subFragmentDefinition = fragmentDefinitionItems.find( ({ name }) => subFragment === name - ); + ) if (!subFragmentDefinition) { throw new Error( `Expected to find a fragment definition for ${subFragment}` - ); + ) } if (subFragmentDefinition?.subFragments.length > 0) { recursiveFragmentSpread( subFragmentDefinition.name, fragmentDefinitionItems, accumulator - ); + ) } - }); + }) } - }; + } - const keys = Object.keys(queries); + const keys = Object.keys(queries) Object.values(queries).forEach((query, index) => { - const fragmentsForQuery: string[] = []; + const fragmentsForQuery: string[] = [] fragmentSpreads.forEach((fragmentSpread) => { if (hasSubArray(fragmentSpread.path, query.path)) { - fragmentsForQuery.push(fragmentSpread.fragment); + fragmentsForQuery.push(fragmentSpread.fragment) recursiveFragmentSpread( fragmentSpread.fragment, fragmentDefinitions, fragmentsForQuery - ); + ) } - }); + }) if (fragmentsForQuery.length > 0) { // console.log( // `Query operation ${ @@ -665,18 +663,18 @@ export const splitQuery = (args: { } else { // console.log(`Query operation ${keys[index]} is not using any fragments`); } - query.fragments = fragmentsForQuery; - }); + query.fragments = fragmentsForQuery + }) - return { queries, fragments: fragmentDefinitions }; -}; + return { queries, fragments: fragmentDefinitions } +} // Checks if main array has the same values at the same indeces for a sub array const hasSubArray = (main: (number | string)[], sub: (number | string)[]) => { return sub.every((item, index) => { - return main[index] === item; - }); -}; + return main[index] === item + }) +} function assertIsObjectType( type: GraphQLNamedType @@ -686,7 +684,7 @@ function assertIsObjectType( } else { throw new Error( `Expected an instance of GraphQLObjectType for type ${type.name}` - ); + ) } } function assertIsUnionType( @@ -697,6 +695,6 @@ function assertIsUnionType( } else { throw new Error( `Expected an instance of GraphQLUnionType for type ${type.name}` - ); + ) } } diff --git a/packages/tina-graphql-helpers/src/test-util.ts b/packages/tina-graphql-helpers/src/test-util.ts index 9c2eae5bc..23dc75130 100644 --- a/packages/tina-graphql-helpers/src/test-util.ts +++ b/packages/tina-graphql-helpers/src/test-util.ts @@ -11,7 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import prettier from "prettier"; +import prettier from 'prettier' /** * @@ -20,7 +20,7 @@ import prettier from "prettier"; * side-effect that IDEs often provide graphql syntax highlighting for it */ export function gql(strings: TemplateStringsArray | string[]): string { - const string = Array.isArray(strings) ? strings.join("\n") : strings; + const string = Array.isArray(strings) ? strings.join('\n') : strings // @ts-ignore - return prettier.format(string, { parser: "graphql" }); + return prettier.format(string, { parser: 'graphql' }) } diff --git a/packages/tina-graphql-helpers/src/util.spec.ts b/packages/tina-graphql-helpers/src/util.spec.ts index 7c55f6977..82c1dbbe7 100644 --- a/packages/tina-graphql-helpers/src/util.spec.ts +++ b/packages/tina-graphql-helpers/src/util.spec.ts @@ -11,17 +11,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -import * as utils from "./util"; +import * as utils from './util' -describe("friendlyName", () => { - test("it should convert to CamelCase", () => { - const input = "action-newsletter.yml"; - const output = "ActionNewsletterYml"; - expect(utils.friendlyName(input)).toEqual(output); - }); - test("it should add suffix", () => { - const input = "action-newsletter.yml"; - const output = "ActionNewsletterYml_suffix"; - expect(utils.friendlyName(input, { suffix: "suffix" })).toEqual(output); - }); -}); +describe('friendlyName', () => { + test('it should convert to CamelCase', () => { + const input = 'action-newsletter.yml' + const output = 'ActionNewsletterYml' + expect(utils.friendlyName(input)).toEqual(output) + }) + test('it should add suffix', () => { + const input = 'action-newsletter.yml' + const output = 'ActionNewsletterYml_suffix' + expect(utils.friendlyName(input, { suffix: 'suffix' })).toEqual(output) + }) +}) diff --git a/packages/tina-graphql-helpers/src/util.ts b/packages/tina-graphql-helpers/src/util.ts index 40160b2a7..e9610e068 100644 --- a/packages/tina-graphql-helpers/src/util.ts +++ b/packages/tina-graphql-helpers/src/util.ts @@ -11,55 +11,55 @@ See the License for the specific language governing permissions and limitations under the License. */ -import camelCase from "lodash.camelcase"; -import upperFirst from "lodash.upperfirst"; -import kebabcase from "lodash.kebabcase"; +import camelCase from 'lodash.camelcase' +import upperFirst from 'lodash.upperfirst' +import kebabcase from 'lodash.kebabcase' -type FriendlyType = { __namespace?: string; name: string } | string | string[]; +type FriendlyType = { __namespace?: string; name: string } | string | string[] export const friendlyName = ( field: FriendlyType, options?: { - lowerCase?: boolean; - suffix?: string; + lowerCase?: boolean + suffix?: string } ) => { - const lowerCase = (options && options.lowerCase) || false; - const suffix = (options && options.suffix) || ""; + const lowerCase = (options && options.lowerCase) || false + const suffix = (options && options.suffix) || '' - let transform = (word: string) => upperFirst(camelCase(word)); + let transform = (word: string) => upperFirst(camelCase(word)) if (lowerCase) { - transform = (word: string) => camelCase(word); + transform = (word: string) => camelCase(word) } if (Array.isArray(field)) { - return `${field.map((f) => transform(f)).join("_")}${ - suffix && "_" + suffix - }`; + return `${field.map((f) => transform(f)).join('_')}${ + suffix && '_' + suffix + }` } else { - if (typeof field === "string") { + if (typeof field === 'string') { if (field) { - return `${transform(field)}${suffix ? "_" + suffix : ""}`; + return `${transform(field)}${suffix ? '_' + suffix : ''}` } else { - return suffix; + return suffix } } else { return `${ - field.__namespace ? transform(field.__namespace) + "_" : "" - }${transform(field.name)}${suffix && "_" + suffix}`; + field.__namespace ? transform(field.__namespace) + '_' : '' + }${transform(field.name)}${suffix && '_' + suffix}` } } -}; +} export const templateName = (string: string) => { - return kebabcase(string); -}; + return kebabcase(string) +} export const templateTypeName = ( template: FriendlyType, suffix: string, includeBody: boolean ) => { - const suffixName = (includeBody ? "Doc_" : "") + suffix; - return friendlyName(template, { suffix: suffixName }); -}; + const suffixName = (includeBody ? 'Doc_' : '') + suffix + return friendlyName(template, { suffix: suffixName }) +} diff --git a/packages/tina-graphql/create.jest.config.js b/packages/tina-graphql/create.jest.config.js index 8a4e29000..3d4aacfc5 100644 --- a/packages/tina-graphql/create.jest.config.js +++ b/packages/tina-graphql/create.jest.config.js @@ -15,18 +15,18 @@ module.exports = function createJestConfig(pack) { return { verbose: true, transform: { - ".(ts|tsx)": "ts-jest", + '.(ts|tsx)': 'ts-jest', }, - testRegex: "(\\.spec)\\.(ts|tsx|js)$", - modulePaths: ["/dir/", "/node_modules/"], - moduleFileExtensions: ["ts", "tsx", "js"], - testPathIgnorePatterns: ["/dist/"], + testRegex: '(\\.spec)\\.(ts|tsx|js)$', + modulePaths: ['/dir/', '/node_modules/'], + moduleFileExtensions: ['ts', 'tsx', 'js'], + testPathIgnorePatterns: ['/dist/'], displayName: pack.name, name: pack.name, moduleNameMapper: { - "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": - "/../../__mocks__/fileMock.js", - "\\.(css|scss)$": "identity-obj-proxy", + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/../../__mocks__/fileMock.js', + '\\.(css|scss)$': 'identity-obj-proxy', }, - }; -}; + } +} diff --git a/packages/tina-graphql/jest.config.cjs b/packages/tina-graphql/jest.config.cjs index 97cdc5b66..759cc6f14 100644 --- a/packages/tina-graphql/jest.config.cjs +++ b/packages/tina-graphql/jest.config.cjs @@ -1,4 +1,4 @@ -const createJestConfig = require("./create.jest.config.js"); -const pack = require("./package"); +const createJestConfig = require('./create.jest.config.js') +const pack = require('./package') -module.exports = createJestConfig(pack); +module.exports = createJestConfig(pack) diff --git a/packages/tina-graphql/package.json b/packages/tina-graphql/package.json index b49abbe0c..89f9f35cb 100644 --- a/packages/tina-graphql/package.json +++ b/packages/tina-graphql/package.json @@ -1,6 +1,6 @@ { "name": "tina-graphql", - "version": "0.1.9", + "version": "0.1.10", "main": "dist/index.js", "typings": "dist/index.d.ts", "files": [ diff --git a/packages/tina-graphql/src/builder/builder.spec.ts b/packages/tina-graphql/src/builder/builder.spec.ts index b344e7182..b70cc9033 100644 --- a/packages/tina-graphql/src/builder/builder.spec.ts +++ b/packages/tina-graphql/src/builder/builder.spec.ts @@ -11,34 +11,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -import fs from "fs-extra"; -import path from "path"; -import { cacheInit } from "../cache"; -import { schemaBuilder } from "."; -import { createDatasource } from "../datasources/data-manager"; -import { parse } from "graphql"; -import { FileSystemManager } from "../datasources/filesystem-manager"; +import fs from 'fs-extra' +import path from 'path' +import { cacheInit } from '../cache' +import { schemaBuilder } from '.' +import { createDatasource } from '../datasources/data-manager' +import { parse } from 'graphql' +import { FileSystemManager } from '../datasources/filesystem-manager' const PATH_TO_TEST_APP = path.join( - path.resolve(__dirname, "../../../../"), - "apps/test" -); + path.resolve(__dirname, '../../../../'), + 'apps/test' +) const PATH_TO_TEST_SCHEMA = path.join( PATH_TO_TEST_APP, - ".tina/__generated__/schema.gql" -); + '.tina/__generated__/schema.gql' +) -describe("Schema builder", () => { +describe('Schema builder', () => { // This is kind of a bad test, just rewrite it when primitives re-work starts - test.skip("matches schema snapshot", async () => { + test.skip('matches schema snapshot', async () => { const datasource = createDatasource( new FileSystemManager({ rootPath: PATH_TO_TEST_APP }) - ); - const cache = cacheInit(datasource); - const { schema } = await schemaBuilder({ cache }); + ) + const cache = cacheInit(datasource) + const { schema } = await schemaBuilder({ cache }) - const schemaFile = await fs.readFileSync(PATH_TO_TEST_SCHEMA).toString(); + const schemaFile = await fs.readFileSync(PATH_TO_TEST_SCHEMA).toString() - expect(parse(schemaFile)).toMatchObject(schema); - }); -}); + expect(parse(schemaFile)).toMatchObject(schema) + }) +}) diff --git a/packages/tina-graphql/src/builder/index.ts b/packages/tina-graphql/src/builder/index.ts index 6d80e5e52..e6cfbecab 100644 --- a/packages/tina-graphql/src/builder/index.ts +++ b/packages/tina-graphql/src/builder/index.ts @@ -11,12 +11,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import { templateTypeName, friendlyName } from "tina-graphql-helpers"; -import { gql } from "../gql"; -import { sequential } from "../util"; +import _ from 'lodash' +import { templateTypeName, friendlyName } from 'tina-graphql-helpers' +import { gql } from '../gql' +import { sequential } from '../util' -import { template } from "../fields/templates"; +import { template } from '../fields/templates' import { DocumentNode, @@ -26,9 +26,9 @@ import { InputObjectTypeDefinitionNode, ScalarTypeDefinitionNode, InterfaceTypeDefinitionNode, -} from "graphql"; -import type { DirectorySection, Section } from "../types"; -import type { Cache } from "../cache"; +} from 'graphql' +import type { DirectorySection, Section } from '../types' +import type { Cache } from '../cache' /** * @@ -59,14 +59,14 @@ import type { Cache } from "../cache"; * ``` */ export const schemaBuilder = async ({ cache }: { cache: Cache }) => { - const sectionMap: sectionMap = {}; - const mutationsArray: mutationsArray = []; + const sectionMap: sectionMap = {} + const mutationsArray: mutationsArray = [] - const sections = await cache.datasource.getCollectionsSettings(); + const sections = await cache.datasource.getCollectionsSettings() sections.forEach((section) => { - buildSectionMap(section, mutationsArray, sectionMap); - }); + buildSectionMap(section, mutationsArray, sectionMap) + }) const accumulator: Definitions[] = [ ...interfaceDefinitions, @@ -74,42 +74,42 @@ export const schemaBuilder = async ({ cache }: { cache: Cache }) => { systemInfoDefinition, sectionDefinition, gql.UnionTypeDefinition({ - name: "SectionDocumentUnion", + name: 'SectionDocumentUnion', types: sections.map((section) => - friendlyName(section.slug, { suffix: "Document" }) + friendlyName(section.slug, { suffix: 'Document' }) ), }), ...mutationDefinitions(mutationsArray), queryDefinition(sectionMap), - ]; + ] await sequential( - sections.filter((section) => section.type === "directory"), + sections.filter((section) => section.type === 'directory'), async (section) => { - buildSectionDefinitions(section, accumulator); + buildSectionDefinitions(section, accumulator) await sequential(section.templates, async (templateSlug) => { const args = { cache, template: await cache.datasource.getTemplate(templateSlug), accumulator, includeBody: true, - }; + } - await template.build.data(args); - await template.build.values(args); - await template.build.form(args); - await template.build.input(args); - }); + await template.build.data(args) + await template.build.values(args) + await template.build.form(args) + await template.build.input(args) + }) } - ); + ) const schema: DocumentNode = { - kind: "Document", + kind: 'Document', definitions: _.uniqBy(accumulator, (field) => field.name.value), - }; + } - return { schema, sectionMap }; -}; + return { schema, sectionMap } +} /** * Definitions for static interfaces which are identical @@ -117,122 +117,122 @@ export const schemaBuilder = async ({ cache }: { cache: Cache }) => { */ const interfaceDefinitions = [ gql.InterfaceTypeDefinition({ - name: "Node", + name: 'Node', fields: [ - gql.FieldDefinition({ name: "id", type: gql.TYPES.ID, required: true }), + gql.FieldDefinition({ name: 'id', type: gql.TYPES.ID, required: true }), ], }), gql.InterfaceTypeDefinition({ - name: "Document", + name: 'Document', fields: [ - gql.FieldDefinition({ name: "sys", type: gql.TYPES.SystemInfo }), - gql.FieldDefinition({ name: "id", type: gql.TYPES.ID, required: true }), + gql.FieldDefinition({ name: 'sys', type: gql.TYPES.SystemInfo }), + gql.FieldDefinition({ name: 'id', type: gql.TYPES.ID, required: true }), ], }), gql.InterfaceTypeDefinition({ - name: "FormField", + name: 'FormField', fields: [ - gql.FieldDefinition({ name: "label", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "name", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "component", type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'label', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'name', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'component', type: gql.TYPES.String }), ], }), -]; +] /** * Definitions for additional scalars, ex. JSON */ const scalarDefinitions = [ gql.ScalarTypeDefinition({ - name: "Reference", - description: "References another document, used as a foreign key", + name: 'Reference', + description: 'References another document, used as a foreign key', }), - gql.ScalarTypeDefinition({ name: "JSON" }), - gql.ScalarTypeDefinition({ name: "JSONObject" }), -]; + gql.ScalarTypeDefinition({ name: 'JSON' }), + gql.ScalarTypeDefinition({ name: 'JSONObject' }), +] /** * System info provides information about a given document */ const systemInfoDefinition = gql.ObjectTypeDefinition({ - name: "SystemInfo", + name: 'SystemInfo', fields: [ - gql.FieldDefinition({ name: "filename", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "basename", type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'filename', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'basename', type: gql.TYPES.String }), gql.FieldDefinition({ - name: "breadcrumbs", + name: 'breadcrumbs', type: gql.TYPES.String, list: true, args: [ gql.InputValueDefinition({ - name: "excludeExtension", + name: 'excludeExtension', type: gql.TYPES.Boolean, }), ], }), - gql.FieldDefinition({ name: "path", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "relativePath", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "extension", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "template", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "collection", type: gql.TYPES.Section }), + gql.FieldDefinition({ name: 'path', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'relativePath', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'extension', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'template', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'collection', type: gql.TYPES.Section }), ], -}); +}) const sectionDefinition = gql.ObjectTypeDefinition({ - name: "Section", + name: 'Section', fields: [ - gql.FieldDefinition({ name: "type", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "path", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "format", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "label", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "create", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "match", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "new_doc_ext", type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'type', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'path', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'format', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'label', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'create', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'match', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'new_doc_ext', type: gql.TYPES.String }), gql.FieldDefinition({ - name: "templates", + name: 'templates', type: gql.TYPES.String, list: true, }), - gql.FieldDefinition({ name: "slug", type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'slug', type: gql.TYPES.String }), gql.FieldDefinition({ - name: "documents", + name: 'documents', type: gql.TYPES.Document, list: true, }), ], -}); +}) const buildSectionMap = ( section: DirectorySection, mutationsArray: mutationsArray, sectionMap: sectionMap ) => { - const returnType = friendlyName(section.slug, { suffix: "Document" }); + const returnType = friendlyName(section.slug, { suffix: 'Document' }) mutationsArray.push({ section, mutationName: `update${friendlyName(section.slug)}Document`, returnType, - }); + }) sectionMap[`update${friendlyName(section.slug)}Document`] = { section, plural: false, mutation: true, queryName: `update${friendlyName(section.slug)}Document`, returnType, - }; + } sectionMap[`get${friendlyName(section.slug)}Document`] = { section, plural: false, queryName: `get${friendlyName(section.slug)}Document`, returnType, - }; + } sectionMap[`get${friendlyName(section.slug)}List`] = { section, plural: true, queryName: `get${friendlyName(section.slug)}List`, returnType, - }; -}; + } +} /** * Given a list of mutation types, this will generate all possible @@ -241,45 +241,45 @@ const buildSectionMap = ( const mutationDefinitions = (mutationsArray: mutationsArray) => { return [ gql.InputObjectTypeDefinition({ - name: "SectionParams", + name: 'SectionParams', fields: mutationsArray.map((ma) => { return gql.InputValueDefinition({ name: ma.section.slug, - type: friendlyName(ma.section.slug, { suffix: "Input" }), - }); + type: friendlyName(ma.section.slug, { suffix: 'Input' }), + }) }), }), gql.ObjectTypeDefinition({ - name: "Mutation", + name: 'Mutation', fields: [ gql.FieldDefinition({ - name: "addPendingDocument", + name: 'addPendingDocument', type: gql.TYPES.Document, args: [ gql.InputValueDefinition({ - name: "relativePath", + name: 'relativePath', type: gql.TYPES.String, }), gql.InputValueDefinition({ - name: "collection", + name: 'collection', type: gql.TYPES.String, }), gql.InputValueDefinition({ - name: "template", + name: 'template', type: gql.TYPES.String, }), ], }), gql.FieldDefinition({ - name: "updateDocument", + name: 'updateDocument', type: gql.TYPES.SectionDocumentUnion, args: [ gql.InputValueDefinition({ - name: "relativePath", + name: 'relativePath', type: gql.TYPES.String, }), gql.InputValueDefinition({ - name: "params", + name: 'params', type: gql.TYPES.SectionParams, }), ], @@ -290,61 +290,61 @@ const mutationDefinitions = (mutationsArray: mutationsArray) => { type: mutation.returnType, args: [ gql.InputValueDefinition({ - name: "relativePath", + name: 'relativePath', type: gql.TYPES.String, }), gql.InputValueDefinition({ - name: "params", - type: friendlyName(mutation.section.slug, { suffix: "Input" }), + name: 'params', + type: friendlyName(mutation.section.slug, { suffix: 'Input' }), }), ], - }); + }) }), ], }), - ]; -}; + ] +} const queryDefinition = (sectionMap: sectionMap) => { return gql.ObjectTypeDefinition({ - name: "Query", + name: 'Query', fields: [ gql.FieldDefinition({ - name: "node", + name: 'node', type: gql.TYPES.Node, args: [ gql.InputValueDefinition({ - name: "id", + name: 'id', type: gql.TYPES.ID, required: true, }), ], }), gql.FieldDefinition({ - name: "getDocument", + name: 'getDocument', type: gql.TYPES.SectionDocumentUnion, args: [ gql.InputValueDefinition({ - name: "collection", + name: 'collection', type: gql.TYPES.String, }), gql.InputValueDefinition({ - name: "relativePath", + name: 'relativePath', type: gql.TYPES.String, }), ], }), gql.FieldDefinition({ - name: "getCollections", + name: 'getCollections', type: gql.TYPES.Section, list: true, }), gql.FieldDefinition({ - name: "getCollection", + name: 'getCollection', type: gql.TYPES.Section, args: [ gql.InputValueDefinition({ - name: "collection", + name: 'collection', type: gql.TYPES.String, }), ], @@ -364,82 +364,82 @@ const queryDefinition = (sectionMap: sectionMap) => { type: section.returnType, args: [ gql.InputValueDefinition({ - name: "relativePath", + name: 'relativePath', type: gql.TYPES.String, }), ], - }); + }) }), ], - }); -}; + }) +} const buildSectionDefinitions = ( section: DirectorySection, accumulator: Definitions[] ) => { - const name = friendlyName(section.slug); + const name = friendlyName(section.slug) accumulator.push( gql.UnionTypeDefinition({ - name: friendlyName(name, { suffix: "Data" }), + name: friendlyName(name, { suffix: 'Data' }), types: section.templates.map((template) => - templateTypeName(template, "Data", true) + templateTypeName(template, 'Data', true) ), }) - ); + ) accumulator.push( gql.InputObjectTypeDefinition({ - name: friendlyName(name, { suffix: "Input" }), + name: friendlyName(name, { suffix: 'Input' }), fields: section.templates.map((template) => gql.InputValueDefinition({ name: friendlyName(template, { lowerCase: true }), - type: templateTypeName(template, "Input", true), + type: templateTypeName(template, 'Input', true), }) ), }) - ); + ) accumulator.push( gql.UnionTypeDefinition({ - name: friendlyName(name, { suffix: "Values" }), + name: friendlyName(name, { suffix: 'Values' }), types: section.templates.map((template) => - templateTypeName(template, "Values", true) + templateTypeName(template, 'Values', true) ), }) - ); + ) accumulator.push( gql.UnionTypeDefinition({ - name: friendlyName(name, { suffix: "Form" }), + name: friendlyName(name, { suffix: 'Form' }), types: section.templates.map((template) => - templateTypeName(template, "Form", true) + templateTypeName(template, 'Form', true) ), }) - ); + ) accumulator.push( gql.ObjectTypeDefinition({ - name: friendlyName(name, { suffix: "Document" }), + name: friendlyName(name, { suffix: 'Document' }), interfaces: [ - gql.NamedType({ name: "Node" }), - gql.NamedType({ name: "Document" }), + gql.NamedType({ name: 'Node' }), + gql.NamedType({ name: 'Document' }), ], fields: [ - gql.FieldDefinition({ name: "id", type: gql.TYPES.ID, required: true }), - gql.FieldDefinition({ name: "sys", type: gql.TYPES.SystemInfo }), + gql.FieldDefinition({ name: 'id', type: gql.TYPES.ID, required: true }), + gql.FieldDefinition({ name: 'sys', type: gql.TYPES.SystemInfo }), gql.FieldDefinition({ - name: "data", - type: friendlyName(name, { suffix: "Data" }), + name: 'data', + type: friendlyName(name, { suffix: 'Data' }), }), gql.FieldDefinition({ - name: "values", - type: friendlyName(name, { suffix: "Values" }), + name: 'values', + type: friendlyName(name, { suffix: 'Values' }), }), gql.FieldDefinition({ - name: "form", - type: friendlyName(name, { suffix: "Form" }), + name: 'form', + type: friendlyName(name, { suffix: 'Form' }), }), ], }) - ); -}; + ) +} export type Definitions = | ObjectTypeDefinitionNode @@ -447,19 +447,19 @@ export type Definitions = | InputObjectTypeDefinitionNode | ScalarTypeDefinitionNode | InterfaceTypeDefinitionNode - | EnumTypeDefinitionNode; + | EnumTypeDefinitionNode export type sectionMap = { [key: string]: { - section: DirectorySection; - plural: boolean; - mutation?: boolean; - queryName: string; - returnType: string; - }; -}; + section: DirectorySection + plural: boolean + mutation?: boolean + queryName: string + returnType: string + } +} type mutationsArray = { - section: Section; - mutationName: string; - returnType: string; -}[]; + section: Section + mutationName: string + returnType: string +}[] diff --git a/packages/tina-graphql/src/cache/index.ts b/packages/tina-graphql/src/cache/index.ts index e32365ff2..47dfbcce4 100644 --- a/packages/tina-graphql/src/cache/index.ts +++ b/packages/tina-graphql/src/cache/index.ts @@ -11,31 +11,31 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; +import _ from 'lodash' import { ObjectTypeDefinitionNode, UnionTypeDefinitionNode, FieldDefinitionNode, NameNode, -} from "graphql"; +} from 'graphql' -import type { DataSource } from "../datasources/datasource"; +import type { DataSource } from '../datasources/datasource' export type Cache = { gql: { object: ( name: string, - def: Omit - ) => ObjectTypeDefinitionNode; + def: Omit + ) => ObjectTypeDefinitionNode union: ( name: string, - def: Omit - ) => UnionTypeDefinitionNode; - name: (name: string) => NameNode; - string: (name: string) => FieldDefinitionNode; - }; - datasource: DataSource; -}; + def: Omit + ) => UnionTypeDefinitionNode + name: (name: string) => NameNode + string: (name: string) => FieldDefinitionNode + } + datasource: DataSource +} /** * Initialize the cache and datastore services, which keep in-memory @@ -46,41 +46,41 @@ export const cacheInit = (datasource: DataSource) => { gql: { object: (name, def) => { return { - kind: "ObjectTypeDefinition", + kind: 'ObjectTypeDefinition', name: cache.gql.name(name), ...def, - }; + } }, union: (name, def) => { return { - kind: "UnionTypeDefinition", + kind: 'UnionTypeDefinition', name: { - kind: "Name", - value: "DocumentUnion", + kind: 'Name', + value: 'DocumentUnion', }, - }; + } }, - name: (name) => ({ kind: "Name", value: name }), + name: (name) => ({ kind: 'Name', value: name }), string: (name) => { return { - kind: "FieldDefinition", + kind: 'FieldDefinition', name: { - kind: "Name", + kind: 'Name', value: name, }, arguments: [], type: { - kind: "NamedType", + kind: 'NamedType', name: { - kind: "Name", - value: "String", + kind: 'Name', + value: 'String', }, }, - }; + } }, }, datasource: datasource, - }; + } - return cache; -}; + return cache +} diff --git a/packages/tina-graphql/src/datasources/data-adaptor.ts b/packages/tina-graphql/src/datasources/data-adaptor.ts index e62fddc94..99257eb22 100644 --- a/packages/tina-graphql/src/datasources/data-adaptor.ts +++ b/packages/tina-graphql/src/datasources/data-adaptor.ts @@ -12,7 +12,7 @@ limitations under the License. */ export interface DataAdaptor { - readFile: (path: string) => Promise; - readDir: (path: string) => Promise; - writeFile: (path: string, content: string) => Promise; + readFile: (path: string) => Promise + readDir: (path: string) => Promise + writeFile: (path: string, content: string) => Promise } diff --git a/packages/tina-graphql/src/datasources/data-manager.ts b/packages/tina-graphql/src/datasources/data-manager.ts index 98aed7ba0..3e97d022b 100644 --- a/packages/tina-graphql/src/datasources/data-manager.ts +++ b/packages/tina-graphql/src/datasources/data-manager.ts @@ -11,50 +11,50 @@ See the License for the specific language governing permissions and limitations under the License. */ -import p from "path"; -import _ from "lodash"; -import matter from "gray-matter"; -import * as jsyaml from "js-yaml"; -import DataLoader from "dataloader"; - -import { byTypeWorks, Section } from "../types"; -import { FieldGroupField } from "../fields/field-group"; -import { FieldGroupListField } from "../fields/field-group-list"; -import { sequential } from "../util"; - -import type { Field } from "../fields"; +import p from 'path' +import _ from 'lodash' +import matter from 'gray-matter' +import * as jsyaml from 'js-yaml' +import DataLoader from 'dataloader' + +import { byTypeWorks, Section } from '../types' +import { FieldGroupField } from '../fields/field-group' +import { FieldGroupListField } from '../fields/field-group-list' +import { sequential } from '../util' + +import type { Field } from '../fields' import { DataSource, AddArgs, UpdateArgs, DocumentArgs, TinaDocument, -} from "./datasource"; +} from './datasource' import type { Settings, DirectorySection, RawTemplate, TemplateData, WithFields, -} from "../types"; +} from '../types' // const tinaPath = ".tina"; -const tinaPath = ".tina/__generated__/config"; +const tinaPath = '.tina/__generated__/config' export class DataManager implements DataSource { - rootPath: string; - loader: DataLoader; - dirLoader: DataLoader; - writeFile: (path: string, content: string) => Promise; + rootPath: string + loader: DataLoader + dirLoader: DataLoader + writeFile: (path: string, content: string) => Promise constructor( rootPath: string, options: { - writeFile: (path: string, content: string) => Promise; - readFile: (path: string) => Promise; - readDir: (path: string) => Promise; + writeFile: (path: string, content: string) => Promise + readFile: (path: string) => Promise + readDir: (path: string) => Promise } ) { - this.rootPath = rootPath; + this.rootPath = rootPath // This is not an application cache - in-memory batching is its purpose // read a good conversation on it here https://github.com/graphql/dataloader/issues/62 @@ -65,11 +65,11 @@ export class DataManager implements DataSource { * it ourselves is when there's a cached value as part of the mutation process, which then * needs to return the new value */ - const readFileFunc = createReadFileFunc(options.readFile); - const readDirFunc = createReadDirFunc(options.readDir); - this.loader = new DataLoader(readFileFunc); - this.dirLoader = new DataLoader(readDirFunc); - this.writeFile = options.writeFile; + const readFileFunc = createReadFileFunc(options.readFile) + const readDirFunc = createReadDirFunc(options.readDir) + this.loader = new DataLoader(readFileFunc) + this.dirLoader = new DataLoader(readDirFunc) + this.writeFile = options.writeFile // Pretty bad behavior from gray-matter, without clearing this we'd run the risk // of returning cached objects from different projects. This is undocumented behavior @@ -78,361 +78,361 @@ export class DataManager implements DataSource { // https://github.com/jxson/front-matter - or perhaps we should just use remark and // js-yaml // @ts-ignore - matter.clearCache(); + matter.clearCache() } getDocumentsForCollection = async (sectionSlug: string) => { - const section = await this.getCollection(sectionSlug); - const fullPath = p.join(this.rootPath, section.path); + const section = await this.getCollection(sectionSlug) + const fullPath = p.join(this.rootPath, section.path) // FIXME: replace with fast-glob - const documents = await readDir(fullPath, this.dirLoader); - return documents.map((relativePath) => p.join(section.path, relativePath)); - }; + const documents = await readDir(fullPath, this.dirLoader) + return documents.map((relativePath) => p.join(section.path, relativePath)) + } getAllTemplates = async () => { - const fullPath = p.join(this.rootPath, tinaPath, "front_matter/templates"); - const templates = await readDir(fullPath, this.dirLoader); + const fullPath = p.join(this.rootPath, tinaPath, 'front_matter/templates') + const templates = await readDir(fullPath, this.dirLoader) return await sequential( templates, async (templateSlug) => - await this.getTemplate(templateSlug.replace(".yml", "")) - ); - }; + await this.getTemplate(templateSlug.replace('.yml', '')) + ) + } getTemplates = async (templateSlugs: string[]) => await sequential( templateSlugs, async (templateSlug) => await this.getTemplate(templateSlug) - ); + ) getSettingsData = async () => { const { data } = await readFile( - p.join(this.rootPath, tinaPath, "settings.yml"), + p.join(this.rootPath, tinaPath, 'settings.yml'), this.loader - ); + ) - return data; - }; + return data + } getSettingsForCollection = async (section?: string) => { - const sectionsSettings = await this.getCollectionsSettings(); + const sectionsSettings = await this.getCollectionsSettings() if (!section) { - throw new Error(`No directory sections found`); + throw new Error(`No directory sections found`) } - const result = sectionsSettings.find(({ slug }) => slug === section); + const result = sectionsSettings.find(({ slug }) => slug === section) if (!result) { - throw new Error(`Expected to find section with slug ${section}`); + throw new Error(`Expected to find section with slug ${section}`) } return { ...result, - format: result.format || "md", - }; - }; + format: result.format || 'md', + } + } getCollectionsSettings = async () => { - const data = await this.getSettingsData(); + const data = await this.getSettingsData() const sections = data.sections - .filter((section) => section.type === "directory") + .filter((section) => section.type === 'directory') .map((section) => { return { ...section, slug: section.name, - }; - }); + } + }) - return sections as DirectorySection[]; - }; + return sections as DirectorySection[] + } getCollection = async (slug: string) => { - const data = await this.getSettingsData(); + const data = await this.getSettingsData() const sections = data.sections - .filter((section) => section.type === "directory") + .filter((section) => section.type === 'directory') .map((section) => { return { ...section, slug: section.name, - } as DirectorySection; - }); + } as DirectorySection + }) - const section = sections.find((section) => section.slug === slug); + const section = sections.find((section) => section.slug === slug) if (!section) { - throw new Error(`Unable to find section with slug ${slug}`); + throw new Error(`Unable to find section with slug ${slug}`) } - return section; - }; + return section + } getCollectionByPath = async (path: string) => { - const data = await this.getSettingsData(); + const data = await this.getSettingsData() const sections = data.sections - .filter((section) => section.type === "directory") + .filter((section) => section.type === 'directory') .map((section) => { return { ...section, slug: section.name, - } as DirectorySection; - }); + } as DirectorySection + }) const section = sections.find((section) => { - return path.startsWith(section.path); - }); + return path.startsWith(section.path) + }) if (!section) { - throw new Error(`Unable to find section for path ${path}`); + throw new Error(`Unable to find section for path ${path}`) } - return section; - }; + return section + } getTemplatesForCollection = async (section?: string) => { - const data = await this.getSettingsData(); + const data = await this.getSettingsData() const sections = data.sections.map((section) => { return { ...section, slug: section.name, - }; - }); + } + }) const templates = section - ? sections.filter(byTypeWorks("directory")).find((templateSection) => { - return templateSection.slug === section; + ? sections.filter(byTypeWorks('directory')).find((templateSection) => { + return templateSection.slug === section })?.templates : _.flatten( sections - .filter(byTypeWorks("directory")) + .filter(byTypeWorks('directory')) .map(({ templates }) => templates) - ); + ) if (!templates) { - throw new Error(`No templates found for section`); + throw new Error(`No templates found for section`) } return await sequential(templates, async (templateBasename) => { - return await this.getTemplate(templateBasename.replace(".yml", "")); - }); - }; + return await this.getTemplate(templateBasename.replace('.yml', '')) + }) + } getDocumentMeta = async (args: DocumentArgs) => { - const fullPath = p.join(this.rootPath, args.relativePath); - const basename = p.basename(fullPath); - const extension = p.extname(fullPath); - return { basename, filename: basename.replace(extension, ""), extension }; - }; + const fullPath = p.join(this.rootPath, args.relativePath) + const basename = p.basename(fullPath) + const extension = p.extname(fullPath) + return { basename, filename: basename.replace(extension, ''), extension } + } getData = async ({ relativePath, collection }: DocumentArgs) => { - const sectionData = await this.getSettingsForCollection(collection); + const sectionData = await this.getSettingsForCollection(collection) if (!sectionData) { - throw new Error(`No section found for ${collection}`); + throw new Error(`No section found for ${collection}`) } - const fullPath = p.join(this.rootPath, sectionData.path, relativePath); - return readFile(fullPath, this.loader); - }; + const fullPath = p.join(this.rootPath, sectionData.path, relativePath) + return readFile(fullPath, this.loader) + } getTemplateForDocument = async (args: DocumentArgs) => { - const sectionData = await this.getSettingsForCollection(args.collection); + const sectionData = await this.getSettingsForCollection(args.collection) if (!sectionData) { - throw new Error(`No section found for ${args.collection}`); + throw new Error(`No section found for ${args.collection}`) } - const fullPath = p.join(this.rootPath, tinaPath, "front_matter/templates"); - const templates = await readDir(fullPath, this.dirLoader); + const fullPath = p.join(this.rootPath, tinaPath, 'front_matter/templates') + const templates = await readDir(fullPath, this.dirLoader) const template = ( await sequential(templates, async (template) => { - const data = await this.getTemplate(template.replace(".yml", "")); + const data = await this.getTemplate(template.replace('.yml', '')) if (data.pages?.includes(p.join(sectionData.path, args.relativePath))) { - return data; + return data } else { - return false; + return false } }) - ).filter(Boolean)[0]; + ).filter(Boolean)[0] if (!template) { throw new Error( `Unable to find template for document ${args.relativePath}` - ); + ) } - return template; - }; + return template + } getTemplate = async ( slug: string, options: { namespace: boolean } = { namespace: true } ) => { - const fullPath = p.join(this.rootPath, tinaPath, "front_matter/templates"); - const templates = await readDir(fullPath, this.dirLoader); + const fullPath = p.join(this.rootPath, tinaPath, 'front_matter/templates') + const templates = await readDir(fullPath, this.dirLoader) const template = templates.find((templateBasename) => { - return templateBasename === `${slug}.yml`; - }); + return templateBasename === `${slug}.yml` + }) if (!template) { - throw new Error(`No template found for slug ${slug}`); + throw new Error(`No template found for slug ${slug}`) } const { data } = await readFile( p.join(fullPath, template), this.loader - ); + ) - return namespaceFields({ name: slug, ...data }); - }; + return namespaceFields({ name: slug, ...data }) + } getTemplateWithoutName = async ( slug: string, options: { namespace: boolean } = { namespace: true } ) => { - const fullPath = p.join(this.rootPath, tinaPath, "front_matter/templates"); - const templates = await readDir(fullPath, this.dirLoader); + const fullPath = p.join(this.rootPath, tinaPath, 'front_matter/templates') + const templates = await readDir(fullPath, this.dirLoader) const template = templates.find((templateBasename) => { - return templateBasename === `${slug}.yml`; - }); + return templateBasename === `${slug}.yml` + }) if (!template) { - throw new Error(`No template found for slug ${slug}`); + throw new Error(`No template found for slug ${slug}`) } const { data } = await readFile( p.join(fullPath, template), this.loader - ); + ) - return data; - }; + return data + } addDocument = async ({ relativePath, collection, template }: AddArgs) => { - const fullPath = p.join(this.rootPath, tinaPath, "front_matter/templates"); - const sectionData = await this.getSettingsForCollection(collection); + const fullPath = p.join(this.rootPath, tinaPath, 'front_matter/templates') + const sectionData = await this.getSettingsForCollection(collection) if (!sectionData) { - throw new Error(`No section found for ${collection}`); + throw new Error(`No section found for ${collection}`) } - const path = p.join(sectionData.path, relativePath); + const path = p.join(sectionData.path, relativePath) - const fullFilePath = p.join(this.rootPath, path); - const fullTemplatePath = p.join(fullPath, `${template}.yml`); - const extension = p.extname(fullFilePath); + const fullFilePath = p.join(this.rootPath, path) + const fullTemplatePath = p.join(fullPath, `${template}.yml`) + const extension = p.extname(fullFilePath) - this.loader.clear(fullFilePath); - this.loader.clear(fullTemplatePath); + this.loader.clear(fullFilePath) + this.loader.clear(fullTemplatePath) switch (extension) { - case ".md": - const markdownString = "---\n" + jsyaml.dump({ _template: template }); - await this.writeFile(fullFilePath, markdownString); - break; - case ".json": - const jsonString = JSON.stringify({ _template: template }, null, 2); - await this.writeFile(fullFilePath, jsonString); - break; + case '.md': + const markdownString = '---\n' + jsyaml.dump({ _template: template }) + await this.writeFile(fullFilePath, markdownString) + break + case '.json': + const jsonString = JSON.stringify({ _template: template }, null, 2) + await this.writeFile(fullFilePath, jsonString) + break default: throw new Error( `Unable to parse file, unknown extension ${extension} for path ${fullPath}` - ); + ) } - }; + } updateDocument = async ({ relativePath, collection, params }: UpdateArgs) => { - const sectionData = await this.getSettingsForCollection(collection); + const sectionData = await this.getSettingsForCollection(collection) if (!sectionData) { - throw new Error(`No section found for ${collection}`); + throw new Error(`No section found for ${collection}`) } - const fullPath = p.join(this.rootPath, sectionData.path, relativePath); + const fullPath = p.join(this.rootPath, sectionData.path, relativePath) // FIXME: provide a test-case for this, might not be necessary // https://github.com/graphql/dataloader#clearing-cache - this.loader.clear(fullPath); - const { _body, ...data } = params; - const extension = p.extname(fullPath); + this.loader.clear(fullPath) + const { _body, ...data } = params + const extension = p.extname(fullPath) switch (extension) { - case ".md": - const string = matter.stringify(`\n${_body || ""}`, data); + case '.md': + const string = matter.stringify(`\n${_body || ''}`, data) - await this.writeFile(fullPath, string); - break; - case ".json": - const jsonString = JSON.stringify(data, null, 2); + await this.writeFile(fullPath, string) + break + case '.json': + const jsonString = JSON.stringify(data, null, 2) - await this.writeFile(fullPath, jsonString); - break; + await this.writeFile(fullPath, jsonString) + break default: throw new Error( `Unable to parse file, unknown extension ${extension} for path ${fullPath}` - ); + ) } - }; + } } const createReadFileFunc = ( readFileFunc: (path: string) => Promise ) => { return async function batchReadFileFunction(keys: readonly string[]) { - const results: { [key: string]: unknown } = {}; + const results: { [key: string]: unknown } = {} await Promise.all( keys.map( async (key) => (results[key] = await internalReadFile(key, readFileFunc)) ) - ); - return keys.map((key) => results[key] || new Error(`No result for ${key}`)); - }; -}; + ) + return keys.map((key) => results[key] || new Error(`No result for ${key}`)) + } +} const createReadDirFunc = ( readDirFunc: (path: string) => Promise ) => { return async function batchReadDirFunction(keys: readonly string[]) { - const results: { [key: string]: unknown } = {}; + const results: { [key: string]: unknown } = {} await Promise.all( keys.map( async (key) => (results[key] = await internalReadDir(key, readDirFunc)) ) - ); - return keys.map((key) => results[key] || new Error(`No result for ${key}`)); - }; -}; + ) + return keys.map((key) => results[key] || new Error(`No result for ${key}`)) + } +} const readFile = async ( path: string, loader: DataLoader ): Promise => { - return (await loader.load(path)) as T; -}; + return (await loader.load(path)) as T +} const internalReadFile = async ( path: string, readFileFunc: (path: string) => Promise ): Promise => { - let extension = p.extname(path); + let extension = p.extname(path) - const string = await readFileFunc(path); + const string = await readFileFunc(path) switch (extension) { - case ".yml": - return parseMatter(string); - case ".md": - return parseMatter(string); - case ".json": - return { data: JSON.parse(string.toString()), content: "" }; + case '.yml': + return parseMatter(string) + case '.md': + return parseMatter(string) + case '.json': + return { data: JSON.parse(string.toString()), content: '' } default: throw new Error( `Unable to parse file, unknown extension ${extension} for path ${path}` - ); + ) } -}; +} const readDir = async ( path: string, loader: DataLoader ): Promise => { - return (await loader.load(path)) as string[]; -}; + return (await loader.load(path)) as string[] +} const internalReadDir = async ( path: string, readDirFunc: (path: string) => Promise ) => { - return readDirFunc(path); -}; + return readDirFunc(path) +} -export const FMT_BASE = ".forestry/front_matter/templates"; +export const FMT_BASE = '.forestry/front_matter/templates' export const parseMatter = (data: Buffer) => { const res = matter(data, { - excerpt_separator: "", - }) as unknown & { content: string }; + excerpt_separator: '', + }) as unknown & { content: string } // Remove line break at top of _body - res.content = res.content.replace(/^\n|\n$/g, ""); + res.content = res.content.replace(/^\n|\n$/g, '') - return res; -}; + return res +} function isWithFields(t: object): t is WithFields { - return t.hasOwnProperty("fields"); + return t.hasOwnProperty('fields') } const namespaceFields = (template: TemplateData): TemplateData => { @@ -442,16 +442,16 @@ const namespaceFields = (template: TemplateData): TemplateData => { if (isWithFields(f)) { return { ...namespaceSubFields(f, template.name), - }; + } } else { return { ...f, __namespace: `${template.name}`, - }; + } } }), - }; -}; + } +} const namespaceSubFields = ( template: FieldGroupField | FieldGroupListField, parentNamespace: string @@ -463,28 +463,28 @@ const namespaceSubFields = ( return { ...namespaceSubFields(f, template.name), __namespace: `${parentNamespace}_${template.name}`, - }; + } } else { return { ...f, - }; + } } }), __namespace: parentNamespace, - }; -}; + } +} export const createDatasource = (dataAdaptor: { // FIXME: this should just specify that any DataManager interface // can be passed, having trouble with 'fs' return types though - rootPath: any; - readFile: any; - readDir: any; - writeFile: any; + rootPath: any + readFile: any + readDir: any + writeFile: any }) => { return new DataManager(dataAdaptor.rootPath, { readFile: dataAdaptor.readFile, readDir: dataAdaptor.readDir, writeFile: dataAdaptor.writeFile, - }); -}; + }) +} diff --git a/packages/tina-graphql/src/datasources/datasource.ts b/packages/tina-graphql/src/datasources/datasource.ts index 8dbdebc08..172af723b 100644 --- a/packages/tina-graphql/src/datasources/datasource.ts +++ b/packages/tina-graphql/src/datasources/datasource.ts @@ -11,36 +11,36 @@ See the License for the specific language governing permissions and limitations under the License. */ -import type { Field } from "../fields"; +import type { Field } from '../fields' import type { TemplateData, DirectorySection, TemplateDataWithNoName, -} from "../types"; +} from '../types' export type TinaDocument = { - [key: string]: any; - content?: string; + [key: string]: any + content?: string data: { - [key: string]: object | string[] | string | object[]; - }; -}; + [key: string]: object | string[] | string | object[] + } +} export type UpdateArgs = { - relativePath: string; - collection: string; - params: { _body?: string } & object; -}; + relativePath: string + collection: string + params: { _body?: string } & object +} export type DocumentArgs = { - relativePath: string; - collection: string; -}; + relativePath: string + collection: string +} export type AddArgs = { - relativePath: string; - collection: string; - template: string; -}; + relativePath: string + collection: string + template: string +} export interface DataSource { /** * `getData` @@ -56,23 +56,21 @@ export interface DataSource { * } * ``` */ - getData: (args: DocumentArgs) => Promise; - getDocumentMeta: ( - args: DocumentArgs - ) => Promise<{ - basename: string; - extension: string; - filename: string; - }>; - getTemplateForDocument: (args: DocumentArgs) => Promise; - getAllTemplates: () => Promise; - getTemplates: (slugs: string[]) => Promise; - getTemplate: (slug: string) => Promise; + getData: (args: DocumentArgs) => Promise + getDocumentMeta: (args: DocumentArgs) => Promise<{ + basename: string + extension: string + filename: string + }> + getTemplateForDocument: (args: DocumentArgs) => Promise + getAllTemplates: () => Promise + getTemplates: (slugs: string[]) => Promise + getTemplate: (slug: string) => Promise /** * `getTemplateWithoutName` the name is a synthetic value, so * sometimes you don't want it (ex. when writing back to the data source) */ - getTemplateWithoutName: (slug: string) => Promise; + getTemplateWithoutName: (slug: string) => Promise /** * `getTemplatesForCollection` * @@ -98,20 +96,20 @@ export interface DataSource { * ] * ``` */ - getTemplatesForCollection: (collection?: string) => Promise; - getDocumentsForCollection: (collection: string) => Promise; - getSettingsForCollection: (collection?: string) => Promise; - getCollectionsSettings: () => Promise; - getCollection: (collection: string) => Promise; - getCollectionByPath: (path: string) => Promise; - addDocument: (args: AddArgs) => Promise; - updateDocument: (param: UpdateArgs) => Promise; + getTemplatesForCollection: (collection?: string) => Promise + getDocumentsForCollection: (collection: string) => Promise + getSettingsForCollection: (collection?: string) => Promise + getCollectionsSettings: () => Promise + getCollection: (collection: string) => Promise + getCollectionByPath: (path: string) => Promise + addDocument: (args: AddArgs) => Promise + updateDocument: (param: UpdateArgs) => Promise } export type DocumentSummary = { - _template: string; -} & TinaDocument; + _template: string +} & TinaDocument export type DocumentPartial = { - _fields: { [key: string]: Field | { [key: string]: Field } }; -} & TinaDocument; + _fields: { [key: string]: Field | { [key: string]: Field } } +} & TinaDocument diff --git a/packages/tina-graphql/src/datasources/filesystem-manager.ts b/packages/tina-graphql/src/datasources/filesystem-manager.ts index aab416dcb..c91bab04b 100644 --- a/packages/tina-graphql/src/datasources/filesystem-manager.ts +++ b/packages/tina-graphql/src/datasources/filesystem-manager.ts @@ -11,36 +11,36 @@ See the License for the specific language governing permissions and limitations under the License. */ -import fs from "fs-extra"; -import p from "path"; -import { DataAdaptor } from "./data-adaptor"; -import _ from "lodash"; +import fs from 'fs-extra' +import p from 'path' +import { DataAdaptor } from './data-adaptor' +import _ from 'lodash' export class FileSystemManager implements DataAdaptor { - rootPath: string; + rootPath: string constructor({ rootPath }: { rootPath: string }) { - this.rootPath = rootPath; + this.rootPath = rootPath } readFile = async (path: string) => { - return fs.readFileSync(path).toString(); - }; + return fs.readFileSync(path).toString() + } readDir = async (path: string): Promise => { - const result = fs.readdirSync(path); + const result = fs.readdirSync(path) return _.flatten( await Promise.all( result.map(async (item) => { - const fullPath = p.join(path, item); + const fullPath = p.join(path, item) if (fs.lstatSync(fullPath).isDirectory()) { - const nestedItems = await this.readDir(fullPath); + const nestedItems = await this.readDir(fullPath) return nestedItems.map((nestedItem) => { - return p.join(item, nestedItem); - }); + return p.join(item, nestedItem) + }) } - return item; + return item }) ) - ); - }; + ) + } writeFile = async (path: string, content: string) => { - return fs.outputFile(path, content); - }; + return fs.outputFile(path, content) + } } diff --git a/packages/tina-graphql/src/datasources/github-manager.ts b/packages/tina-graphql/src/datasources/github-manager.ts index 4a432cc67..5ff11bf1c 100644 --- a/packages/tina-graphql/src/datasources/github-manager.ts +++ b/packages/tina-graphql/src/datasources/github-manager.ts @@ -11,25 +11,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import p from "path"; -import { Octokit } from "@octokit/rest"; +import _ from 'lodash' +import p from 'path' +import { Octokit } from '@octokit/rest' type GithubManagerInit = { - rootPath: string; - accessToken: string; - owner: string; - repo: string; - ref: string; - cache?: typeof dummyCache; -}; + rootPath: string + accessToken: string + owner: string + repo: string + ref: string + cache?: typeof dummyCache +} -import { DataAdaptor } from "./data-adaptor"; +import { DataAdaptor } from './data-adaptor' export class GithubManager implements DataAdaptor { - rootPath: string; - repoConfig: Pick; - appOctoKit: Octokit; - cache: typeof dummyCache; + rootPath: string + repoConfig: Pick + appOctoKit: Octokit + cache: typeof dummyCache constructor({ rootPath, accessToken, @@ -38,21 +38,21 @@ export class GithubManager implements DataAdaptor { ref, cache, }: GithubManagerInit) { - this.cache = cache || dummyCache; - this.rootPath = rootPath; + this.cache = cache || dummyCache + this.rootPath = rootPath this.repoConfig = { owner, repo, ref, - }; + } this.appOctoKit = new Octokit({ auth: accessToken, - }); + }) } private generateKey = (key: string) => { - return `${this.repoConfig.owner}:${this.repoConfig.repo}:${this.repoConfig.ref}__${key}`; - }; + return `${this.repoConfig.owner}:${this.repoConfig.repo}:${this.repoConfig.ref}__${key}` + } readFile = async (path: string) => { return this.cache.get(this.generateKey(path), async () => { @@ -62,10 +62,10 @@ export class GithubManager implements DataAdaptor { path, }) .then((response) => { - return Buffer.from(response.data.content, "base64").toString(); - }); - }); - }; + return Buffer.from(response.data.content, 'base64').toString() + }) + }) + } readDir = async (path: string): Promise => { return _.flatten( await this.cache.get(this.generateKey(path), async () => @@ -78,51 +78,51 @@ export class GithubManager implements DataAdaptor { if (Array.isArray(response.data)) { return await Promise.all( await response.data.map(async (d) => { - if (d.type === "dir") { - const nestedItems = await this.readDir(d.path); + if (d.type === 'dir') { + const nestedItems = await this.readDir(d.path) return nestedItems.map((nestedItem) => { - return p.join(d.name, nestedItem); - }); + return p.join(d.name, nestedItem) + }) } - return d.name; + return d.name }) - ); + ) } throw new Error( `Expected to return an array from Github directory ${path}` - ); + ) }) ) - ); - }; + ) + } writeFile = async (path: string, content: string) => { // check if the file exists - let fileSha = undefined; + let fileSha = undefined try { const fileContent = await this.appOctoKit.repos.getContent({ ...this.repoConfig, path, - }); + }) - fileSha = fileContent.data.sha; + fileSha = fileContent.data.sha } catch (e) { - console.log("No file exists, creating new one"); + console.log('No file exists, creating new one') } await this.appOctoKit.repos.createOrUpdateFileContents({ ...this.repoConfig, branch: this.repoConfig.ref, path: path, - message: "Update from GraphQL client", - content: new Buffer(content).toString("base64"), + message: 'Update from GraphQL client', + content: new Buffer(content).toString('base64'), sha: fileSha, - }); - }; + }) + } } const dummyCache = { get: (key: string, setter: () => Promise) => { - return setter(); + return setter() }, -}; +} diff --git a/packages/tina-graphql/src/fields/blocks/block.spec.ts b/packages/tina-graphql/src/fields/blocks/block.spec.ts index 5a69f4230..203c78cd3 100644 --- a/packages/tina-graphql/src/fields/blocks/block.spec.ts +++ b/packages/tina-graphql/src/fields/blocks/block.spec.ts @@ -11,23 +11,23 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import type { BlocksField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import type { BlocksField } from '.' const field: BlocksField = { - label: "My Blocks", - name: "my_blocks", - type: "blocks" as const, - template_types: ["post"], - __namespace: "", -}; + label: 'My Blocks', + name: 'my_blocks', + type: 'blocks' as const, + template_types: ['post'], + __namespace: '', +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Type ${field.type} builds`, () => { - test("a union type of type SelectField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type SelectField', async () => { + expect(await run('form')).toEqual(gql` type TextField implements FormField { name: String label: String @@ -80,11 +80,11 @@ describe(`Type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); + `) + }) // FIXME: this shouldn't be reference for a simple options field - test("a value of type Reference", async () => { - expect(await run("values")).toEqual(gql` + test('a value of type Reference', async () => { + expect(await run('values')).toEqual(gql` type Post_Details_Values { reading_time: String } @@ -99,10 +99,10 @@ describe(`Type ${field.type} builds`, () => { my_blocks: [MyBlocks_Values] _template: String } - `); - }); - test("a field of type String", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type String', async () => { + expect(await run('data')).toEqual(gql` type Post_Details_Data { reading_time: String } @@ -115,13 +115,13 @@ describe(`Type ${field.type} builds`, () => { type Sample_Data { my_blocks: [MyBlocks_Data] } - `); - }); + `) + }) // FIXME: this should probably not have the "Title_" prefix on it // though it might be becauase we have different validation rules // depending on which field it belongs to? - test("an input of type SomeGroup_Input", async () => { - expect(await run("input")).toEqual(gql` + test('an input of type SomeGroup_Input', async () => { + expect(await run('input')).toEqual(gql` input Post_Details_Input { reading_time: String } @@ -136,6 +136,6 @@ describe(`Type ${field.type} builds`, () => { input Sample_Input { my_blocks: [MyBlocks_Input] } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql/src/fields/blocks/index.ts b/packages/tina-graphql/src/fields/blocks/index.ts index bc37902e0..a7322c5fd 100644 --- a/packages/tina-graphql/src/fields/blocks/index.ts +++ b/packages/tina-graphql/src/fields/blocks/index.ts @@ -11,25 +11,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import { friendlyName, templateTypeName } from "tina-graphql-helpers"; +import _ from 'lodash' +import { friendlyName, templateTypeName } from 'tina-graphql-helpers' -import { gql } from "../../gql"; -import { template } from "../templates"; -import { sequential, assertShape } from "../../util"; -import { assertIsArray, assertIsBlockValueArray } from "../"; +import { gql } from '../../gql' +import { template } from '../templates' +import { sequential, assertShape } from '../../util' +import { assertIsArray, assertIsBlockValueArray } from '../' -import type { FieldDefinitionNode, InputValueDefinitionNode } from "graphql"; -import type { BuildArgs, ResolveArgs } from "../"; -import type { TinaTemplateData } from "../../types"; +import type { FieldDefinitionNode, InputValueDefinitionNode } from 'graphql' +import type { BuildArgs, ResolveArgs } from '../' +import type { TinaTemplateData } from '../../types' export const blocks: Blocks = { build: { field: async ({ cache, field, accumulator }) => { - const typename = friendlyName(field, { suffix: "BlocksField" }); + const typename = friendlyName(field, { suffix: 'BlocksField' }) const templateName = friendlyName(field, { - suffix: "BlocksFieldTemplates", - }); + suffix: 'BlocksFieldTemplates', + }) accumulator.push( gql.ObjectTypeDefinition({ @@ -37,229 +37,228 @@ export const blocks: Blocks = { fields: await sequential( field.template_types, async (templateSlug) => { - const t = await cache.datasource.getTemplate(templateSlug); + const t = await cache.datasource.getTemplate(templateSlug) await template.build.form({ cache, template: t, accumulator, includeBody: false, - }); + }) return gql.FieldDefinition({ name: friendlyName(t, { lowerCase: true }), - type: friendlyName(t, { suffix: "Form" }), - }); + type: friendlyName(t, { suffix: 'Form' }), + }) } ), }) - ); + ) accumulator.push( gql.FormFieldBuilder({ name: typename, additionalFields: [ - gql.FieldDefinition({ name: "templates", type: templateName }), + gql.FieldDefinition({ name: 'templates', type: templateName }), ], }) - ); + ) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: async ({ cache, field, accumulator }) => { - const name = friendlyName(field, { suffix: "Values" }); + const name = friendlyName(field, { suffix: 'Values' }) await sequential(field.template_types, async (templateSlug) => { - const t = await cache.datasource.getTemplate(templateSlug); + const t = await cache.datasource.getTemplate(templateSlug) await template.build.values({ cache, template: t, accumulator, includeBody: false, - }); - }); + }) + }) accumulator.push( gql.UnionTypeDefinition({ name: name, types: field.template_types.map((t) => - friendlyName(t, { suffix: "Values" }) + friendlyName(t, { suffix: 'Values' }) ), }) - ); + ) - return gql.FieldDefinition({ name: field.name, type: name, list: true }); + return gql.FieldDefinition({ name: field.name, type: name, list: true }) }, value: async ({ cache, field, accumulator }) => { - const fieldUnionName = friendlyName(field, { suffix: "Data" }); + const fieldUnionName = friendlyName(field, { suffix: 'Data' }) await sequential(field.template_types, async (templateSlug) => { - const t = await cache.datasource.getTemplate(templateSlug); + const t = await cache.datasource.getTemplate(templateSlug) await template.build.data({ cache, template: t, accumulator, includeBody: false, - }); - }); + }) + }) accumulator.push( gql.UnionTypeDefinition({ name: fieldUnionName, types: field.template_types.map((t) => - friendlyName(t, { suffix: "Data" }) + friendlyName(t, { suffix: 'Data' }) ), }) - ); + ) return gql.FieldDefinition({ name: field.name, type: fieldUnionName, list: true, - }); + }) }, input: async ({ cache, field, accumulator }) => { await sequential(field.template_types, async (templateSlug) => { - const t = await cache.datasource.getTemplate(templateSlug); + const t = await cache.datasource.getTemplate(templateSlug) await template.build.input({ cache, template: t, accumulator, includeBody: false, - }); - }); + }) + }) accumulator.push( gql.InputObjectTypeDefinition({ - name: friendlyName(field.name, { suffix: "Input" }), + name: friendlyName(field.name, { suffix: 'Input' }), fields: field.template_types.map((template) => gql.InputValueDefinition({ name: friendlyName(template, { lowerCase: true }), - type: templateTypeName(template, "Input", false), + type: templateTypeName(template, 'Input', false), }) ), }) - ); + ) return gql.InputValueDefinition({ name: field.name, - type: friendlyName(field.name, { suffix: "Input" }), + type: friendlyName(field.name, { suffix: 'Input' }), list: true, - }); + }) }, }, resolve: { field: async ({ datasource, field }): Promise => { - const templates: { [key: string]: TinaTemplateData } = {}; + const templates: { [key: string]: TinaTemplateData } = {} await sequential(field.template_types, async (templateSlug) => { - const t = await datasource.getTemplate(templateSlug); - templates[ - friendlyName(templateSlug, { lowerCase: true }) - ] = await template.resolve.form({ - datasource, - template: t, - }); - }); + const t = await datasource.getTemplate(templateSlug) + templates[friendlyName(templateSlug, { lowerCase: true })] = + await template.resolve.form({ + datasource, + template: t, + }) + }) return { ...field, - component: "blocks" as const, + component: 'blocks' as const, templates, - __typename: friendlyName(field, { suffix: "BlocksField" }), - }; + __typename: friendlyName(field, { suffix: 'BlocksField' }), + } }, initialValue: async ({ datasource, value }) => { - assertIsBlockValueArray(value); + assertIsBlockValueArray(value) return await sequential(value, async (item) => { - const templateData = await datasource.getTemplate(item.template); + const templateData = await datasource.getTemplate(item.template) const itemValue = await template.resolve.values({ datasource, template: templateData, data: item, - }); + }) return { ...itemValue, _template: friendlyName(itemValue._template, { lowerCase: true }), - }; - }); + } + }) }, value: async ({ datasource, value }) => { - assertIsBlockValueArray(value); + assertIsBlockValueArray(value) return await sequential(value, async (item) => { - const templateData = await datasource.getTemplate(item.template); + const templateData = await datasource.getTemplate(item.template) const data = await template.resolve.data({ datasource, template: templateData, data: item, - }); + }) - return { template: item.template, ...data }; - }); + return { template: item.template, ...data } + }) }, input: async ({ field, datasource, value }) => { try { - assertIsArray(value); + assertIsArray(value) } catch (e) { - return false; + return false } const accum = ( await sequential(value, async (item) => { try { - assertShape(item, (yup) => yup.object({})); + assertShape(item, (yup) => yup.object({})) - const key = Object.keys(item)[0]; - const data = Object.values(item)[0]; + const key = Object.keys(item)[0] + const data = Object.values(item)[0] const resolvedData = await template.resolve.input({ data, template: await datasource.getTemplate(key), datasource, - }); + }) return { template: key, ...resolvedData, - }; + } } catch (e) { - console.log(e); - return false; + console.log(e) + return false } }) - ).filter(Boolean); + ).filter(Boolean) if (accum.length > 0) { - return { [field.name]: accum }; + return { [field.name]: accum } } else { - return false; + return false } }, }, -}; +} export type BlocksField = { - label: string; - name: string; - type: "blocks"; - default?: string; - template_types: string[]; - __namespace: string; + label: string + name: string + type: 'blocks' + default?: string + template_types: string[] + __namespace: string config?: { - required?: boolean; - }; -}; + required?: boolean + } +} export type TinaBlocksField = { - label: string; - name: string; - type: "blocks"; - default?: string; - component: "blocks"; + label: string + name: string + type: 'blocks' + default?: string + component: 'blocks' config?: { - required?: boolean; - }; - templates: { [key: string]: TinaTemplateData }; - __typename: string; -}; + required?: boolean + } + templates: { [key: string]: TinaTemplateData } + __typename: string +} export interface Build { /** @@ -301,22 +300,22 @@ export interface Build { cache, field, accumulator, - }: BuildArgs) => Promise; + }: BuildArgs) => Promise initialValue: ({ cache, field, accumulator, - }: BuildArgs) => Promise; + }: BuildArgs) => Promise value: ({ cache, field, accumulator, - }: BuildArgs) => Promise; + }: BuildArgs) => Promise input: ({ cache, field, accumulator, - }: BuildArgs) => Promise; + }: BuildArgs) => Promise } export interface Resolve { @@ -356,25 +355,25 @@ export interface Resolve { field: ({ datasource, field, - }: Omit, "value">) => Promise; + }: Omit, 'value'>) => Promise initialValue: ({ datasource, field, value, }: ResolveArgs) => Promise< { - __typename: string; + __typename: string // FIXME: this should exist for blocks, but - _template: string; - [key: string]: unknown; + _template: string + [key: string]: unknown }[] - >; + > value: ({ datasource, field, value, - }: ResolveArgs) => Promise; - input: ({ datasource, field, value }: ResolveArgs) => unknown; + }: ResolveArgs) => Promise + input: ({ datasource, field, value }: ResolveArgs) => unknown } export interface Blocks { /** @@ -384,6 +383,6 @@ export interface Blocks { * The build process is done ahead of time and can be cached as a static GraphQL SDL file * */ - build: Build; - resolve: Resolve; + build: Build + resolve: Resolve } diff --git a/packages/tina-graphql/src/fields/boolean/index.ts b/packages/tina-graphql/src/fields/boolean/index.ts index dd1790bd1..4be2c9df1 100644 --- a/packages/tina-graphql/src/fields/boolean/index.ts +++ b/packages/tina-graphql/src/fields/boolean/index.ts @@ -11,58 +11,58 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { assertIsBoolean, assertIsString, BuildArgs, ResolveArgs } from "../"; +import { assertIsBoolean, assertIsString, BuildArgs, ResolveArgs } from '../' -const typename = "BooleanField"; +const typename = 'BooleanField' export const boolean = { build: { field: async ({ field, accumulator }: BuildArgs) => { - accumulator.push(gql.FormFieldBuilder({ name: typename })); + accumulator.push(gql.FormFieldBuilder({ name: typename })) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Boolean }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Boolean }) }, value: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Boolean }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Boolean }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.Boolean, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaBooleanField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaBooleanField => { + const { type, ...rest } = field return { ...rest, - component: "toggle", + component: 'toggle', config: rest.config || { required: false, }, - __typename: "BooleanField", - }; + __typename: 'BooleanField', + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsBoolean(value, { source: "boolean initial value" }); - return value; + assertIsBoolean(value, { source: 'boolean initial value' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsBoolean(value, { source: "boolean value" }); - return value; + assertIsBoolean(value, { source: 'boolean value' }) + return value }, input: async ({ field, @@ -71,33 +71,33 @@ export const boolean = { { [key: string]: boolean } | false > => { try { - assertIsBoolean(value, { source: "boolean input" }); - return { [field.name]: value }; + assertIsBoolean(value, { source: 'boolean input' }) + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type BooleanField = { - label: string; - name: string; - type: "boolean"; - default?: string; + label: string + name: string + type: 'boolean' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaBooleanField = { - label: string; - name: string; - component: "toggle"; - default?: string; + label: string + name: string + component: 'toggle' + default?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/datetime/index.ts b/packages/tina-graphql/src/fields/datetime/index.ts index f5ca2b0bc..9ac273646 100644 --- a/packages/tina-graphql/src/fields/datetime/index.ts +++ b/packages/tina-graphql/src/fields/datetime/index.ts @@ -11,15 +11,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; -import isValid from "date-fns/isValid"; -import parseISO from "date-fns/parseISO"; -import format from "date-fns/format"; +import { gql } from '../../gql' +import isValid from 'date-fns/isValid' +import parseISO from 'date-fns/parseISO' +import format from 'date-fns/format' -import { BuildArgs, ResolveArgs, assertIsString } from "../"; +import { BuildArgs, ResolveArgs, assertIsString } from '../' -const typename = "DatetimeField"; -const DEFAULT_DATE_FORMAT = "MMM dd, yyyy"; +const typename = 'DatetimeField' +const DEFAULT_DATE_FORMAT = 'MMM dd, yyyy' export const datetime = { build: { @@ -29,59 +29,59 @@ export const datetime = { name: typename, additionalFields: [ gql.FieldDefinition({ - name: "dateFormat", + name: 'dateFormat', type: gql.TYPES.String, }), gql.FieldDefinition({ - name: "timeFormat", + name: 'timeFormat', type: gql.TYPES.String, }), ], }) - ); + ) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, value: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaDatetimeField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaDatetimeField => { + const { type, ...rest } = field return { ...rest, - component: "date", + component: 'date', __typename: typename, config: rest.config || { required: false, }, - }; + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsString(value, { source: "datetime" }); - return value; + assertIsString(value, { source: 'datetime' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsString(value, { source: "datetime" }); - return value; + assertIsString(value, { source: 'datetime' }) + return value }, input: async ({ field, @@ -90,14 +90,14 @@ export const datetime = { { [key: string]: string } | false > => { try { - assertIsString(value, { source: "datetime" }); + assertIsString(value, { source: 'datetime' }) /** * Convert string to `new Date()` */ - const date = parseISO(value); + const date = parseISO(value) if (!isValid(date)) { - throw "Invalid Date"; + throw 'Invalid Date' } /** @@ -106,7 +106,7 @@ export const datetime = { */ const dateUTC = new Date( date.valueOf() + date.getTimezoneOffset() * 60 * 1000 - ); + ) /** * Determine dateFormat @@ -115,52 +115,50 @@ export const datetime = { * They are explained here: * https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md */ - const dateFormat = field.dateFormat || DEFAULT_DATE_FORMAT; - const fixedDateFormat = dateFormat - .replace(/D/g, "d") - .replace(/Y/g, "y"); + const dateFormat = field.dateFormat || DEFAULT_DATE_FORMAT + const fixedDateFormat = dateFormat.replace(/D/g, 'd').replace(/Y/g, 'y') /** * Determine timeFormat, if any */ - const timeFormat = field.timeFormat || false; + const timeFormat = field.timeFormat || false /** * Format `date` and `time` parts */ - const datePart = format(dateUTC, fixedDateFormat); - const timePart = timeFormat ? ` ${format(dateUTC, timeFormat)}` : ""; + const datePart = format(dateUTC, fixedDateFormat) + const timePart = timeFormat ? ` ${format(dateUTC, timeFormat)}` : '' - return { [field.name]: `${datePart}${timePart}` }; + return { [field.name]: `${datePart}${timePart}` } } catch (e) { - return false; + return false } }, }, -}; +} export type DatetimeField = { - label: string; - name: string; - type: "datetime"; - default?: string; - dateFormat?: string; - timeFormat?: string; + label: string + name: string + type: 'datetime' + default?: string + dateFormat?: string + timeFormat?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaDatetimeField = { - label: string; - name: string; - component: "date"; - default?: string; - dateFormat?: string; - timeFormat?: string; + label: string + name: string + component: 'date' + default?: string + dateFormat?: string + timeFormat?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/field-group-list/field-group-list.spec.ts b/packages/tina-graphql/src/fields/field-group-list/field-group-list.spec.ts index 5493aec15..ac9872810 100644 --- a/packages/tina-graphql/src/fields/field-group-list/field-group-list.spec.ts +++ b/packages/tina-graphql/src/fields/field-group-list/field-group-list.spec.ts @@ -11,30 +11,30 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import { FieldGroupListField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import { FieldGroupListField } from '.' const field: FieldGroupListField = { - label: "My Group", - name: "some_group", - type: "field_group_list" as const, + label: 'My Group', + name: 'some_group', + type: 'field_group_list' as const, fields: [ { - label: "Title", - name: "title", - type: "text" as const, - __namespace: "", + label: 'Title', + name: 'title', + type: 'text' as const, + __namespace: '', }, ], - __namespace: "", -}; + __namespace: '', +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Field of type ${field.type} builds`, () => { - test("a union type of type SomeGroup_GroupField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type SomeGroup_GroupField', async () => { + expect(await run('form')).toEqual(gql` type TextField implements FormField { name: String label: String @@ -55,10 +55,10 @@ describe(`Field of type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); - test("a value of type SomeGroup_Values", async () => { - expect(await run("values")).toEqual(gql` + `) + }) + test('a value of type SomeGroup_Values', async () => { + expect(await run('values')).toEqual(gql` type SomeGroup_Values { title: String } @@ -66,29 +66,29 @@ describe(`Field of type ${field.type} builds`, () => { some_group: [SomeGroup_Values] _template: String } - `); - }); - test("a field of type SomeGroup_Data", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type SomeGroup_Data', async () => { + expect(await run('data')).toEqual(gql` type SomeGroup_Data { title: String } type Sample_Data { some_group: [SomeGroup_Data] } - `); - }); + `) + }) // FIXME: this should probably not have the "Title_" prefix on it // though it might be becauase we have different validation rules // depending on which field it belongs to? - test("an input of type SomeGroup_Input", async () => { - expect(await run("input")).toEqual(gql` + test('an input of type SomeGroup_Input', async () => { + expect(await run('input')).toEqual(gql` input SomeGroup_Input { title: String } input Sample_Input { some_group: [SomeGroup_Input] } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql/src/fields/field-group-list/index.ts b/packages/tina-graphql/src/fields/field-group-list/index.ts index 2d07c2e66..b74bbaa67 100644 --- a/packages/tina-graphql/src/fields/field-group-list/index.ts +++ b/packages/tina-graphql/src/fields/field-group-list/index.ts @@ -11,39 +11,39 @@ See the License for the specific language governing permissions and limitations under the License. */ -import * as yup from "yup"; -import { friendlyName } from "tina-graphql-helpers"; -import { gql } from "../../gql"; +import * as yup from 'yup' +import { friendlyName } from 'tina-graphql-helpers' +import { gql } from '../../gql' -import { template } from "../templates"; -import { sequential } from "../../util"; +import { template } from '../templates' +import { sequential } from '../../util' -import { BuildArgs, ResolveArgs } from "../"; -import type { Field, TinaField } from "../index"; -import { fieldGroup } from "../field-group"; +import { BuildArgs, ResolveArgs } from '../' +import type { Field, TinaField } from '../index' +import { fieldGroup } from '../field-group' export type FieldGroupListField = { - label: string; - name: string; - type: "field_group_list"; - default?: string; - fields: Field[]; - __namespace: string; + label: string + name: string + type: 'field_group_list' + default?: string + fields: Field[] + __namespace: string config?: { - required?: boolean; - }; -}; + required?: boolean + } +} export type TinaFieldGroupListField = { - label: string; - name: string; - component: "group-list"; - __typename: string; - default?: string; - fields: TinaField[]; + label: string + name: string + component: 'group-list' + __typename: string + default?: string + fields: TinaField[] config?: { - required?: boolean; - }; -}; + required?: boolean + } +} export const fieldGroupList = { build: { @@ -52,29 +52,29 @@ export const fieldGroupList = { field, accumulator, }: BuildArgs) => { - const typename = friendlyName(field, { suffix: "GroupListField" }); + const typename = friendlyName(field, { suffix: 'GroupListField' }) const fieldsUnionName = await template.build.fields({ cache, template: field, accumulator, includeBody: false, - }); + }) accumulator.push( gql.FormFieldBuilder({ name: typename, additionalFields: [ gql.FieldDefinition({ - name: "fields", + name: 'fields', type: fieldsUnionName, list: true, }), ], }) - ); + ) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: async ({ cache, @@ -87,13 +87,13 @@ export const fieldGroupList = { accumulator, includeBody: false, includeTemplate: false, - }); + }) return gql.FieldDefinition({ name: field.name, type: initialValueName, list: true, - }); + }) }, value: async ({ cache, @@ -105,12 +105,12 @@ export const fieldGroupList = { template: field, accumulator, includeBody: false, - }); + }) return gql.FieldDefinition({ name: field.name, type: name, list: true, - }); + }) }, input: async ({ cache, @@ -122,41 +122,42 @@ export const fieldGroupList = { template: field, accumulator, includeBody: false, - }); + }) return gql.InputValueDefinition({ name: field.name, type: name, list: true, - }); + }) }, }, resolve: { field: async ({ datasource, field, - }: Omit, "value">): Promise< - TinaFieldGroupListField - > => { - const { type, ...rest } = field; + }: Omit< + ResolveArgs, + 'value' + >): Promise => { + const { type, ...rest } = field const t = await template.resolve.form({ datasource, template: field, includeBody: false, - }); + }) return { ...rest, ...t, - component: "group-list", - __typename: friendlyName(field, { suffix: "GroupListField" }), - }; + component: 'group-list', + __typename: friendlyName(field, { suffix: 'GroupListField' }), + } }, initialValue: async ({ datasource, field, value, }: ResolveArgs) => { - assertIsDataArray(value); + assertIsDataArray(value) return sequential( value, async (v: any) => @@ -165,14 +166,14 @@ export const fieldGroupList = { template: field, data: v, }) - ); + ) }, value: async ({ datasource, field, value, }: ResolveArgs) => { - assertIsDataArray(value); + assertIsDataArray(value) return await sequential( value, async (v: any) => @@ -181,7 +182,7 @@ export const fieldGroupList = { template: field, data: v, }) - ); + ) }, input: async ({ datasource, @@ -191,36 +192,34 @@ export const fieldGroupList = { { [key: string]: unknown } | false > => { try { - assertIsDataArray(value); + assertIsDataArray(value) const values = await sequential(value, async (v) => { return await template.resolve.input({ data: v, template: field, datasource, - }); - }); + }) + }) // Empty arrays are useless if (values && values.length > 0) { return { [field.name]: values, - }; + } } else { - return false; + return false } } catch (e) { - return false; + return false } }, }, -}; +} -function assertIsDataArray( - value: unknown -): asserts value is { - [key: string]: unknown; +function assertIsDataArray(value: unknown): asserts value is { + [key: string]: unknown }[] { - const schema = yup.array().of(yup.object({})); - schema.validateSync(value); + const schema = yup.array().of(yup.object({})) + schema.validateSync(value) } diff --git a/packages/tina-graphql/src/fields/field-group/field-group.spec.ts b/packages/tina-graphql/src/fields/field-group/field-group.spec.ts index da5be27f9..077f07b19 100644 --- a/packages/tina-graphql/src/fields/field-group/field-group.spec.ts +++ b/packages/tina-graphql/src/fields/field-group/field-group.spec.ts @@ -11,30 +11,30 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import { FieldGroupField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import { FieldGroupField } from '.' const field: FieldGroupField = { - label: "My Group", - name: "some_group", - type: "field_group" as const, + label: 'My Group', + name: 'some_group', + type: 'field_group' as const, fields: [ { - label: "Title", - name: "title", - type: "text" as const, - __namespace: "", + label: 'Title', + name: 'title', + type: 'text' as const, + __namespace: '', }, ], - __namespace: "", -}; + __namespace: '', +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Field of type ${field.type} builds`, () => { - test("a union type of type SomeGroup_GroupField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type SomeGroup_GroupField', async () => { + expect(await run('form')).toEqual(gql` type TextField implements FormField { name: String label: String @@ -55,10 +55,10 @@ describe(`Field of type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); - test("a value of type SomeGroup_Values", async () => { - expect(await run("values")).toEqual(gql` + `) + }) + test('a value of type SomeGroup_Values', async () => { + expect(await run('values')).toEqual(gql` type SomeGroup_Values { title: String } @@ -66,29 +66,29 @@ describe(`Field of type ${field.type} builds`, () => { some_group: SomeGroup_Values _template: String } - `); - }); - test("a field of type SomeGroup_Data", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type SomeGroup_Data', async () => { + expect(await run('data')).toEqual(gql` type SomeGroup_Data { title: String } type Sample_Data { some_group: SomeGroup_Data } - `); - }); + `) + }) // FIXME: this should probably not have the "Title_" prefix on it // though it might be becauase we have different validation rules // depending on which field it belongs to? - test("an input of type SomeGroup_Input", async () => { - expect(await run("input")).toEqual(gql` + test('an input of type SomeGroup_Input', async () => { + expect(await run('input')).toEqual(gql` input SomeGroup_Input { title: String } input Sample_Input { some_group: SomeGroup_Input } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql/src/fields/field-group/index.ts b/packages/tina-graphql/src/fields/field-group/index.ts index 807227c43..9c666396c 100644 --- a/packages/tina-graphql/src/fields/field-group/index.ts +++ b/packages/tina-graphql/src/fields/field-group/index.ts @@ -11,14 +11,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { friendlyName } from "tina-graphql-helpers"; -import * as yup from "yup"; -import { gql } from "../../gql"; +import { friendlyName } from 'tina-graphql-helpers' +import * as yup from 'yup' +import { gql } from '../../gql' -import { template } from "../templates"; +import { template } from '../templates' -import type { Field, TinaField } from "../index"; -import { BuildArgs, ResolveArgs } from "../"; +import type { Field, TinaField } from '../index' +import { BuildArgs, ResolveArgs } from '../' export const fieldGroup = { build: { @@ -27,30 +27,30 @@ export const fieldGroup = { field, accumulator, }: BuildArgs) => { - const typename = friendlyName(field, { suffix: "GroupField" }); + const typename = friendlyName(field, { suffix: 'GroupField' }) const fieldsUnionName = await template.build.fields({ cache, template: field, accumulator, includeBody: false, - }); + }) accumulator.push( gql.FormFieldBuilder({ name: typename, additionalFields: [ gql.FieldDefinition({ - name: "fields", + name: 'fields', type: fieldsUnionName, list: true, }), ], }) - ); + ) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: async ({ cache, @@ -63,9 +63,9 @@ export const fieldGroup = { accumulator, includeBody: false, includeTemplate: false, - }); + }) - return gql.FieldDefinition({ name: field.name, type: initialValueName }); + return gql.FieldDefinition({ name: field.name, type: initialValueName }) }, value: async ({ cache, @@ -77,8 +77,8 @@ export const fieldGroup = { template: field, accumulator, includeBody: false, - }); - return gql.FieldDefinition({ name: field.name, type: name }); + }) + return gql.FieldDefinition({ name: field.name, type: name }) }, input: async ({ cache, @@ -90,56 +90,57 @@ export const fieldGroup = { template: field, accumulator, includeBody: false, - }); - return gql.InputValueDefinition({ name: field.name, type: name }); + }) + return gql.InputValueDefinition({ name: field.name, type: name }) }, }, resolve: { field: async ({ datasource, field, - }: Omit, "value">): Promise< - TinaFieldGroupField - > => { - const { type, ...rest } = field; + }: Omit< + ResolveArgs, + 'value' + >): Promise => { + const { type, ...rest } = field const t = await template.resolve.form({ datasource, template: field, includeBody: false, - }); + }) return { ...rest, ...t, - component: "group", - __typename: friendlyName(field, { suffix: "GroupField" }), - }; + component: 'group', + __typename: friendlyName(field, { suffix: 'GroupField' }), + } }, initialValue: async ({ datasource, field, value, }: ResolveArgs) => { - assertIsData(value); + assertIsData(value) return await template.resolve.values({ datasource, template: field, data: value, - }); + }) }, value: async ({ datasource, field, value, }: ResolveArgs) => { - assertIsData(value); + assertIsData(value) return await template.resolve.data({ datasource, template: field, data: value, - }); + }) }, input: async ({ datasource, @@ -147,28 +148,26 @@ export const fieldGroup = { value, }: ResolveArgs) => { try { - assertIsData(value); + assertIsData(value) return { [field.name]: await template.resolve.input({ data: value, template: field, datasource, }), - }; + } } catch (e) { - return false; + return false } }, }, -}; +} -function assertIsData( - value: unknown -): asserts value is { - [key: string]: unknown; +function assertIsData(value: unknown): asserts value is { + [key: string]: unknown } { - const schema = yup.object({}).required(); - schema.validateSync(value); + const schema = yup.object({}).required() + schema.validateSync(value) } /** @@ -185,27 +184,27 @@ function assertIsData( * ``` */ export type FieldGroupField = { - label: string; - name: string; - type: "field_group"; - default?: string; - fields: Field[]; + label: string + name: string + type: 'field_group' + default?: string + fields: Field[] config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaFieldGroupField = { - label: string; - name: string; - component: "group"; - __typename: string; - default?: string; - fields: TinaField[]; + label: string + name: string + component: 'group' + __typename: string + default?: string + fields: TinaField[] config?: { - required?: boolean; - }; -}; + required?: boolean + } +} export type FieldGroupValue = { - [key: string]: unknown; -}; + [key: string]: unknown +} diff --git a/packages/tina-graphql/src/fields/file/index.ts b/packages/tina-graphql/src/fields/file/index.ts index 0ad523fca..69f9a8aac 100644 --- a/packages/tina-graphql/src/fields/file/index.ts +++ b/packages/tina-graphql/src/fields/file/index.ts @@ -11,90 +11,90 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { assertIsString, BuildArgs, ResolveArgs } from "../"; +import { assertIsString, BuildArgs, ResolveArgs } from '../' -const typename = "FileField"; +const typename = 'FileField' export const file = { build: { field: async ({ field, accumulator }: BuildArgs) => { - accumulator.push(gql.FormFieldBuilder({ name: typename })); + accumulator.push(gql.FormFieldBuilder({ name: typename })) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, value: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaFileField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaFileField => { + const { type, ...rest } = field return { ...rest, - component: "image", + component: 'image', __typename: typename, config: rest.config || { required: false, }, - }; + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsString(value, { source: "file initial value" }); - return value; + assertIsString(value, { source: 'file initial value' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsString(value, { source: "file value" }); - return value; + assertIsString(value, { source: 'file value' }) + return value }, input: async ({ field, value, }: ResolveArgs): Promise<{ [key: string]: string } | false> => { try { - assertIsString(value, { source: "file input" }); - return { [field.name]: value }; + assertIsString(value, { source: 'file input' }) + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type FileField = { - label: string; - name: string; - type: "file"; - default?: string; + label: string + name: string + type: 'file' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaFileField = { - label: string; - name: string; - component: "image"; - default?: string; + label: string + name: string + component: 'image' + default?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/image-gallery/index.ts b/packages/tina-graphql/src/fields/image-gallery/index.ts index 8d0bd5da5..3b07ef07a 100644 --- a/packages/tina-graphql/src/fields/image-gallery/index.ts +++ b/packages/tina-graphql/src/fields/image-gallery/index.ts @@ -11,10 +11,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { BuildArgs, ResolveArgs, assertIsStringArray } from "../"; -import { list, TinaListField } from "../list"; +import { BuildArgs, ResolveArgs, assertIsStringArray } from '../' +import { list, TinaListField } from '../list' export const imageGallery = { build: { @@ -27,53 +27,54 @@ export const imageGallery = { cache, field: list.imageGalleryField(field), accumulator, - }); + }) }, initialValue: ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, value: ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, }, resolve: { field: async ({ datasource, field, - }: Omit, "value">): Promise< - TinaImageGalleryField - > => { + }: Omit< + ResolveArgs, + 'value' + >): Promise => { return await list.resolve.field({ datasource, field: list.imageGalleryField(field), - }); + }) }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsStringArray(value, { source: "image gallery initial value" }); - return value; + assertIsStringArray(value, { source: 'image gallery initial value' }) + return value }, value: async ({ value, }: ResolveArgs): Promise => { - assertIsStringArray(value, { source: "image gallery value" }); - return value; + assertIsStringArray(value, { source: 'image gallery value' }) + return value }, input: async ({ field, @@ -82,25 +83,25 @@ export const imageGallery = { { [key: string]: string[] } | false > => { try { - assertIsStringArray(value, { source: "image gallery input" }); + assertIsStringArray(value, { source: 'image gallery input' }) - return { [field.name]: value }; + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type ImageGalleryField = { - label: string; - name: string; - type: "image_gallery"; - default?: string; + label: string + name: string + type: 'image_gallery' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} -export type TinaImageGalleryField = TinaListField; +export type TinaImageGalleryField = TinaListField diff --git a/packages/tina-graphql/src/fields/index.ts b/packages/tina-graphql/src/fields/index.ts index 716497055..e45c46e46 100644 --- a/packages/tina-graphql/src/fields/index.ts +++ b/packages/tina-graphql/src/fields/index.ts @@ -11,28 +11,28 @@ See the License for the specific language governing permissions and limitations under the License. */ -import * as yup from "yup"; - -import type { TextField, TinaTextField } from "./text"; -import type { ListField, TinaListField } from "./list"; -import type { SelectField, TinaSelectField } from "./select"; -import type { BlocksField, TinaBlocksField } from "./blocks"; -import type { TextareaField, TinaTextareaField } from "./textarea"; -import type { FieldGroupField, TinaFieldGroupField } from "./field-group"; -import type { BooleanField, TinaBooleanField } from "./boolean"; -import type { DatetimeField, TinaDatetimeField } from "./datetime"; -import type { FileField, TinaFileField } from "./file"; -import type { ImageGalleryField, TinaImageGalleryField } from "./image-gallery"; -import type { NumberField, TinaNumberField } from "./number"; -import type { TagListField, TinaTagListField } from "./tag-list"; +import * as yup from 'yup' + +import type { TextField, TinaTextField } from './text' +import type { ListField, TinaListField } from './list' +import type { SelectField, TinaSelectField } from './select' +import type { BlocksField, TinaBlocksField } from './blocks' +import type { TextareaField, TinaTextareaField } from './textarea' +import type { FieldGroupField, TinaFieldGroupField } from './field-group' +import type { BooleanField, TinaBooleanField } from './boolean' +import type { DatetimeField, TinaDatetimeField } from './datetime' +import type { FileField, TinaFileField } from './file' +import type { ImageGalleryField, TinaImageGalleryField } from './image-gallery' +import type { NumberField, TinaNumberField } from './number' +import type { TagListField, TinaTagListField } from './tag-list' import type { FieldGroupListField, TinaFieldGroupListField, -} from "./field-group-list"; +} from './field-group-list' -import type { Definitions } from "../builder"; -import type { DataSource } from "../datasources/datasource"; -import type { Cache } from "../cache"; +import type { Definitions } from '../builder' +import type { DataSource } from '../datasources/datasource' +import type { Cache } from '../cache' export type Field = | TextField @@ -47,7 +47,7 @@ export type Field = | ImageGalleryField | NumberField | TagListField - | BooleanField; + | BooleanField export type TinaField = | TinaTextField @@ -62,26 +62,26 @@ export type TinaField = | TinaListField | TinaNumberField | TinaTagListField - | TinaBooleanField; + | TinaBooleanField export type BuildArgs = { - cache: Cache; - field: T; - accumulator: Definitions[]; -}; + cache: Cache + field: T + accumulator: Definitions[] +} export type ResolveArgs = { - datasource: DataSource; - field: T; - value: unknown; -}; + datasource: DataSource + field: T + value: unknown +} export function assertIsString( value: unknown, options: { source: string } ): asserts value is string { - if (typeof value !== "string") { - throw new Error(`Unexpected value of type string for ${options.source}`); + if (typeof value !== 'string') { + throw new Error(`Unexpected value of type string for ${options.source}`) } } @@ -89,10 +89,10 @@ export function assertIsBoolean( value: unknown, options: { source: string } ): asserts value is boolean { - if (typeof value !== "boolean") { + if (typeof value !== 'boolean') { throw new Error( `Unexpected value of type ${typeof value} for ${options.source}` - ); + ) } } @@ -100,10 +100,10 @@ export function assertIsNumber( value: unknown, options: { source: string } ): asserts value is number { - if (typeof value !== "number") { + if (typeof value !== 'number') { throw new Error( `Unexpected value of type ${typeof value} for ${options.source}` - ); + ) } } @@ -111,15 +111,15 @@ export function assertIsStringArray( value: unknown, options: { source: string } ): asserts value is string[] { - const schema = yup.array().of(yup.string()); + const schema = yup.array().of(yup.string()) try { - schema.validateSync(value); + schema.validateSync(value) } catch (e) { - console.log(value); + console.log(value) throw new Error( `Unexpected array of strings for ${options.source} - ${e.message}` - ); + ) } } @@ -128,40 +128,40 @@ export function assertShape( schema: yup.Schema ): asserts value is T { try { - schema.validateSync(value); + schema.validateSync(value) } catch (e) { - console.log(value); - throw new Error(`Failed to assertIsBlockValueArray - ${e.message}`); + console.log(value) + throw new Error(`Failed to assertIsBlockValueArray - ${e.message}`) } } export function assertIsArray(value: unknown): asserts value is unknown[] { if (!Array.isArray(value)) { - throw new Error("Expected an array for block input value"); + throw new Error('Expected an array for block input value') } } export function assertIsBlockInput( value: unknown ): asserts value is { data: { template: string } & object } { - assertIsObject(value); - const data = Object.values(value)[0]; + assertIsObject(value) + const data = Object.values(value)[0] const schema = yup .object({ template: yup.string().required(), }) - .required(); + .required() try { - schema.validateSync(data); + schema.validateSync(data) } catch (e) { - console.log(value); - throw new Error(`Failed to assertIsBlockInput - ${e.message}`); + console.log(value) + throw new Error(`Failed to assertIsBlockInput - ${e.message}`) } } export function assertIsObject(value: unknown): asserts value is object { - const schema = yup.object().required(); - schema.validateSync(value); + const schema = yup.object().required() + schema.validateSync(value) } export function assertIsBlockInitialValue( @@ -169,12 +169,12 @@ export function assertIsBlockInitialValue( ): asserts value is BlockInitialValue { const schema = yup.object({ _template: yup.string().required(), - }); + }) try { - schema.validateSync(value); + schema.validateSync(value) } catch (e) { - console.log(value); - throw new Error(`Failed to assertIsBlockInitialValue - ${e.message}`); + console.log(value) + throw new Error(`Failed to assertIsBlockInitialValue - ${e.message}`) } } export function assertIsBlockValue( @@ -182,12 +182,12 @@ export function assertIsBlockValue( ): asserts value is BlockValue { const schema = yup.object({ template: yup.string().required(), - }); + }) try { - schema.validateSync(value); + schema.validateSync(value) } catch (e) { - console.log(value); - throw new Error(`Failed to assertIsBlockValue - ${e.message}`); + console.log(value) + throw new Error(`Failed to assertIsBlockValue - ${e.message}`) } } export function assertIsBlockValueArray( @@ -197,21 +197,21 @@ export function assertIsBlockValueArray( yup.object({ template: yup.string().required(), }) - ); + ) try { - schema.validateSync(value); + schema.validateSync(value) } catch (e) { - console.log(value); - throw new Error(`Failed to assertIsBlockValueArray - ${e.message}`); + console.log(value) + throw new Error(`Failed to assertIsBlockValueArray - ${e.message}`) } } type BlockValue = { - template: string; - [key: string]: unknown; -}; + template: string + [key: string]: unknown +} type BlockInitialValue = { - _template: string; - [key: string]: unknown; -}; + _template: string + [key: string]: unknown +} diff --git a/packages/tina-graphql/src/fields/list/index.ts b/packages/tina-graphql/src/fields/list/index.ts index cf437d2e1..c6134678b 100644 --- a/packages/tina-graphql/src/fields/list/index.ts +++ b/packages/tina-graphql/src/fields/list/index.ts @@ -11,18 +11,18 @@ See the License for the specific language governing permissions and limitations under the License. */ -import * as yup from "yup"; -import { friendlyName } from "tina-graphql-helpers"; -import { gql } from "../../gql"; +import * as yup from 'yup' +import { friendlyName } from 'tina-graphql-helpers' +import { gql } from '../../gql' -import { select } from "../select"; -import { text } from "../text"; +import { select } from '../select' +import { text } from '../text' -import { assertIsStringArray, BuildArgs, ResolveArgs } from "../"; -import type { TinaField } from "../index"; -import type { ImageGalleryField } from "../image-gallery"; +import { assertIsStringArray, BuildArgs, ResolveArgs } from '../' +import type { TinaField } from '../index' +import type { ImageGalleryField } from '../image-gallery' -const typename = "ListField"; +const typename = 'ListField' export const list = { /** @@ -31,7 +31,7 @@ export const list = { */ imageGalleryField: (field: ImageGalleryField) => ({ ...field, - type: "list" as const, + type: 'list' as const, config: { use_select: false, }, @@ -43,88 +43,88 @@ export const list = { // is otherwise not present in the schema we need to ensure it's built text.build.field({ cache, - field: { name: "", label: "", type: "text", __namespace: "" }, + field: { name: '', label: '', type: 'text', __namespace: '' }, accumulator, - }); + }) select.build.field({ cache, field: { - name: "", - label: "", - type: "select", + name: '', + label: '', + type: 'select', config: { - options: [""], + options: [''], source: { - type: "simple", + type: 'simple', }, }, }, accumulator, - }); + }) - const unionName = "List_FormFieldsUnion"; + const unionName = 'List_FormFieldsUnion' accumulator.push( gql.UnionTypeDefinition({ name: unionName, - types: ["TextField", "SelectField"], + types: ['TextField', 'SelectField'], }) - ); + ) accumulator.push( gql.FormFieldBuilder({ name: typename, additionalFields: [ gql.FieldDefinition({ - name: "defaultItem", + name: 'defaultItem', type: gql.TYPES.String, }), - gql.FieldDefinition({ name: "field", type: unionName }), + gql.FieldDefinition({ name: 'field', type: unionName }), ], }) - ); + ) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: async ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, value: async ({ cache, field, accumulator }: BuildArgs) => { - let listTypeIdentifier: "simple" | "pages" | "documents" = "simple"; + let listTypeIdentifier: 'simple' | 'pages' | 'documents' = 'simple' listTypeIdentifier = - field.config?.source?.type === "documents" - ? "documents" - : field.config?.source?.type === "pages" - ? "pages" - : "simple"; + field.config?.source?.type === 'documents' + ? 'documents' + : field.config?.source?.type === 'pages' + ? 'pages' + : 'simple' - let list; + let list switch (listTypeIdentifier) { - case "documents": - list = field as DocumentList; - throw new Error(`document select not implemented`); - case "pages": - list = field as SectionList; + case 'documents': + list = field as DocumentList + throw new Error(`document select not implemented`) + case 'pages': + list = field as SectionList const section = await cache.datasource.getSettingsForCollection( list.config.source.section - ); + ) return gql.FieldDefinition({ name: field.name, - type: friendlyName(section.slug, { suffix: "Document" }), + type: friendlyName(section.slug, { suffix: 'Document' }), list: true, - }); - case "simple": - list = field as SimpleList; + }) + case 'simple': + list = field as SimpleList return gql.FieldDefinition({ name: list.name, type: gql.TYPES.String, list: true, - }); + }) } }, input: async ({ field }: BuildArgs) => { @@ -132,119 +132,119 @@ export const list = { name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, }, resolve: { field: async ({ datasource, field, - }: Omit, "value">): Promise => { - const { ...rest } = field; + }: Omit, 'value'>): Promise => { + const { ...rest } = field - let listTypeIdentifier: "simple" | "pages" | "documents" = "simple"; + let listTypeIdentifier: 'simple' | 'pages' | 'documents' = 'simple' listTypeIdentifier = - field.config?.source?.type === "documents" - ? "documents" - : field.config?.source?.type === "pages" - ? "pages" - : "simple"; - let defaultItem = ""; + field.config?.source?.type === 'documents' + ? 'documents' + : field.config?.source?.type === 'pages' + ? 'pages' + : 'simple' + let defaultItem = '' // FIXME this should be a subset type of TinaField, // this property doesn't need most of these fields let fieldComponent: TinaField = { - default: "", - name: "", - label: "Text", - component: "text", - __typename: "TextField" as const, - }; - let list; + default: '', + name: '', + label: 'Text', + component: 'text', + __typename: 'TextField' as const, + } + let list switch (listTypeIdentifier) { - case "documents": - list = field as DocumentList; - throw new Error(`document list not implemented`); - case "pages": - list = field as SectionList; + case 'documents': + list = field as DocumentList + throw new Error(`document list not implemented`) + case 'pages': + list = field as SectionList const selectField = { ...list, - component: "select" as const, - type: "select" as const, - __typename: "SelectField", - }; + component: 'select' as const, + type: 'select' as const, + __typename: 'SelectField', + } fieldComponent = await select.resolve.field({ datasource, field: selectField, - }); - defaultItem = fieldComponent.options[0]; - break; - case "simple": - list = field as SimpleList; - break; + }) + defaultItem = fieldComponent.options[0] + break + case 'simple': + list = field as SimpleList + break // Do nothing, this is the default } return { ...rest, - component: "list", + component: 'list', field: fieldComponent, defaultItem, __typename: typename, - }; + } }, initialValue: async ({ value, }: ResolveArgs): Promise< | { - _resolver: "_resource"; - _resolver_kind: "_nested_sources"; - _args: { paths: string[] }; + _resolver: '_resource' + _resolver_kind: '_nested_sources' + _args: { paths: string[] } } | string[] > => { - assertIsStringArray(value, { source: "list initial values" }); - return value; + assertIsStringArray(value, { source: 'list initial values' }) + return value }, value: async ({ field, value, }: ResolveArgs): Promise< | { - _resolver: "_resource"; - _resolver_kind: "_nested_sources"; - _args: { fullPaths: string[]; collection: string }; + _resolver: '_resource' + _resolver_kind: '_nested_sources' + _args: { fullPaths: string[]; collection: string } } | string[] > => { - assertIsStringArray(value, { source: "list values" }); - let listTypeIdentifier: "simple" | "pages" | "documents" = "simple"; + assertIsStringArray(value, { source: 'list values' }) + let listTypeIdentifier: 'simple' | 'pages' | 'documents' = 'simple' listTypeIdentifier = - field.config?.source?.type === "documents" - ? "documents" - : field.config?.source?.type === "pages" - ? "pages" - : "simple"; - let list; + field.config?.source?.type === 'documents' + ? 'documents' + : field.config?.source?.type === 'pages' + ? 'pages' + : 'simple' + let list switch (listTypeIdentifier) { - case "documents": - list = field as DocumentList; - throw new Error(`document list not implemented`); - case "pages": + case 'documents': + list = field as DocumentList + throw new Error(`document list not implemented`) + case 'pages': // FIXME - get it - list = field as SectionList; + list = field as SectionList return { - _resolver: "_resource", - _resolver_kind: "_nested_sources", + _resolver: '_resource', + _resolver_kind: '_nested_sources', _args: { fullPaths: value, collection: list.config.source.section, }, - }; - case "simple": - list = field as SimpleList; - return value; + } + case 'simple': + list = field as SimpleList + return value } }, input: async ({ @@ -253,89 +253,89 @@ export const list = { }: ResolveArgs): Promise< | { [key: string]: { - _resolver: "_resource"; - _resolver_kind: "_nested_sources"; - _args: { paths: string[] }; - }; + _resolver: '_resource' + _resolver_kind: '_nested_sources' + _args: { paths: string[] } + } } | { [key: string]: string[] } | false > => { try { - assertIsStringArray(value, { source: "list input" }); - let listTypeIdentifier: "simple" | "pages" | "documents" = "simple"; - const isSimple = field.config.use_select ? false : true; + assertIsStringArray(value, { source: 'list input' }) + let listTypeIdentifier: 'simple' | 'pages' | 'documents' = 'simple' + const isSimple = field.config.use_select ? false : true if (!isSimple) { listTypeIdentifier = - field.config?.source?.type === "documents" - ? "documents" - : field.config?.source?.type === "pages" - ? "pages" - : "simple"; + field.config?.source?.type === 'documents' + ? 'documents' + : field.config?.source?.type === 'pages' + ? 'pages' + : 'simple' } - let list; + let list switch (listTypeIdentifier) { - case "documents": - list = field as DocumentList; - throw new Error(`document list not implemented`); - case "pages": + case 'documents': + list = field as DocumentList + throw new Error(`document list not implemented`) + case 'pages': // TODO: validate the documents exists - return { [field.name]: value }; - case "simple": + return { [field.name]: value } + case 'simple': // TODO: validate the item is in the options list if it's a select - list = field as SimpleList; - return { [field.name]: value }; + list = field as SimpleList + return { [field.name]: value } } } catch (e) { - return false; + return false } }, }, -}; +} export type BaseListField = { - label: string; - name: string; - type: "list"; -}; + label: string + name: string + type: 'list' +} type BaseConfig = { - use_select: boolean; - required?: boolean; - min?: number; - max?: number; -}; + use_select: boolean + required?: boolean + min?: number + max?: number +} export type SimpleList = BaseListField & { // FIXME: this isn't required at all for simple lists config: BaseConfig & { - source?: undefined; - }; -}; + source?: undefined + } +} export type DocumentList = BaseListField & { config: BaseConfig & { source: { - type: "documents"; - section: string; - file: string; - path: string; - }; - }; -}; + type: 'documents' + section: string + file: string + path: string + } + } +} export type SectionList = BaseListField & { config: BaseConfig & { source: { - type: "pages"; - section: string; - }; - }; -}; + type: 'pages' + section: string + } + } +} -export type ListField = SectionList | SimpleList | DocumentList; +export type ListField = SectionList | SimpleList | DocumentList export type TinaListField = { - label: string; - name: string; - component: "list"; - field: TinaField; - defaultItem: string; - __typename: typeof typename; -}; + label: string + name: string + component: 'list' + field: TinaField + defaultItem: string + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/list/list.spec.ts b/packages/tina-graphql/src/fields/list/list.spec.ts index 72d865fc5..de80937bb 100644 --- a/packages/tina-graphql/src/fields/list/list.spec.ts +++ b/packages/tina-graphql/src/fields/list/list.spec.ts @@ -11,24 +11,24 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import type { ListField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import type { ListField } from '.' const field: ListField = { - label: "My List", - name: "my_list", - type: "list" as const, + label: 'My List', + name: 'my_list', + type: 'list' as const, config: { use_select: false, }, -}; +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Field of type ${field.type} builds`, () => { - test("a union type of type ListField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type ListField', async () => { + expect(await run('form')).toEqual(gql` type TextField implements FormField { name: String label: String @@ -57,31 +57,31 @@ describe(`Field of type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); + `) + }) // FIXME: this shouldn't be reference for a simple options field - test("a value of type [String]", async () => { - expect(await run("values")).toEqual(gql` + test('a value of type [String]', async () => { + expect(await run('values')).toEqual(gql` type Sample_Values { my_list: [String] _template: String } - `); - }); - test("a field of type [String]", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type [String]', async () => { + expect(await run('data')).toEqual(gql` type Sample_Data { my_list: [String] } - `); - }); - test("an input of type [String]", async () => { - expect(await run("input")).toEqual( + `) + }) + test('an input of type [String]', async () => { + expect(await run('input')).toEqual( gql` input Sample_Input { my_list: [String] } ` - ); - }); -}); + ) + }) +}) diff --git a/packages/tina-graphql/src/fields/number/index.ts b/packages/tina-graphql/src/fields/number/index.ts index 9145991aa..929cd9c08 100644 --- a/packages/tina-graphql/src/fields/number/index.ts +++ b/packages/tina-graphql/src/fields/number/index.ts @@ -11,63 +11,63 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { BuildArgs, ResolveArgs, assertIsNumber } from "../"; +import { BuildArgs, ResolveArgs, assertIsNumber } from '../' -const typename = "NumberField"; +const typename = 'NumberField' export const number = { build: { field: async ({ field, accumulator }: BuildArgs) => { - accumulator.push(gql.FormFieldBuilder({ name: typename })); + accumulator.push(gql.FormFieldBuilder({ name: typename })) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Number, - }); + }) }, value: ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Number, - }); + }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.Number, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaNumberField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaNumberField => { + const { type, ...rest } = field return { ...rest, - component: "number", + component: 'number', config: rest.config || { required: false, }, __typename: typename, - }; + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsNumber(value, { source: "number field initial value" }); - return value; + assertIsNumber(value, { source: 'number field initial value' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsNumber(value, { source: "number field value" }); - return value; + assertIsNumber(value, { source: 'number field value' }) + return value }, input: async ({ field, @@ -76,33 +76,33 @@ export const number = { { [key: string]: number } | false > => { try { - assertIsNumber(value, { source: "number field input" }); - return { [field.name]: value }; + assertIsNumber(value, { source: 'number field input' }) + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type NumberField = { - label: string; - name: string; - type: "number"; - default?: string; + label: string + name: string + type: 'number' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaNumberField = { - label: string; - name: string; - component: "number"; - default?: string; + label: string + name: string + component: 'number' + default?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/select/index.ts b/packages/tina-graphql/src/fields/select/index.ts index b49039b5d..5bde7857a 100644 --- a/packages/tina-graphql/src/fields/select/index.ts +++ b/packages/tina-graphql/src/fields/select/index.ts @@ -11,12 +11,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; -import { friendlyName } from "tina-graphql-helpers"; +import { gql } from '../../gql' +import { friendlyName } from 'tina-graphql-helpers' -import { BuildArgs, ResolveArgs, assertIsString } from "../"; +import { BuildArgs, ResolveArgs, assertIsString } from '../' -const typename = "SelectField"; +const typename = 'SelectField' export const select = { build: { @@ -27,165 +27,165 @@ export const select = { name: typename, additionalFields: [ gql.FieldDefinition({ - name: "options", + name: 'options', type: gql.TYPES.String, list: true, }), ], }) - ); + ) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: async ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.Reference, - }); + }) }, value: async ({ cache, field, accumulator }: BuildArgs) => { - let select; + let select switch (field.config.source.type) { - case "documents": - throw new Error(`document select not implemented`); - case "pages": - select = field as SectionSelect; + case 'documents': + throw new Error(`document select not implemented`) + case 'pages': + select = field as SectionSelect const section = await cache.datasource.getSettingsForCollection( select.config.source.section - ); - const name = friendlyName(section.slug); + ) + const name = friendlyName(section.slug) return gql.FieldDefinition({ name: field.name, - type: friendlyName(name, { suffix: "Document" }), - }); - case "simple": + type: friendlyName(name, { suffix: 'Document' }), + }) + case 'simple': return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String, - }); + }) } }, input: async ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, - }); + }) }, }, resolve: { field: async ({ datasource, field, - }: Omit, "value">): Promise => { - let select; - const { type, ...rest } = field; + }: Omit, 'value'>): Promise => { + let select + const { type, ...rest } = field const f = { ...rest, - component: "select" as const, + component: 'select' as const, __typename: typename, - }; + } switch (field.config.source.type) { - case "documents": - throw new Error(`document select not implemented`); - case "pages": - select = field as SectionSelect; + case 'documents': + throw new Error(`document select not implemented`) + case 'pages': + select = field as SectionSelect return { ...f, options: [ - "", + '', ...(await datasource.getDocumentsForCollection( select.config.source.section )), ], - }; - case "simple": - select = field as SimpleSelect; + } + case 'simple': + select = field as SimpleSelect return { ...f, - options: ["", ...select.config.options], - }; + options: ['', ...select.config.options], + } } }, initialValue: async ({ value }: ResolveArgs) => { - return value; + return value }, value: async ({ field, value }: ResolveArgs) => { switch (field.config.source.type) { - case "documents": - throw new Error(`document select not implemented`); - case "pages": + case 'documents': + throw new Error(`document select not implemented`) + case 'pages': return { - _resolver: "_resource", - _resolver_kind: "_nested_source", + _resolver: '_resource', + _resolver_kind: '_nested_source', _args: { fullPath: value, collection: field.config.source.section }, - }; - case "simple": - return value; + } + case 'simple': + return value } }, input: async ({ field, value }: ResolveArgs) => { try { - assertIsString(value, { source: "select input" }); + assertIsString(value, { source: 'select input' }) switch (field.config.source.type) { - case "documents": - throw new Error(`document select not implemented`); - case "pages": + case 'documents': + throw new Error(`document select not implemented`) + case 'pages': // TODO: check if reference exists - case "simple": - return { [field.name]: value }; + case 'simple': + return { [field.name]: value } } } catch (e) { - return false; + return false } }, }, -}; +} export type BaseSelectField = { - label: string; - name: string; - type: "select"; -}; + label: string + name: string + type: 'select' +} type DocumentSelect = BaseSelectField & { config: { - required?: boolean; + required?: boolean source: { - type: "documents"; - section: string; - file: string; - path: string; - }; - }; -}; + type: 'documents' + section: string + file: string + path: string + } + } +} export type SectionSelect = BaseSelectField & { config: { - required?: boolean; + required?: boolean source: { - type: "pages"; - section: string; - }; - }; -}; + type: 'pages' + section: string + } + } +} export type SimpleSelect = BaseSelectField & { - default?: string; + default?: string config: { - options: string[]; - required?: boolean; + options: string[] + required?: boolean source: { - type: "simple"; - }; - }; -}; + type: 'simple' + } + } +} -export type SelectField = SimpleSelect | SectionSelect | DocumentSelect; +export type SelectField = SimpleSelect | SectionSelect | DocumentSelect export type TinaSelectField = { - label: string; - name: string; - component: "select"; - options: string[]; -}; + label: string + name: string + component: 'select' + options: string[] +} diff --git a/packages/tina-graphql/src/fields/select/select.spec.ts b/packages/tina-graphql/src/fields/select/select.spec.ts index 5bc8a5d8a..c1ac7cfbb 100644 --- a/packages/tina-graphql/src/fields/select/select.spec.ts +++ b/packages/tina-graphql/src/fields/select/select.spec.ts @@ -11,27 +11,27 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import type { SelectField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import type { SelectField } from '.' const field: SelectField = { - label: "My Select", - name: "my_select", - type: "select" as const, + label: 'My Select', + name: 'my_select', + type: 'select' as const, config: { source: { - type: "simple", + type: 'simple', }, - options: ["option A"], + options: ['option A'], }, -}; +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Field of type ${field.type} builds`, () => { - test("a union type of type SelectField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type SelectField', async () => { + expect(await run('form')).toEqual(gql` type SelectField implements FormField { name: String label: String @@ -45,32 +45,32 @@ describe(`Field of type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); + `) + }) // FIXME: this shouldn't be reference for a simple options field - test("a value of type Reference", async () => { - expect(await run("values")).toEqual(gql` + test('a value of type Reference', async () => { + expect(await run('values')).toEqual(gql` type Sample_Values { my_select: Reference _template: String } - `); - }); - test("a field of type String", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type String', async () => { + expect(await run('data')).toEqual(gql` type Sample_Data { my_select: String } - `); - }); + `) + }) // FIXME: this should probably not have the "Title_" prefix on it // though it might be becauase we have different validation rules // depending on which field it belongs to? - test("an input of type SomeGroup_Input", async () => { - expect(await run("input")).toEqual(gql` + test('an input of type SomeGroup_Input', async () => { + expect(await run('input')).toEqual(gql` input Sample_Input { my_select: String } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql/src/fields/tag-list/index.ts b/packages/tina-graphql/src/fields/tag-list/index.ts index 1ba291f04..264985b3e 100644 --- a/packages/tina-graphql/src/fields/tag-list/index.ts +++ b/packages/tina-graphql/src/fields/tag-list/index.ts @@ -11,66 +11,66 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { BuildArgs, ResolveArgs, assertIsStringArray } from "../"; +import { BuildArgs, ResolveArgs, assertIsStringArray } from '../' -const typename = "TagListField"; +const typename = 'TagListField' export const tag_list = { build: { field: async ({ field, accumulator }: BuildArgs) => { - accumulator.push(gql.FormFieldBuilder({ name: typename })); + accumulator.push(gql.FormFieldBuilder({ name: typename })) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, value: ({ field }: BuildArgs) => { return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, list: true, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaTagListField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaTagListField => { + const { type, ...rest } = field return { ...rest, - component: "tags", + component: 'tags', config: rest.config || { required: false, }, __typename: typename, - }; + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsStringArray(value, { source: "tag value" }); - return value; + assertIsStringArray(value, { source: 'tag value' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsStringArray(value, { source: "tag value" }); - return value; + assertIsStringArray(value, { source: 'tag value' }) + return value }, input: async ({ field, @@ -79,33 +79,33 @@ export const tag_list = { { [key: string]: string[] } | false > => { try { - assertIsStringArray(value, { source: "tag value" }); - return { [field.name]: value }; + assertIsStringArray(value, { source: 'tag value' }) + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type TagListField = { - label: string; - name: string; - type: "tag_list"; - default?: string; + label: string + name: string + type: 'tag_list' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaTagListField = { - label: string; - name: string; - component: "tags"; - default?: string; + label: string + name: string + component: 'tags' + default?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/templates/build.ts b/packages/tina-graphql/src/fields/templates/build.ts index 9ae431b0d..7025b65e0 100644 --- a/packages/tina-graphql/src/fields/templates/build.ts +++ b/packages/tina-graphql/src/fields/templates/build.ts @@ -11,24 +11,24 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import { templateTypeName } from "tina-graphql-helpers"; -import { gql } from "../../gql"; -import { sequential } from "../../util"; - -import { text } from "../text"; -import { list } from "../list"; -import { select } from "../select"; -import { blocks } from "../blocks"; -import { textarea } from "../textarea"; -import { fieldGroup } from "../field-group"; -import { fieldGroupList } from "../field-group-list"; -import { boolean } from "../boolean"; -import { datetime } from "../datetime"; -import { file } from "../file"; -import { imageGallery } from "../image-gallery"; -import { number } from "../number"; -import { tag_list } from "../tag-list"; +import _ from 'lodash' +import { templateTypeName } from 'tina-graphql-helpers' +import { gql } from '../../gql' +import { sequential } from '../../util' + +import { text } from '../text' +import { list } from '../list' +import { select } from '../select' +import { blocks } from '../blocks' +import { textarea } from '../textarea' +import { fieldGroup } from '../field-group' +import { fieldGroupList } from '../field-group-list' +import { boolean } from '../boolean' +import { datetime } from '../datetime' +import { file } from '../file' +import { imageGallery } from '../image-gallery' +import { number } from '../number' +import { tag_list } from '../tag-list' import type { UnionTypeDefinitionNode, @@ -39,16 +39,16 @@ import type { InputValueDefinitionNode, ScalarTypeDefinitionNode, InterfaceTypeDefinitionNode, -} from "graphql"; -import type { TemplateData, DirectorySection, Section } from "../../types"; -import type { Cache } from "../../cache"; -import type { Field } from ".."; +} from 'graphql' +import type { TemplateData, DirectorySection, Section } from '../../types' +import type { Cache } from '../../cache' +import type { Field } from '..' type TemplateBuildArgs = { - cache: Cache; - template: TemplateData; - accumulator: Definitions[]; -}; + cache: Cache + template: TemplateData + accumulator: Definitions[] +} export const buildTemplateOrFieldData = async ({ cache, @@ -56,18 +56,18 @@ export const buildTemplateOrFieldData = async ({ accumulator, includeBody, }: TemplateBuildArgs & { - includeBody: boolean; + includeBody: boolean }) => { - const name = templateTypeName(template, "Data", includeBody); + const name = templateTypeName(template, 'Data', includeBody) const fields = await sequential(template.fields, async (field) => { - return await buildTemplateDataField(cache, field, accumulator); - }); + return await buildTemplateDataField(cache, field, accumulator) + }) if (includeBody) { fields.push( await buildTemplateDataField(cache, textarea.contentField, accumulator) - ); + ) } accumulator.push( @@ -75,10 +75,10 @@ export const buildTemplateOrFieldData = async ({ name, fields, }) - ); + ) - return name; -}; + return name +} export const buildTemplateOrFieldValues = async ({ cache, template, @@ -86,14 +86,14 @@ export const buildTemplateOrFieldValues = async ({ includeBody, includeTemplate = true, }: TemplateBuildArgs & { - includeBody: boolean; - includeTemplate?: boolean; + includeBody: boolean + includeTemplate?: boolean }) => { - const name = templateTypeName(template, "Values", includeBody); + const name = templateTypeName(template, 'Values', includeBody) const fields = await sequential(template.fields, async (field) => { - return buildTemplateInitialValueField(cache, field, accumulator); - }); + return buildTemplateInitialValueField(cache, field, accumulator) + }) if (includeBody) { fields.push( @@ -102,13 +102,13 @@ export const buildTemplateOrFieldValues = async ({ textarea.contentField, accumulator ) - ); + ) } if (includeTemplate) { fields.push( - gql.FieldDefinition({ name: "_template", type: gql.TYPES.String }) - ); + gql.FieldDefinition({ name: '_template', type: gql.TYPES.String }) + ) } accumulator.push( @@ -116,9 +116,9 @@ export const buildTemplateOrFieldValues = async ({ name, fields, }) - ); - return name; -}; + ) + return name +} export const buildTemplateOrFieldFormFields = async ({ cache, @@ -126,41 +126,41 @@ export const buildTemplateOrFieldFormFields = async ({ accumulator, includeBody, }: TemplateBuildArgs & { includeBody: boolean }) => { - const name = templateTypeName(template, "Form", includeBody); + const name = templateTypeName(template, 'Form', includeBody) const fields = await sequential( template.fields, async (field) => await buildTemplateFormField(cache, field, accumulator) - ); + ) if (includeBody) { fields.push( await buildTemplateFormField(cache, textarea.contentField, accumulator) - ); + ) } - const fieldsUnionName = `${name}FieldsUnion`; + const fieldsUnionName = `${name}FieldsUnion` accumulator.push( gql.UnionTypeDefinition({ name: fieldsUnionName, types: _.uniq( fields.map((field) => { switch (field.type.kind) { - case "NamedType": - return field.type.name.value; - case "ListType": - case "NonNullType": + case 'NamedType': + return field.type.name.value + case 'ListType': + case 'NonNullType': throw new Error( `Unexpected ${field.type.kind} for field union field` - ); + ) } }) ), }) - ); + ) - return fieldsUnionName; -}; + return fieldsUnionName +} export const buildTemplateOrFieldInput = async ({ cache, @@ -168,13 +168,13 @@ export const buildTemplateOrFieldInput = async ({ accumulator, includeBody, }: TemplateBuildArgs & { includeBody: boolean }) => { - const name = templateTypeName(template, "Input", includeBody); + const name = templateTypeName(template, 'Input', includeBody) const fields = await sequential( template.fields, async (field) => await buildTemplateInputDataField(cache, field, accumulator) - ); + ) if (includeBody) { fields.push( @@ -183,7 +183,7 @@ export const buildTemplateOrFieldInput = async ({ textarea.contentField, accumulator ) - ); + ) } accumulator.push( @@ -191,10 +191,10 @@ export const buildTemplateOrFieldInput = async ({ name, fields, }) - ); + ) - return name; -}; + return name +} export const buildTemplateOrFieldForm = async ({ cache, @@ -203,35 +203,35 @@ export const buildTemplateOrFieldForm = async ({ includeBody, nameOverride, }: TemplateBuildArgs & { - includeBody: boolean; - nameOverride?: string; + includeBody: boolean + nameOverride?: string }) => { - const name = nameOverride || templateTypeName(template, "Form", includeBody); + const name = nameOverride || templateTypeName(template, 'Form', includeBody) const fieldsUnionName = await buildTemplateOrFieldFormFields({ cache, template, accumulator, includeBody, - }); + }) accumulator.push( gql.ObjectTypeDefinition({ name, fields: [ - gql.FieldDefinition({ name: "label", type: `String` }), - gql.FieldDefinition({ name: "name", type: `String` }), + gql.FieldDefinition({ name: 'label', type: `String` }), + gql.FieldDefinition({ name: 'name', type: `String` }), gql.FieldDefinition({ - name: "fields", + name: 'fields', type: fieldsUnionName, list: true, }), ], }) - ); + ) - return name; -}; + return name +} const buildTemplateFormField = async ( cache: Cache, @@ -239,36 +239,36 @@ const buildTemplateFormField = async ( accumulator: Definitions[] ): Promise => { switch (field.type) { - case "text": - return text.build.field({ cache, field, accumulator }); - case "textarea": - return textarea.build.field({ cache, field, accumulator }); - case "select": - return select.build.field({ cache, field, accumulator }); - case "blocks": - return blocks.build.field({ cache, field, accumulator }); - case "field_group_list": - return fieldGroupList.build.field({ cache, field, accumulator }); - case "field_group": - return fieldGroup.build.field({ cache, field, accumulator }); - case "list": - return list.build.field({ cache, field, accumulator }); - case "boolean": - return boolean.build.field({ cache, field, accumulator }); - case "datetime": - return datetime.build.field({ cache, field, accumulator }); - case "file": - return file.build.field({ cache, field, accumulator }); - case "image_gallery": - return imageGallery.build.field({ cache, field, accumulator }); - case "number": - return number.build.field({ cache, field, accumulator }); - case "tag_list": - return tag_list.build.field({ cache, field, accumulator }); + case 'text': + return text.build.field({ cache, field, accumulator }) + case 'textarea': + return textarea.build.field({ cache, field, accumulator }) + case 'select': + return select.build.field({ cache, field, accumulator }) + case 'blocks': + return blocks.build.field({ cache, field, accumulator }) + case 'field_group_list': + return fieldGroupList.build.field({ cache, field, accumulator }) + case 'field_group': + return fieldGroup.build.field({ cache, field, accumulator }) + case 'list': + return list.build.field({ cache, field, accumulator }) + case 'boolean': + return boolean.build.field({ cache, field, accumulator }) + case 'datetime': + return datetime.build.field({ cache, field, accumulator }) + case 'file': + return file.build.field({ cache, field, accumulator }) + case 'image_gallery': + return imageGallery.build.field({ cache, field, accumulator }) + case 'number': + return number.build.field({ cache, field, accumulator }) + case 'tag_list': + return tag_list.build.field({ cache, field, accumulator }) default: - return text.build.field({ cache, field, accumulator }); + return text.build.field({ cache, field, accumulator }) } -}; +} const buildTemplateInitialValueField = async ( cache: Cache, @@ -276,36 +276,36 @@ const buildTemplateInitialValueField = async ( accumulator: Definitions[] ): Promise => { switch (field.type) { - case "text": - return text.build.initialValue({ cache, field, accumulator }); - case "textarea": - return textarea.build.initialValue({ cache, field, accumulator }); - case "select": - return await select.build.initialValue({ cache, field, accumulator }); - case "blocks": - return blocks.build.initialValue({ cache, field, accumulator }); - case "field_group": - return fieldGroup.build.initialValue({ cache, field, accumulator }); - case "field_group_list": - return fieldGroupList.build.initialValue({ cache, field, accumulator }); - case "list": - return list.build.initialValue({ cache, field, accumulator }); - case "boolean": - return boolean.build.initialValue({ cache, field, accumulator }); - case "datetime": - return datetime.build.initialValue({ cache, field, accumulator }); - case "file": - return file.build.initialValue({ cache, field, accumulator }); - case "image_gallery": - return imageGallery.build.initialValue({ cache, field, accumulator }); - case "number": - return number.build.initialValue({ cache, field, accumulator }); - case "tag_list": - return tag_list.build.initialValue({ cache, field, accumulator }); + case 'text': + return text.build.initialValue({ cache, field, accumulator }) + case 'textarea': + return textarea.build.initialValue({ cache, field, accumulator }) + case 'select': + return await select.build.initialValue({ cache, field, accumulator }) + case 'blocks': + return blocks.build.initialValue({ cache, field, accumulator }) + case 'field_group': + return fieldGroup.build.initialValue({ cache, field, accumulator }) + case 'field_group_list': + return fieldGroupList.build.initialValue({ cache, field, accumulator }) + case 'list': + return list.build.initialValue({ cache, field, accumulator }) + case 'boolean': + return boolean.build.initialValue({ cache, field, accumulator }) + case 'datetime': + return datetime.build.initialValue({ cache, field, accumulator }) + case 'file': + return file.build.initialValue({ cache, field, accumulator }) + case 'image_gallery': + return imageGallery.build.initialValue({ cache, field, accumulator }) + case 'number': + return number.build.initialValue({ cache, field, accumulator }) + case 'tag_list': + return tag_list.build.initialValue({ cache, field, accumulator }) default: - return text.build.initialValue({ cache, field, accumulator }); + return text.build.initialValue({ cache, field, accumulator }) } -}; +} const buildTemplateDataField = async ( cache: Cache, @@ -313,36 +313,36 @@ const buildTemplateDataField = async ( accumulator: Definitions[] ): Promise => { switch (field.type) { - case "text": - return text.build.value({ cache, field, accumulator }); - case "textarea": - return textarea.build.value({ cache, field, accumulator }); - case "select": - return await select.build.value({ cache, field, accumulator }); - case "blocks": - return blocks.build.value({ cache, field, accumulator }); - case "field_group": - return await fieldGroup.build.value({ cache, field, accumulator }); - case "field_group_list": - return fieldGroupList.build.value({ cache, field, accumulator }); - case "list": - return list.build.value({ cache, field, accumulator }); - case "boolean": - return boolean.build.value({ cache, field, accumulator }); - case "datetime": - return datetime.build.value({ cache, field, accumulator }); - case "file": - return file.build.value({ cache, field, accumulator }); - case "image_gallery": - return imageGallery.build.value({ cache, field, accumulator }); - case "number": - return number.build.value({ cache, field, accumulator }); - case "tag_list": - return tag_list.build.value({ cache, field, accumulator }); + case 'text': + return text.build.value({ cache, field, accumulator }) + case 'textarea': + return textarea.build.value({ cache, field, accumulator }) + case 'select': + return await select.build.value({ cache, field, accumulator }) + case 'blocks': + return blocks.build.value({ cache, field, accumulator }) + case 'field_group': + return await fieldGroup.build.value({ cache, field, accumulator }) + case 'field_group_list': + return fieldGroupList.build.value({ cache, field, accumulator }) + case 'list': + return list.build.value({ cache, field, accumulator }) + case 'boolean': + return boolean.build.value({ cache, field, accumulator }) + case 'datetime': + return datetime.build.value({ cache, field, accumulator }) + case 'file': + return file.build.value({ cache, field, accumulator }) + case 'image_gallery': + return imageGallery.build.value({ cache, field, accumulator }) + case 'number': + return number.build.value({ cache, field, accumulator }) + case 'tag_list': + return tag_list.build.value({ cache, field, accumulator }) default: - return text.build.value({ cache, field, accumulator }); + return text.build.value({ cache, field, accumulator }) } -}; +} const buildTemplateInputDataField = async ( cache: Cache, @@ -350,36 +350,36 @@ const buildTemplateInputDataField = async ( accumulator: Definitions[] ): Promise => { switch (field.type) { - case "text": - return text.build.input({ cache, field, accumulator }); - case "textarea": - return textarea.build.input({ cache, field, accumulator }); - case "select": - return select.build.input({ cache, field, accumulator }); - case "blocks": - return await blocks.build.input({ cache, field, accumulator }); - case "field_group": - return fieldGroup.build.input({ cache, field, accumulator }); - case "field_group_list": - return fieldGroupList.build.input({ cache, field, accumulator }); - case "list": - return list.build.input({ cache, field, accumulator }); - case "boolean": - return boolean.build.input({ cache, field, accumulator }); - case "datetime": - return datetime.build.input({ cache, field, accumulator }); - case "file": - return file.build.input({ cache, field, accumulator }); - case "image_gallery": - return imageGallery.build.input({ cache, field, accumulator }); - case "number": - return number.build.input({ cache, field, accumulator }); - case "tag_list": - return tag_list.build.input({ cache, field, accumulator }); + case 'text': + return text.build.input({ cache, field, accumulator }) + case 'textarea': + return textarea.build.input({ cache, field, accumulator }) + case 'select': + return select.build.input({ cache, field, accumulator }) + case 'blocks': + return await blocks.build.input({ cache, field, accumulator }) + case 'field_group': + return fieldGroup.build.input({ cache, field, accumulator }) + case 'field_group_list': + return fieldGroupList.build.input({ cache, field, accumulator }) + case 'list': + return list.build.input({ cache, field, accumulator }) + case 'boolean': + return boolean.build.input({ cache, field, accumulator }) + case 'datetime': + return datetime.build.input({ cache, field, accumulator }) + case 'file': + return file.build.input({ cache, field, accumulator }) + case 'image_gallery': + return imageGallery.build.input({ cache, field, accumulator }) + case 'number': + return number.build.input({ cache, field, accumulator }) + case 'tag_list': + return tag_list.build.input({ cache, field, accumulator }) default: - return text.build.input({ cache, field, accumulator }); + return text.build.input({ cache, field, accumulator }) } -}; +} export const builder = { form: buildTemplateOrFieldForm, @@ -387,7 +387,7 @@ export const builder = { data: buildTemplateOrFieldData, values: buildTemplateOrFieldValues, input: buildTemplateOrFieldInput, -}; +} export type Definitions = | ObjectTypeDefinitionNode @@ -395,19 +395,19 @@ export type Definitions = | InputObjectTypeDefinitionNode | ScalarTypeDefinitionNode | InterfaceTypeDefinitionNode - | EnumTypeDefinitionNode; + | EnumTypeDefinitionNode export type sectionMap = { [key: string]: { - section: DirectorySection; - plural: boolean; - mutation?: boolean; - queryName: string; - returnType: string; - }; -}; + section: DirectorySection + plural: boolean + mutation?: boolean + queryName: string + returnType: string + } +} type mutationsArray = { - section: Section; - mutationName: string; - returnType: string; -}[]; + section: Section + mutationName: string + returnType: string +}[] diff --git a/packages/tina-graphql/src/fields/templates/index.ts b/packages/tina-graphql/src/fields/templates/index.ts index 1167f78b0..12e95ac0d 100644 --- a/packages/tina-graphql/src/fields/templates/index.ts +++ b/packages/tina-graphql/src/fields/templates/index.ts @@ -11,10 +11,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { builder } from "./build"; -import { resolve } from "./resolver"; +import { builder } from './build' +import { resolve } from './resolver' export const template = { build: builder, resolve: resolve, -}; +} diff --git a/packages/tina-graphql/src/fields/templates/resolver.ts b/packages/tina-graphql/src/fields/templates/resolver.ts index b850bc90d..014f0ae1c 100644 --- a/packages/tina-graphql/src/fields/templates/resolver.ts +++ b/packages/tina-graphql/src/fields/templates/resolver.ts @@ -11,94 +11,94 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import { sequential, assertShape } from "../../util"; -import { templateTypeName } from "tina-graphql-helpers"; +import _ from 'lodash' +import { sequential, assertShape } from '../../util' +import { templateTypeName } from 'tina-graphql-helpers' -import { text } from "../text"; -import { list } from "../list"; -import { select } from "../select"; -import { blocks } from "../blocks"; -import { textarea } from "../textarea"; -import { fieldGroup } from "../field-group"; -import { fieldGroupList } from "../field-group-list"; -import { boolean } from "../boolean"; -import { datetime } from "../datetime"; -import { file } from "../file"; -import { imageGallery } from "../image-gallery"; -import { number } from "../number"; -import { tag_list } from "../tag-list"; +import { text } from '../text' +import { list } from '../list' +import { select } from '../select' +import { blocks } from '../blocks' +import { textarea } from '../textarea' +import { fieldGroup } from '../field-group' +import { fieldGroupList } from '../field-group-list' +import { boolean } from '../boolean' +import { datetime } from '../datetime' +import { file } from '../file' +import { imageGallery } from '../image-gallery' +import { number } from '../number' +import { tag_list } from '../tag-list' -import type { DataSource } from "../../datasources/datasource"; -import type { Field } from "../../fields"; -import type { TemplateData } from "../../types"; +import type { DataSource } from '../../datasources/datasource' +import type { Field } from '../../fields' +import type { TemplateData } from '../../types' export const resolve = { data: async ({ datasource, template, data, content }: any) => { - const accum: { [key: string]: unknown } = {}; - const { template: _templateName, ...rest } = data; + const accum: { [key: string]: unknown } = {} + const { template: _templateName, ...rest } = data - const values = content ? { ...rest, _body: content } : rest; + const values = content ? { ...rest, _body: content } : rest await sequential(Object.keys(values), async (key) => { const field = findField( [...template.fields, textarea.contentField], key, template - ); - return (accum[key] = await dataValue(datasource, field, values[key])); - }); + ) + return (accum[key] = await dataValue(datasource, field, values[key])) + }) return { __typename: templateTypeName( template, - "Data", - typeof content !== "undefined" // FIXME: be more explicit + 'Data', + typeof content !== 'undefined' // FIXME: be more explicit ), ...accum, - }; + } }, values: async ({ datasource, template, data, content }: any) => { - const accum: { [key: string]: unknown } = {}; - const { template: _templateName, ...rest } = data; + const accum: { [key: string]: unknown } = {} + const { template: _templateName, ...rest } = data - const values = content ? { ...rest, _body: content } : rest; + const values = content ? { ...rest, _body: content } : rest await sequential(Object.keys(values), async (key) => { const field = findField( [...template.fields, textarea.contentField], key, template - ); + ) return (accum[key] = await dataInitialValuesField( datasource, field, values[key] - )); - }); + )) + }) return { __typename: templateTypeName( template, - "Values", - typeof content !== "undefined" // FIXME: be more explicit + 'Values', + typeof content !== 'undefined' // FIXME: be more explicit ), _template: template.name, ...accum, - }; + } }, form: async ({ datasource, template, includeBody, }: { - datasource: DataSource; - template: TemplateData; - includeBody?: boolean; + datasource: DataSource + template: TemplateData + includeBody?: boolean }) => { const fields = await sequential(template.fields, async (field) => dataField(datasource, field) - ); + ) if (includeBody) { fields.push( @@ -106,14 +106,14 @@ export const resolve = { datasource, field: textarea.contentField, }) - ); + ) } return { ...template, - __typename: templateTypeName(template, "Form", !!includeBody), + __typename: templateTypeName(template, 'Form', !!includeBody), fields, - }; + } }, // FIXME input: async ({ @@ -122,21 +122,21 @@ export const resolve = { includeBody, template, }: { - datasource: DataSource; - template: TemplateData; - data: unknown; - includeBody?: true; + datasource: DataSource + template: TemplateData + data: unknown + includeBody?: true }) => { if (includeBody) { - template.fields.push(textarea.contentField); + template.fields.push(textarea.contentField) } if (includeBody) { assertShape<{ _template: string; [key: string]: unknown }>(data, (yup) => yup.object({ _template: yup.string().required() }) - ); + ) } else { - assertShape<{ [key: string]: unknown }>(data, (yup) => yup.object()); + assertShape<{ [key: string]: unknown }>(data, (yup) => yup.object()) } const fieldsToWrite = await sequential(template.fields, async (field) => { @@ -144,24 +144,24 @@ export const resolve = { datasource, field, value: data[field.name], - }); - }); + }) + }) if (includeBody) { - fieldsToWrite.push({ _template: data._template }); + fieldsToWrite.push({ _template: data._template }) } - const accum: { [key: string]: unknown } = {}; + const accum: { [key: string]: unknown } = {} fieldsToWrite.filter(Boolean).forEach((item) => { - assertShape(item, (yup) => yup.object()); + assertShape(item, (yup) => yup.object()) - const key = Object.keys(item)[0]; - const value = Object.values(item)[0]; - accum[key] = value; - }); + const key = Object.keys(item)[0] + const value = Object.values(item)[0] + accum[key] = value + }) - return accum; + return accum }, -}; +} const dataInitialValuesField = async ( datasource: DataSource, @@ -169,143 +169,143 @@ const dataInitialValuesField = async ( value: unknown ) => { switch (field.type) { - case "text": - return text.resolve.initialValue({ datasource, field, value }); - case "textarea": - return textarea.resolve.initialValue({ datasource, field, value }); - case "blocks": - return blocks.resolve.initialValue({ datasource, field, value }); - case "select": - return select.resolve.initialValue({ datasource, field, value }); - case "list": - return list.resolve.initialValue({ datasource, field, value }); - case "field_group": - return fieldGroup.resolve.initialValue({ datasource, field, value }); - case "field_group_list": - return fieldGroupList.resolve.initialValue({ datasource, field, value }); - case "boolean": - return boolean.resolve.initialValue({ datasource, field, value }); - case "datetime": - return datetime.resolve.initialValue({ datasource, field, value }); - case "file": - return file.resolve.initialValue({ datasource, field, value }); - case "image_gallery": - return imageGallery.resolve.initialValue({ datasource, field, value }); - case "number": - return number.resolve.initialValue({ datasource, field, value }); - case "tag_list": - return tag_list.resolve.initialValue({ datasource, field, value }); + case 'text': + return text.resolve.initialValue({ datasource, field, value }) + case 'textarea': + return textarea.resolve.initialValue({ datasource, field, value }) + case 'blocks': + return blocks.resolve.initialValue({ datasource, field, value }) + case 'select': + return select.resolve.initialValue({ datasource, field, value }) + case 'list': + return list.resolve.initialValue({ datasource, field, value }) + case 'field_group': + return fieldGroup.resolve.initialValue({ datasource, field, value }) + case 'field_group_list': + return fieldGroupList.resolve.initialValue({ datasource, field, value }) + case 'boolean': + return boolean.resolve.initialValue({ datasource, field, value }) + case 'datetime': + return datetime.resolve.initialValue({ datasource, field, value }) + case 'file': + return file.resolve.initialValue({ datasource, field, value }) + case 'image_gallery': + return imageGallery.resolve.initialValue({ datasource, field, value }) + case 'number': + return number.resolve.initialValue({ datasource, field, value }) + case 'tag_list': + return tag_list.resolve.initialValue({ datasource, field, value }) } -}; +} const dataValue = async ( datasource: DataSource, field: Field, value: unknown ) => { switch (field.type) { - case "text": - return text.resolve.value({ datasource, field, value }); - case "textarea": - return textarea.resolve.value({ datasource, field, value }); - case "blocks": - return blocks.resolve.value({ datasource, field, value }); - case "select": - return select.resolve.value({ datasource, field, value }); - case "list": - return list.resolve.value({ datasource, field, value }); - case "field_group": - return fieldGroup.resolve.value({ datasource, field, value }); - case "field_group_list": + case 'text': + return text.resolve.value({ datasource, field, value }) + case 'textarea': + return textarea.resolve.value({ datasource, field, value }) + case 'blocks': + return blocks.resolve.value({ datasource, field, value }) + case 'select': + return select.resolve.value({ datasource, field, value }) + case 'list': + return list.resolve.value({ datasource, field, value }) + case 'field_group': + return fieldGroup.resolve.value({ datasource, field, value }) + case 'field_group_list': return fieldGroupList.resolve.value({ datasource, field, value, - }); - case "boolean": - return boolean.resolve.value({ datasource, field, value }); - case "datetime": - return datetime.resolve.value({ datasource, field, value }); - case "file": - return file.resolve.value({ datasource, field, value }); - case "image_gallery": - return imageGallery.resolve.value({ datasource, field, value }); - case "number": - return number.resolve.value({ datasource, field, value }); - case "tag_list": - return tag_list.resolve.value({ datasource, field, value }); + }) + case 'boolean': + return boolean.resolve.value({ datasource, field, value }) + case 'datetime': + return datetime.resolve.value({ datasource, field, value }) + case 'file': + return file.resolve.value({ datasource, field, value }) + case 'image_gallery': + return imageGallery.resolve.value({ datasource, field, value }) + case 'number': + return number.resolve.value({ datasource, field, value }) + case 'tag_list': + return tag_list.resolve.value({ datasource, field, value }) } -}; +} const dataField = async (datasource: DataSource, field: Field) => { switch (field.type) { - case "text": - return text.resolve.field({ datasource, field }); - case "textarea": - return textarea.resolve.field({ datasource, field }); - case "blocks": - return blocks.resolve.field({ datasource, field }); - case "select": - return select.resolve.field({ datasource, field }); - case "list": - return list.resolve.field({ datasource, field }); - case "field_group": - return fieldGroup.resolve.field({ datasource, field }); - case "field_group_list": + case 'text': + return text.resolve.field({ datasource, field }) + case 'textarea': + return textarea.resolve.field({ datasource, field }) + case 'blocks': + return blocks.resolve.field({ datasource, field }) + case 'select': + return select.resolve.field({ datasource, field }) + case 'list': + return list.resolve.field({ datasource, field }) + case 'field_group': + return fieldGroup.resolve.field({ datasource, field }) + case 'field_group_list': return fieldGroupList.resolve.field({ datasource, field, - }); - case "boolean": - return boolean.resolve.field({ datasource, field }); - case "datetime": - return datetime.resolve.field({ datasource, field }); - case "file": - return file.resolve.field({ datasource, field }); - case "image_gallery": - return imageGallery.resolve.field({ datasource, field }); - case "number": - return number.resolve.field({ datasource, field }); - case "tag_list": - return tag_list.resolve.field({ datasource, field }); + }) + case 'boolean': + return boolean.resolve.field({ datasource, field }) + case 'datetime': + return datetime.resolve.field({ datasource, field }) + case 'file': + return file.resolve.field({ datasource, field }) + case 'image_gallery': + return imageGallery.resolve.field({ datasource, field }) + case 'number': + return number.resolve.field({ datasource, field }) + case 'tag_list': + return tag_list.resolve.field({ datasource, field }) } -}; +} const inputField = async ({ datasource, field, value, }: { - datasource: DataSource; - field: Field; - value: unknown; + datasource: DataSource + field: Field + value: unknown }) => { switch (field.type) { - case "text": - return text.resolve.input({ datasource, field, value }); - case "textarea": - return textarea.resolve.input({ datasource, field, value }); - case "blocks": - return blocks.resolve.input({ datasource, field, value }); - case "select": - return select.resolve.input({ datasource, field, value }); - case "list": - return list.resolve.input({ datasource, field, value }); - case "field_group": - return fieldGroup.resolve.input({ datasource, field, value }); - case "field_group_list": - return fieldGroupList.resolve.input({ datasource, field, value }); - case "boolean": - return boolean.resolve.input({ datasource, field, value }); - case "datetime": - return datetime.resolve.input({ datasource, field, value }); - case "file": - return file.resolve.input({ datasource, field, value }); - case "image_gallery": - return imageGallery.resolve.input({ datasource, field, value }); - case "number": - return number.resolve.input({ datasource, field, value }); - case "tag_list": - return tag_list.resolve.input({ datasource, field, value }); + case 'text': + return text.resolve.input({ datasource, field, value }) + case 'textarea': + return textarea.resolve.input({ datasource, field, value }) + case 'blocks': + return blocks.resolve.input({ datasource, field, value }) + case 'select': + return select.resolve.input({ datasource, field, value }) + case 'list': + return list.resolve.input({ datasource, field, value }) + case 'field_group': + return fieldGroup.resolve.input({ datasource, field, value }) + case 'field_group_list': + return fieldGroupList.resolve.input({ datasource, field, value }) + case 'boolean': + return boolean.resolve.input({ datasource, field, value }) + case 'datetime': + return datetime.resolve.input({ datasource, field, value }) + case 'file': + return file.resolve.input({ datasource, field, value }) + case 'image_gallery': + return imageGallery.resolve.input({ datasource, field, value }) + case 'number': + return number.resolve.input({ datasource, field, value }) + case 'tag_list': + return tag_list.resolve.input({ datasource, field, value }) } -}; +} const findField = ( fields: Field[], @@ -313,17 +313,17 @@ const findField = ( template: TemplateData ) => { const field = fields.find((f) => { - return f?.name === fieldName; - }); + return f?.name === fieldName + }) if (!field) { throw new Error( `Unable to find field for item with name: ${fieldName} on template ${ template.name } Possible fields are: ${template.fields .map((field) => field.name) - .join(", ")} + .join(', ')} ` - ); + ) } - return field; -}; + return field +} diff --git a/packages/tina-graphql/src/fields/test-util.ts b/packages/tina-graphql/src/fields/test-util.ts index 71b71bea5..085153d22 100644 --- a/packages/tina-graphql/src/fields/test-util.ts +++ b/packages/tina-graphql/src/fields/test-util.ts @@ -11,7 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import path from "path"; +import path from 'path' import { GraphQLSchema, printSchema, @@ -20,38 +20,38 @@ import { GraphQLUnionType, buildSchema, print, -} from "graphql"; -import { createDatasource } from "../datasources/data-manager"; -import { FileSystemManager } from "../datasources/filesystem-manager"; -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { template } from "../fields/templates"; -import { cacheInit } from "../cache"; +} from 'graphql' +import { createDatasource } from '../datasources/data-manager' +import { FileSystemManager } from '../datasources/filesystem-manager' +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { template } from '../fields/templates' +import { cacheInit } from '../cache' -const { build } = template; +const { build } = template -import type { Definitions } from "../fields/templates/build"; -import type { Field } from "."; +import type { Definitions } from '../fields/templates/build' +import type { Field } from '.' export const testCache = ({ mockGetTemplate }: { mockGetTemplate?: any }) => { - const projectRoot = path.join(process.cwd(), "src/fixtures/project1"); + const projectRoot = path.join(process.cwd(), 'src/fixtures/project1') const filesystemDataSource = createDatasource( new FileSystemManager({ rootPath: projectRoot }) - ); + ) if (mockGetTemplate) { - filesystemDataSource.getTemplate = mockGetTemplate; + filesystemDataSource.getTemplate = mockGetTemplate } - return cacheInit(filesystemDataSource); -}; + return cacheInit(filesystemDataSource) +} export const assertSchema = (schema: GraphQLSchema) => { // Useful to grab a snapshot // console.log(printSchema(schema)); return { matches: (gqlString: string) => { - expect(printSchema(schema)).toEqual(printSchema(buildSchema(gqlString))); + expect(printSchema(schema)).toEqual(printSchema(buildSchema(gqlString))) }, - }; -}; + } +} export const assertType = (type: GraphQLObjectType) => { // Useful to grab a snapshot // console.log(printSchema(new GraphQLSchema({ query: type }))); @@ -61,67 +61,67 @@ export const assertType = (type: GraphQLObjectType) => { query: ${getNamedType(type)} } -${gqlString}`); +${gqlString}`) }, - }; -}; + } +} export const assertNoTypeCollisions = ( types: GraphQLObjectType[] ) => { const union = new GraphQLUnionType({ - name: "MultitypeUnion", + name: 'MultitypeUnion', types: types, - }); + }) const t = new GraphQLObjectType({ - name: "MultitypeObject", + name: 'MultitypeObject', fields: { f: { type: union } }, - }); - const names = types.map((t) => getNamedType(t).toString()); + }) + const names = types.map((t) => getNamedType(t).toString()) const isArrayUnique = (arr: string[]) => - Array.isArray(arr) && new Set(arr).size === arr.length; // add function to check that array is unique. + Array.isArray(arr) && new Set(arr).size === arr.length // add function to check that array is unique. try { - expect(isArrayUnique(names)).toBeTruthy(); + expect(isArrayUnique(names)).toBeTruthy() } catch (e) { // console.error("Types are equal"); - throw new Error(`Unable to create schema with multiple identical types`); + throw new Error(`Unable to create schema with multiple identical types`) } - const schema = new GraphQLSchema({ query: t }); + const schema = new GraphQLSchema({ query: t }) // Useful to grab a snapshot // console.log(printSchema(schema)); -}; +} const PATH_TO_TEST_APP = path.join( - path.resolve(__dirname, "../../../../"), - "apps/test" -); + path.resolve(__dirname, '../../../../'), + 'apps/test' +) const datasource = createDatasource( new FileSystemManager({ rootPath: PATH_TO_TEST_APP }) -); -const cache = cacheInit(datasource); +) +const cache = cacheInit(datasource) export const setupRunner = (field: Field) => { const template = { - __namespace: "", + __namespace: '', fields: [field], - label: "Sample", - name: "sample", - }; + label: 'Sample', + name: 'sample', + } const config = (accumulator: Definitions[]) => ({ cache, template, accumulator, includeBody: false, - }); + }) const run = async (command: keyof typeof build) => { - const accumulator: Definitions[] = []; - await build[command](config(accumulator)); - const accumulatorString = accumulator.map((acc) => print(acc)); - const string = gql(accumulatorString); - return string; - }; + const accumulator: Definitions[] = [] + await build[command](config(accumulator)) + const accumulatorString = accumulator.map((acc) => print(acc)) + const string = gql(accumulatorString) + return string + } - return run; -}; + return run +} diff --git a/packages/tina-graphql/src/fields/text/index.ts b/packages/tina-graphql/src/fields/text/index.ts index 2565cdbac..93fc9537c 100644 --- a/packages/tina-graphql/src/fields/text/index.ts +++ b/packages/tina-graphql/src/fields/text/index.ts @@ -11,89 +11,89 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { assertIsString, BuildArgs, ResolveArgs } from "../"; +import { assertIsString, BuildArgs, ResolveArgs } from '../' -const typename = "TextField"; +const typename = 'TextField' export const text = { build: { field: async ({ field, accumulator }: BuildArgs) => { - accumulator.push(gql.FormFieldBuilder({ name: typename })); + accumulator.push(gql.FormFieldBuilder({ name: typename })) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, value: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaTextField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaTextField => { + const { type, ...rest } = field return { ...rest, - component: "text", + component: 'text', config: rest.config || { required: false, }, - __typename: "TextField", - }; + __typename: 'TextField', + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsString(value, { source: "text initial value" }); - return value; + assertIsString(value, { source: 'text initial value' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsString(value, { source: "text value" }); - return value; + assertIsString(value, { source: 'text value' }) + return value }, input: async ({ field, value, }: ResolveArgs): Promise<{ [key: string]: string } | false> => { try { - assertIsString(value, { source: "text input" }); - return { [field.name]: value }; + assertIsString(value, { source: 'text input' }) + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type TextField = { - label: string; - name: string; - type: "text"; - default?: string; + label: string + name: string + type: 'text' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaTextField = { - label: string; - name: string; - component: "text"; - default?: string; + label: string + name: string + component: 'text' + default?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/text/text.spec.ts b/packages/tina-graphql/src/fields/text/text.spec.ts index 765723a47..ae2cce533 100644 --- a/packages/tina-graphql/src/fields/text/text.spec.ts +++ b/packages/tina-graphql/src/fields/text/text.spec.ts @@ -11,22 +11,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import { TextField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import { TextField } from '.' const field: TextField = { - label: "My Title", - name: "title", - type: "text" as const, - __namespace: "", -}; + label: 'My Title', + name: 'title', + type: 'text' as const, + __namespace: '', +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Field of type ${field.type} builds`, () => { - test("a union type of type TextField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type TextField', async () => { + expect(await run('form')).toEqual(gql` type TextField implements FormField { name: String label: String @@ -39,28 +39,28 @@ describe(`Field of type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); - test("a value of type String", async () => { - expect(await run("values")).toEqual(gql` + `) + }) + test('a value of type String', async () => { + expect(await run('values')).toEqual(gql` type Sample_Values { title: String _template: String } - `); - }); - test("a field of type String", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type String', async () => { + expect(await run('data')).toEqual(gql` type Sample_Data { title: String } - `); - }); - test("an input of type String", async () => { - expect(await run("input")).toEqual(gql` + `) + }) + test('an input of type String', async () => { + expect(await run('input')).toEqual(gql` input Sample_Input { title: String } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql/src/fields/textarea/index.ts b/packages/tina-graphql/src/fields/textarea/index.ts index 0bec75dcb..8b80da16a 100644 --- a/packages/tina-graphql/src/fields/textarea/index.ts +++ b/packages/tina-graphql/src/fields/textarea/index.ts @@ -11,62 +11,62 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "../../gql"; +import { gql } from '../../gql' -import { assertIsString, BuildArgs, ResolveArgs } from "../"; +import { assertIsString, BuildArgs, ResolveArgs } from '../' -const typename = "TextareaField"; +const typename = 'TextareaField' export const textarea = { contentField: { - type: "textarea" as const, - name: "_body", - label: "Body", - __namespace: "", + type: 'textarea' as const, + name: '_body', + label: 'Body', + __namespace: '', }, build: { field: async ({ field, accumulator }: BuildArgs) => { - accumulator.push(gql.FormFieldBuilder({ name: typename })); + accumulator.push(gql.FormFieldBuilder({ name: typename })) return gql.FieldDefinition({ name: field.name, type: typename, - }); + }) }, initialValue: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, value: ({ field }: BuildArgs) => { - return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }); + return gql.FieldDefinition({ name: field.name, type: gql.TYPES.String }) }, input: ({ field }: BuildArgs) => { return gql.InputValueDefinition({ name: field.name, type: gql.TYPES.String, - }); + }) }, }, resolve: { field: ({ field, - }: Omit, "value">): TinaTextareaField => { - const { type, ...rest } = field; + }: Omit, 'value'>): TinaTextareaField => { + const { type, ...rest } = field return { ...rest, - component: "textarea", + component: 'textarea', config: rest.config || { required: false, }, - __typename: "TextareaField", - }; + __typename: 'TextareaField', + } }, initialValue: async ({ value, }: ResolveArgs): Promise => { - assertIsString(value, { source: "textarea initial value" }); - return value; + assertIsString(value, { source: 'textarea initial value' }) + return value }, value: async ({ value }: ResolveArgs): Promise => { - assertIsString(value, { source: "textarea value" }); - return value; + assertIsString(value, { source: 'textarea value' }) + return value }, input: async ({ field, @@ -75,33 +75,33 @@ export const textarea = { { [key: string]: string } | false > => { try { - assertIsString(value, { source: "textarea input" }); - return { [field.name]: value }; + assertIsString(value, { source: 'textarea input' }) + return { [field.name]: value } } catch (e) { - return false; + return false } }, }, -}; +} export type TextareaField = { - label: string; - name: string; - type: "textarea"; - default?: string; + label: string + name: string + type: 'textarea' + default?: string config?: { - required?: boolean; - }; - __namespace: string; -}; + required?: boolean + } + __namespace: string +} export type TinaTextareaField = { - label: string; - name: string; - component: "textarea"; - default?: string; + label: string + name: string + component: 'textarea' + default?: string config?: { - required?: boolean; - }; - __typename: typeof typename; -}; + required?: boolean + } + __typename: typeof typename +} diff --git a/packages/tina-graphql/src/fields/textarea/textarea.spec.ts b/packages/tina-graphql/src/fields/textarea/textarea.spec.ts index 6fad8aaba..ad36ac576 100644 --- a/packages/tina-graphql/src/fields/textarea/textarea.spec.ts +++ b/packages/tina-graphql/src/fields/textarea/textarea.spec.ts @@ -11,22 +11,22 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { gql } from "tina-graphql-helpers/dist/test-util"; -import { setupRunner } from "../test-util"; -import type { TextareaField } from "."; +import { gql } from 'tina-graphql-helpers/dist/test-util' +import { setupRunner } from '../test-util' +import type { TextareaField } from '.' const field: TextareaField = { - label: "My Title", - name: "title", - type: "textarea" as const, - __namespace: "", -}; + label: 'My Title', + name: 'title', + type: 'textarea' as const, + __namespace: '', +} -const run = setupRunner(field); +const run = setupRunner(field) describe(`Field of type ${field.type} builds`, () => { - test("a union type of type TextareaField", async () => { - expect(await run("form")).toEqual(gql` + test('a union type of type TextareaField', async () => { + expect(await run('form')).toEqual(gql` type TextareaField implements FormField { name: String label: String @@ -39,28 +39,28 @@ describe(`Field of type ${field.type} builds`, () => { name: String fields: [Sample_FormFieldsUnion] } - `); - }); - test("a value of type String", async () => { - expect(await run("values")).toEqual(gql` + `) + }) + test('a value of type String', async () => { + expect(await run('values')).toEqual(gql` type Sample_Values { title: String _template: String } - `); - }); - test("a field of type String", async () => { - expect(await run("data")).toEqual(gql` + `) + }) + test('a field of type String', async () => { + expect(await run('data')).toEqual(gql` type Sample_Data { title: String } - `); - }); - test("an input of type String", async () => { - expect(await run("input")).toEqual(gql` + `) + }) + test('an input of type String', async () => { + expect(await run('input')).toEqual(gql` input Sample_Input { title: String } - `); - }); -}); + `) + }) +}) diff --git a/packages/tina-graphql/src/gql/index.ts b/packages/tina-graphql/src/gql/index.ts index 0b4d8ed9f..34d830d5a 100644 --- a/packages/tina-graphql/src/gql/index.ts +++ b/packages/tina-graphql/src/gql/index.ts @@ -19,7 +19,7 @@ import { InterfaceTypeDefinitionNode, NamedTypeNode, UnionTypeDefinitionNode, -} from "graphql"; +} from 'graphql' /** * the `gql` module provides functions and types which can be @@ -40,40 +40,40 @@ export const gql = { name, additionalFields, }: { - name: string; - additionalFields?: FieldDefinitionNode[]; + name: string + additionalFields?: FieldDefinitionNode[] }) => { return gql.ObjectTypeDefinition({ name: name, - interfaces: [gql.NamedType({ name: "FormField" })], + interfaces: [gql.NamedType({ name: 'FormField' })], fields: [ - gql.FieldDefinition({ name: "name", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "label", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "component", type: gql.TYPES.String }), - gql.FieldDefinition({ name: "description", type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'name', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'label', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'component', type: gql.TYPES.String }), + gql.FieldDefinition({ name: 'description', type: gql.TYPES.String }), ...(additionalFields || []), ], - }); + }) }, ScalarTypeDefinition: ({ name, description, }: { - name: string; - description?: string; + name: string + description?: string }): ScalarTypeDefinitionNode => { return { - kind: "ScalarTypeDefinition", + kind: 'ScalarTypeDefinition', name: { - kind: "Name", + kind: 'Name', value: name, }, description: { - kind: "StringValue", - value: description || "", + kind: 'StringValue', + value: description || '', }, directives: [], - }; + } }, InputValueDefinition: ({ name, @@ -81,65 +81,65 @@ export const gql = { list, required, }: { - name: string; - type: string; - list?: boolean; - required?: boolean; + name: string + type: string + list?: boolean + required?: boolean }) => { - let res = {}; + let res = {} const namedType = { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: type, }, - }; + } const def = { - kind: "InputValueDefinition" as const, + kind: 'InputValueDefinition' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: name, }, - }; + } if (list) { if (required) { res = { ...def, type: { - kind: "ListType" as const, + kind: 'ListType' as const, type: { - kind: "NonNullType", + kind: 'NonNullType', type: namedType, }, }, - }; + } } else { res = { ...def, type: { - kind: "ListType" as const, + kind: 'ListType' as const, type: namedType, }, - }; + } } } else { if (required) { res = { ...def, type: { - kind: "NonNullType", + kind: 'NonNullType', type: namedType, }, - }; + } } else { res = { ...def, type: namedType, - }; + } } } - return res as InputValueDefinitionNode; + return res as InputValueDefinitionNode }, FieldDefinition: ({ name, @@ -148,96 +148,96 @@ export const gql = { list, required, }: { - name: string; - type: string; - required?: boolean; - list?: boolean; - args?: InputValueDefinitionNode[]; + name: string + type: string + required?: boolean + list?: boolean + args?: InputValueDefinitionNode[] }) => { - let res = {}; + let res = {} let namedType = { - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: type, }, - }; + } let def = { - kind: "FieldDefinition" as const, + kind: 'FieldDefinition' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: name, }, arguments: args, - }; + } if (list) { if (required) { res = { ...def, type: { - kind: "ListType" as const, + kind: 'ListType' as const, type: { - kind: "NonNullType", + kind: 'NonNullType', type: namedType, }, }, - }; + } } else { res = { ...def, type: { - kind: "ListType" as const, + kind: 'ListType' as const, type: namedType, }, - }; + } } } else { if (required) { res = { ...def, type: { - kind: "NonNullType" as const, + kind: 'NonNullType' as const, type: namedType, }, - }; + } } else { res = { ...def, type: namedType, - }; + } } } - return res as FieldDefinitionNode; + return res as FieldDefinitionNode }, InterfaceTypeDefinition: ({ name, fields, }: { - name: string; - fields: FieldDefinitionNode[]; + name: string + fields: FieldDefinitionNode[] }): InterfaceTypeDefinitionNode => { return { - kind: "InterfaceTypeDefinition", + kind: 'InterfaceTypeDefinition', name: { - kind: "Name", + kind: 'Name', value: name, }, interfaces: [], directives: [], fields: fields, - }; + } }, InputObjectTypeDefinition: ({ name, fields, }: { - name: string; - fields: InputValueDefinitionNode[]; + name: string + fields: InputValueDefinitionNode[] }) => ({ - kind: "InputObjectTypeDefinition" as const, + kind: 'InputObjectTypeDefinition' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: name, }, fields, @@ -246,31 +246,31 @@ export const gql = { name, types, }: { - name: string; - types: string[]; + name: string + types: string[] }): UnionTypeDefinitionNode => ({ - kind: "UnionTypeDefinition" as const, + kind: 'UnionTypeDefinition' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: name, }, directives: [], types: types.map((name) => ({ - kind: "NamedType" as const, + kind: 'NamedType' as const, name: { - kind: "Name" as const, + kind: 'Name' as const, value: name, }, })), }), NamedType: ({ name }: { name: string }): NamedTypeNode => { return { - kind: "NamedType", + kind: 'NamedType', name: { - kind: "Name", + kind: 'Name', value: name, }, - }; + } }, ObjectTypeDefinition: ({ name, @@ -278,31 +278,31 @@ export const gql = { interfaces = [], args = [], }: { - name: string; - fields: FieldDefinitionNode[]; - interfaces?: NamedTypeNode[]; - args?: NamedTypeNode[]; + name: string + fields: FieldDefinitionNode[] + interfaces?: NamedTypeNode[] + args?: NamedTypeNode[] }): ObjectTypeDefinitionNode => ({ - kind: "ObjectTypeDefinition" as const, + kind: 'ObjectTypeDefinition' as const, interfaces, name: { - kind: "Name" as const, + kind: 'Name' as const, value: name, }, fields, }), TYPES: { - SectionDocumentUnion: "SectionDocumentUnion", - String: "String", - Reference: "Reference", - Section: "Section", - ID: "ID", - SystemInfo: "SystemInfo", - SectionParams: "SectionParams", - Boolean: "Boolean", - Node: "Node", - Number: "Int", - Document: "Document", - JSONObject: "JSONObject", + SectionDocumentUnion: 'SectionDocumentUnion', + String: 'String', + Reference: 'Reference', + Section: 'Section', + ID: 'ID', + SystemInfo: 'SystemInfo', + SectionParams: 'SectionParams', + Boolean: 'Boolean', + Node: 'Node', + Number: 'Int', + Document: 'Document', + JSONObject: 'JSONObject', }, -}; +} diff --git a/packages/tina-graphql/src/index.ts b/packages/tina-graphql/src/index.ts index 6d04d56a9..8f45379a7 100644 --- a/packages/tina-graphql/src/index.ts +++ b/packages/tina-graphql/src/index.ts @@ -11,34 +11,34 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { schemaBuilder } from "./builder"; -import { cacheInit } from "./cache"; -import { graphqlInit } from "./resolver"; -import { buildASTSchema } from "graphql"; -import { createDatasource } from "./datasources/data-manager"; -import { GithubManager } from "./datasources/github-manager"; -import { FileSystemManager } from "./datasources/filesystem-manager"; -import { simpleCache, clearCache } from "./lru"; +import { schemaBuilder } from './builder' +import { cacheInit } from './cache' +import { graphqlInit } from './resolver' +import { buildASTSchema } from 'graphql' +import { createDatasource } from './datasources/data-manager' +import { GithubManager } from './datasources/github-manager' +import { FileSystemManager } from './datasources/filesystem-manager' +import { simpleCache, clearCache } from './lru' -export { clearCache }; +export { clearCache } export const gql = async ({ projectRoot, query, variables, }: { - projectRoot: string; - query: string; - variables: object; + projectRoot: string + query: string + variables: object }) => { const datasource = createDatasource( new FileSystemManager({ rootPath: projectRoot }) - ); + ) - const cache = cacheInit(datasource); + const cache = cacheInit(datasource) try { - const { schema, sectionMap } = await schemaBuilder({ cache }); + const { schema, sectionMap } = await schemaBuilder({ cache }) const result = await graphqlInit({ schema: buildASTSchema(schema), @@ -46,23 +46,23 @@ export const gql = async ({ contextValue: { datasource }, variableValues: variables, sectionMap, - }); - return result; + }) + return result } catch (e) { - console.log(e); - return { error: e.message }; + console.log(e) + return { error: e.message } } -}; +} export const buildSchema = async (projectRoot: string) => { const datasource = createDatasource( new FileSystemManager({ rootPath: projectRoot }) - ); - const cache = cacheInit(datasource); + ) + const cache = cacheInit(datasource) - const { schema } = await schemaBuilder({ cache }); - return buildASTSchema(schema); -}; + const { schema } = await schemaBuilder({ cache }) + return buildASTSchema(schema) +} export const githubRoute = async ({ accessToken, @@ -73,25 +73,25 @@ export const githubRoute = async ({ rootPath, branch, }: { - accessToken: string; - owner: string; - repo: string; - query: string; - variables: object; - rootPath?: string; - branch: string; + accessToken: string + owner: string + repo: string + query: string + variables: object + rootPath?: string + branch: string }) => { const gh = new GithubManager({ - rootPath: rootPath || "", + rootPath: rootPath || '', accessToken, owner, repo, ref: branch, cache: simpleCache, - }); - const datasource = createDatasource(gh); - const cache = cacheInit(datasource); - const { schema, sectionMap } = await schemaBuilder({ cache }); + }) + const datasource = createDatasource(gh) + const cache = cacheInit(datasource) + const { schema, sectionMap } = await schemaBuilder({ cache }) const result = await graphqlInit({ schema: buildASTSchema(schema), @@ -99,10 +99,10 @@ export const githubRoute = async ({ contextValue: { datasource: datasource }, variableValues: variables, sectionMap, - }); + }) if (result.errors) { - console.error(result.errors); + console.error(result.errors) } - return result; -}; + return result +} diff --git a/packages/tina-graphql/src/lru.ts b/packages/tina-graphql/src/lru.ts index 96d32f1fe..1678ba6f2 100644 --- a/packages/tina-graphql/src/lru.ts +++ b/packages/tina-graphql/src/lru.ts @@ -11,15 +11,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import LRU from "lru-cache"; +import _ from 'lodash' +import LRU from 'lru-cache' const cache = new LRU({ max: 1000, length: function (v: string, key) { - return v.length; + return v.length }, -}); +}) /* ref is used as the the branch for now, so in future we may switch to commits @@ -30,25 +30,25 @@ export const clearCache = ({ ref, path, }: { - owner: string; - repo: string; - ref: string; - path?: string; + owner: string + repo: string + ref: string + path?: string }) => { - const repoPrefix = `${owner}:${repo}:${ref}__`; + const repoPrefix = `${owner}:${repo}:${ref}__` if (path) { - const key = `${repoPrefix}${path}`; - console.log("[LRU cache]: clearing key ", key); - cache.del(key); + const key = `${repoPrefix}${path}` + console.log('[LRU cache]: clearing key ', key) + cache.del(key) } else { - console.log("[LRU cache]: clearing all keys for repo ", repoPrefix); + console.log('[LRU cache]: clearing all keys for repo ', repoPrefix) cache.forEach((value, key, cache) => { if (key.startsWith(repoPrefix)) { - cache.del(key); + cache.del(key) } - }); + }) } -}; +} /** * This is just an example of what you can provide for caching @@ -57,16 +57,16 @@ export const clearCache = ({ */ export const simpleCache = { get: async (keyName: string, setter: () => Promise) => { - const value = cache.get(keyName); + const value = cache.get(keyName) if (value) { - console.log("getting from cache", keyName); - return value; + console.log('getting from cache', keyName) + return value } else { - const valueToCache = await setter(); - const isSet = cache.set(keyName, valueToCache); - console.log("item not in cache, setting", keyName, isSet); - return valueToCache; + const valueToCache = await setter() + const isSet = cache.set(keyName, valueToCache) + console.log('item not in cache, setting', keyName, isSet) + return valueToCache } }, -}; +} diff --git a/packages/tina-graphql/src/remark/index.ts b/packages/tina-graphql/src/remark/index.ts index da2cc925d..df8dac9b7 100644 --- a/packages/tina-graphql/src/remark/index.ts +++ b/packages/tina-graphql/src/remark/index.ts @@ -11,27 +11,27 @@ See the License for the specific language governing permissions and limitations under the License. */ -import unified from "unified"; -import remark2rehype from "remark-rehype"; -import htmlStringify from "rehype-stringify"; -import parse from "remark-parse"; -import mdx from "remark-mdx"; -import removePosition from "unist-util-remove-position"; +import unified from 'unified' +import remark2rehype from 'remark-rehype' +import htmlStringify from 'rehype-stringify' +import parse from 'remark-parse' +import mdx from 'remark-mdx' +import removePosition from 'unist-util-remove-position' export const toHTML = async ({ contents: c }: { contents: string }) => { // @ts-ignore - var compiler = unified().use(parse).use(remark2rehype).use(htmlStringify); + var compiler = unified().use(parse).use(remark2rehype).use(htmlStringify) - const { contents } = compiler.processSync({ contents: c }); + const { contents } = compiler.processSync({ contents: c }) - return contents as string; -}; + return contents as string +} export const toAst = async ({ contents }: { contents: string }) => { // @ts-ignore - var tree = unified().use(parse).use(mdx).parse(contents); + var tree = unified().use(parse).use(mdx).parse(contents) - removePosition(tree, true); + removePosition(tree, true) - return tree; -}; + return tree +} diff --git a/packages/tina-graphql/src/resolver/index.ts b/packages/tina-graphql/src/resolver/index.ts index 828e7737a..ba5b2fe83 100644 --- a/packages/tina-graphql/src/resolver/index.ts +++ b/packages/tina-graphql/src/resolver/index.ts @@ -11,27 +11,27 @@ See the License for the specific language governing permissions and limitations under the License. */ -import _ from "lodash"; -import { graphql } from "graphql"; -import path from "path"; -import { assertShape, sequential } from "../util"; -import { friendlyName } from "tina-graphql-helpers"; +import _ from 'lodash' +import { graphql } from 'graphql' +import path from 'path' +import { assertShape, sequential } from '../util' +import { friendlyName } from 'tina-graphql-helpers' -import { resolve } from "../fields/templates/resolver"; +import { resolve } from '../fields/templates/resolver' -import type { DataSource } from "../datasources/datasource"; -import type { GraphQLSchema, GraphQLResolveInfo, Source } from "graphql"; -import type { DirectorySection } from "../types"; -import type { sectionMap } from "../builder"; +import type { DataSource } from '../datasources/datasource' +import type { GraphQLSchema, GraphQLResolveInfo, Source } from 'graphql' +import type { DirectorySection } from '../types' +import type { sectionMap } from '../builder' export const graphqlInit = async (a: { - schema: GraphQLSchema; - source: string | Source; - contextValue: ContextT; - variableValues: object; - sectionMap: sectionMap; + schema: GraphQLSchema + source: string | Source + contextValue: ContextT + variableValues: object + sectionMap: sectionMap }) => { - const { sectionMap, ...rest } = a; + const { sectionMap, ...rest } = a return await graphql({ ...rest, fieldResolver: async ( @@ -40,11 +40,11 @@ export const graphqlInit = async (a: { context: ContextT, info: GraphQLResolveInfo ) => { - return schemaResolver(source, args, context, info, sectionMap); + return schemaResolver(source, args, context, info, sectionMap) }, rootValue: { _resolver_kind: null }, - }); -}; + }) +} /** * The `schemaResolver` function runs for __every__ field we process for queries and mutations. @@ -93,58 +93,58 @@ const schemaResolver = async ( info: GraphQLResolveInfo, sectionMap: { [key: string]: { - section: DirectorySection; - mutation?: boolean; - plural: boolean; - }; + section: DirectorySection + mutation?: boolean + plural: boolean + } } ) => { - const value = source[info.fieldName]; + const value = source[info.fieldName] switch (info.fieldName) { - case "node": - return resolveNode(args, context); - case "documents": - return resolveDocuments(value, args, context); - case "getDocument": - return resolveDocument({ args, context }); - case "breadcrumbs": - return resolveBreadcrumbs(value, args, context); - case "getCollection": - return resolveCollection(args, context); - case "getCollections": - return resolveCollections(context); - - case "addPendingDocument": - await addPendingDocument(args, context); - return resolveDocument({ args, context }); - case "updateDocument": + case 'node': + return resolveNode(args, context) + case 'documents': + return resolveDocuments(value, args, context) + case 'getDocument': + return resolveDocument({ args, context }) + case 'breadcrumbs': + return resolveBreadcrumbs(value, args, context) + case 'getCollection': + return resolveCollection(args, context) + case 'getCollections': + return resolveCollections(context) + + case 'addPendingDocument': + await addPendingDocument(args, context) + return resolveDocument({ args, context }) + case 'updateDocument': assertShape<{ - relativePath: string; - params: { [key: string]: object }; + relativePath: string + params: { [key: string]: object } }>(args, (yup) => yup.object({ relativePath: yup.string().required(), params: yup.object().required(), }) - ); + ) - const sectionSlug = Object.keys(args.params)[0]; - const params = Object.values(args.params)[0]; + const sectionSlug = Object.keys(args.params)[0] + const params = Object.values(args.params)[0] - const section = await context.datasource.getCollection(sectionSlug); + const section = await context.datasource.getCollection(sectionSlug) - const key = Object.keys(params)[0]; - const values = Object.values(params)[0]; + const key = Object.keys(params)[0] + const values = Object.values(params)[0] const templates = await context.datasource.getTemplatesForCollection( section.slug - ); - const template = templates.find((template) => template.name === key); + ) + const template = templates.find((template) => template.name === key) if (!template) { throw new Error( `Unabled to find template ${key} for section ${section.slug}` - ); + ) } const realParams = await resolve.input({ @@ -155,19 +155,19 @@ const schemaResolver = async ( template, datasource: context.datasource, includeBody: true, - }); - const relativePath = args.relativePath; + }) + const relativePath = args.relativePath const payload = { relativePath, collection: section.slug, params: realParams, - }; + } assertShape<{ - relativePath: string; - collection: string; - params: { _body?: string } & object; + relativePath: string + collection: string + params: { _body?: string } & object }>(payload, (yup) => { return yup.object({ relativePath: yup.string().required(), @@ -175,27 +175,27 @@ const schemaResolver = async ( params: yup.object({ _body: yup.string(), }), - }); - }); + }) + }) - await context.datasource.updateDocument(payload); + await context.datasource.updateDocument(payload) return resolveDocument({ args: { relativePath: relativePath, collection: section.slug, }, context, - }); + }) default: - break; + break } - const sectionItem = sectionMap[info.fieldName]; + const sectionItem = sectionMap[info.fieldName] if (sectionItem) { if (sectionItem.plural) { const documents = await context.datasource.getDocumentsForCollection( sectionItem.section.slug - ); + ) return sequential(documents, async (documentPath) => resolveDocument({ args: { @@ -204,7 +204,7 @@ const schemaResolver = async ( }, context: context, }) - ); + ) } else if (sectionItem.mutation) { assertShape<{ relativePath: string; params: { [key: string]: object } }>( args, @@ -213,19 +213,19 @@ const schemaResolver = async ( relativePath: yup.string().required(), params: yup.object().required(), }) - ); + ) - const key = Object.keys(args.params)[0]; - const values = Object.values(args.params)[0]; + const key = Object.keys(args.params)[0] + const values = Object.values(args.params)[0] const templates = await context.datasource.getTemplatesForCollection( sectionItem.section.slug - ); - const template = templates.find((template) => template.name === key); + ) + const template = templates.find((template) => template.name === key) if (!template) { throw new Error( `Unabled to find template ${key} for section ${sectionItem.section.slug}` - ); + ) } const params = await resolve.input({ @@ -236,18 +236,18 @@ const schemaResolver = async ( }, datasource: context.datasource, includeBody: true, - }); + }) const payload = { relativePath: args.relativePath, collection: sectionItem.section.slug, params, - }; + } assertShape<{ - relativePath: string; - collection: string; - params: { _body?: string } & object; + relativePath: string + collection: string + params: { _body?: string } & object }>(payload, (yup) => { return yup.object({ relativePath: yup.string().required(), @@ -255,16 +255,16 @@ const schemaResolver = async ( params: yup.object({ _body: yup.string(), }), - }); - }); - await context.datasource.updateDocument(payload); + }) + }) + await context.datasource.updateDocument(payload) return resolveDocument({ args: { relativePath: args.relativePath, collection: sectionItem.section.slug, }, context, - }); + }) } else { return resolveDocument({ args: { @@ -272,12 +272,12 @@ const schemaResolver = async ( collection: sectionItem.section.slug, }, context, - }); + }) } } if (!value) { - return null; + return null } /** * Field-level references return an object with "instructions" rather than the document themselves. @@ -289,26 +289,26 @@ const schemaResolver = async ( // FIXME: this check runs event when we have a scalar value, it's probably easier to flip this if/else if (isReferenceField(value)) { switch (value._resolver_kind) { - case "_nested_source": + case '_nested_source': const documentArgs = { args: value._args, context, - }; - return resolveDocument(documentArgs); + } + return resolveDocument(documentArgs) - case "_nested_sources": + case '_nested_sources': return sequential(value._args.fullPaths, async (p) => { return resolveDocument({ args: { fullPath: p, collection: value._args.collection, ...args }, context, - }); - }); + }) + }) } } else { // No processing needed, just pass the value straight through - return value; + return value } -}; +} /** * @@ -319,64 +319,62 @@ const resolveDocument = async ({ args, context, }: { - args: FieldResolverArgs; - context: ContextT; + args: FieldResolverArgs + context: ContextT }) => { - const { datasource } = context; + const { datasource } = context assertShape<{ - relativePath?: string; - fullPath?: string; - collection: string; + relativePath?: string + fullPath?: string + collection: string }>(args, (yup) => yup.object({ relativePath: yup.string(), fullPath: yup.string(), collection: yup.string().required(), }) - ); + ) - const sectionData = await datasource.getSettingsForCollection( - args.collection - ); + const sectionData = await datasource.getSettingsForCollection(args.collection) // FIXME: we're supporting both full path and relative path args, when we use this from the hook we only have // access to the documents full id, not the relative path, this should support both kinds of calls, but // probably needs a better argument option as relativePath is misleading const relativePath = args.fullPath ? args.fullPath - .replace(sectionData.path, "") - .replace(/^[^_a-z\d]*|[^_a-z\d]*$/gi, "") + .replace(sectionData.path, '') + .replace(/^[^_a-z\d]*|[^_a-z\d]*$/gi, '') : args.relativePath?.startsWith(sectionData.path) - ? args.relativePath.replace(sectionData.path, "") - : args.relativePath; + ? args.relativePath.replace(sectionData.path, '') + : args.relativePath if (!relativePath) { - throw new Error(`Expected either relativePath or fullPath arguments`); + throw new Error(`Expected either relativePath or fullPath arguments`) } - const realArgs = { relativePath, collection: args.collection }; - const { data, content } = await datasource.getData(realArgs); + const realArgs = { relativePath, collection: args.collection } + const { data, content } = await datasource.getData(realArgs) assertShape<{ _template: string }>(data, (yup) => yup.object({ _template: yup.string().required(), }) - ); - const { _template, ...rest } = data; - const template = await datasource.getTemplate(_template); + ) + const { _template, ...rest } = data + const template = await datasource.getTemplate(_template) const { basename, filename, extension } = await datasource.getDocumentMeta( realArgs - ); + ) return { - __typename: friendlyName(sectionData.slug, { suffix: "Document" }), + __typename: friendlyName(sectionData.slug, { suffix: 'Document' }), id: path.join(sectionData.path, realArgs.relativePath), sys: { path: path.join(sectionData.path, realArgs.relativePath), relativePath, collection: sectionData, template: template.name, - breadcrumbs: relativePath.split("/").filter(Boolean), + breadcrumbs: relativePath.split('/').filter(Boolean), basename, filename, extension, @@ -392,21 +390,21 @@ const resolveDocument = async ({ datasource, template, data: rest, - content: content || "", + content: content || '', }), - }; -}; + } +} const resolveNode = async (args: FieldResolverArgs, context: ContextT) => { - if (typeof args.id !== "string") { - throw new Error("Expected argument ID for node query"); + if (typeof args.id !== 'string') { + throw new Error('Expected argument ID for node query') } - const section = await context.datasource.getCollectionByPath(args.id); + const section = await context.datasource.getCollectionByPath(args.id) return await resolveDocument({ args: { fullPath: args.id, collection: section.slug }, context, - }); -}; + }) +} const resolveDocuments = async ( value: unknown, @@ -415,35 +413,35 @@ const resolveDocuments = async ( ) => { assertShape<{ _section: string }>(value, (yup) => yup.object({ _section: yup.string().required() }) - ); + ) assertShape<{ collection: string }>(args, (yup) => yup.object({ collection: yup.string() }) - ); + ) - let sections = await context.datasource.getCollectionsSettings(); + let sections = await context.datasource.getCollectionsSettings() if (args.collection) { - sections = sections.filter((section) => section.slug === args.collection); + sections = sections.filter((section) => section.slug === args.collection) } if (value && value._section) { - sections = sections.filter((section) => section.slug === value._section); + sections = sections.filter((section) => section.slug === value._section) } const sectionDocs = _.flatten( await sequential(sections, async (s) => { - const paths = await context.datasource.getDocumentsForCollection(s.slug); + const paths = await context.datasource.getDocumentsForCollection(s.slug) return await sequential(paths, async (documentPath) => { const document = await resolveDocument({ args: { fullPath: documentPath, collection: s.slug }, context, - }); + }) - return document; - }); + return document + }) }) - ); - return sectionDocs; -}; + ) + return sectionDocs +} const resolveBreadcrumbs = async ( value: unknown, @@ -452,18 +450,18 @@ const resolveBreadcrumbs = async ( ) => { if (args.excludeExtension) { if (!Array.isArray(value)) { - throw new Error(`Expected breadcrumb value to be an array`); + throw new Error(`Expected breadcrumb value to be an array`) } return value.map((item, i) => { if (i === value.length - 1) { - return item.replace(path.extname(item), ""); + return item.replace(path.extname(item), '') } - return item; - }); + return item + }) } else { - return value; + return value } -}; +} const resolveCollection = async ( args: FieldResolverArgs, @@ -471,25 +469,25 @@ const resolveCollection = async ( ) => { assertShape<{ collection: string }>(args, (yup) => yup.object({ collection: yup.string().required() }) - ); + ) let section = await context.datasource.getSettingsForCollection( args.collection - ); + ) return { ...section, documents: { _section: section.slug, }, - }; -}; + } +} const resolveCollections = async (context: ContextT) => { - let sections = await context.datasource.getCollectionsSettings(); + let sections = await context.datasource.getCollectionsSettings() return sequential(sections, async (section) => { - return resolveCollection({ collection: section.slug }, context); - }); -}; + return resolveCollection({ collection: section.slug }, context) + }) +} const addPendingDocument = async ( args: FieldResolverArgs, @@ -503,11 +501,11 @@ const addPendingDocument = async ( collection: yup.string(), template: yup.string(), }) - ); - await context.datasource.addDocument(args); + ) + await context.datasource.addDocument(args) - return true; -}; + return true +} /** * Each document request should populate these reserved @@ -522,17 +520,17 @@ function isReferenceField( try { assertShape<{ _resolver: string }>(item, (yup) => yup.object({ _resolver: yup.string().required() }) - ); - return true; + ) + return true } catch (e) { - return false; + return false } } export type ContextT = { - datasource: DataSource; -}; -type FieldResolverArgs = { [argName: string]: unknown }; + datasource: DataSource +} +type FieldResolverArgs = { [argName: string]: unknown } /** * When the source doesn't contain the value, but instead @@ -545,16 +543,16 @@ type FieldResolverArgs = { [argName: string]: unknown }; export type ReferenceSource = | { _resolver_kind: null } | { - _resolver: "_resource"; - _resolver_kind: "_nested_source"; - _args: { fullPath: string; collection: string }; + _resolver: '_resource' + _resolver_kind: '_nested_source' + _args: { fullPath: string; collection: string } } | { - _resolver: "_resource"; - _resolver_kind: "_nested_sources"; - _args: { fullPaths: string[]; collection: string }; - }; + _resolver: '_resource' + _resolver_kind: '_nested_sources' + _args: { fullPaths: string[]; collection: string } + } type FieldResolverSource = { - [key: string]: ReferenceSource | unknown; -}; + [key: string]: ReferenceSource | unknown +} diff --git a/packages/tina-graphql/src/types.ts b/packages/tina-graphql/src/types.ts index eb8ab16c7..8923a83c3 100644 --- a/packages/tina-graphql/src/types.ts +++ b/packages/tina-graphql/src/types.ts @@ -11,59 +11,60 @@ See the License for the specific language governing permissions and limitations under the License. */ -import type { Field, TinaField } from "./fields"; +import type { Field, TinaField } from './fields' export type DirectorySection = { - type: "directory"; - label: string; + type: 'directory' + label: string /** An alias for "name", spaces or dashes (-) are not permitted */ - slug: string; - path: string; - format: "json" | "md"; - create: "documents" | "all"; - match: string; - new_doc_ext: string; + slug: string + path: string + format: 'json' | 'md' + create: 'documents' | 'all' + match: string + new_doc_ext: string /** The identifier of the collection, spaces or dashes (-) are not permitted */ - name: string; - templates: string[]; -}; + name: string + templates: string[] +} export type HeadingSection = { - type: "heading"; - label: string; - name: string; - slug: string; -}; + type: 'heading' + label: string + name: string + slug: string +} export type DocumentSection = { - type: "document"; - label: string; - path: string; - name: string; - slug: string; -}; + type: 'document' + label: string + path: string + name: string + slug: string +} interface SectionMap { - directory: DirectorySection; - heading: HeadingSection; - document: DocumentSection; + directory: DirectorySection + heading: HeadingSection + document: DocumentSection } -export type Section = SectionMap[keyof SectionMap]; +export type Section = SectionMap[keyof SectionMap] -export const byTypeWorks = (type: T) => ( - section: Section -): section is SectionMap[T] => section.type === type; +export const byTypeWorks = + (type: T) => + (section: Section): section is SectionMap[T] => + section.type === type export type Settings = { - data: { sections: Section[] }; -}; + data: { sections: Section[] } +} export type WithFields = { - label: string; - fields: Field[]; - __namespace: string; -}; + label: string + fields: Field[] + __namespace: string +} /** * The data portion of the template file. Currently a template * is parsed with gray-matter, which returns a "content" and "data" @@ -80,26 +81,26 @@ export type WithFields = { * ``` */ export type TemplateData = WithFields & { - name: string; - hide_body?: boolean; - display_field?: string; - pages?: string[]; -}; + name: string + hide_body?: boolean + display_field?: string + pages?: string[] +} export type TemplateDataWithNoName = WithFields & { - hide_body?: boolean; - display_field?: string; - pages?: string[]; -}; + hide_body?: boolean + display_field?: string + pages?: string[] +} export type TinaTemplateData = { - label: string; - fields: TinaField[]; -}; + label: string + fields: TinaField[] +} export type Template = { - data: TemplateData; -}; + data: TemplateData +} /** * The 'name' field doesn't exist @@ -108,5 +109,5 @@ export type Template = { * after fetching */ export type RawTemplate = { - data: TemplateDataWithNoName; -}; + data: TemplateDataWithNoName +} diff --git a/packages/tina-graphql/src/util.ts b/packages/tina-graphql/src/util.ts index 11f0f08b4..f5ad25b05 100644 --- a/packages/tina-graphql/src/util.ts +++ b/packages/tina-graphql/src/util.ts @@ -11,8 +11,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { snakeCase, toLower } from "lodash"; -import * as yup from "yup"; +import { snakeCase, toLower } from 'lodash' +import * as yup from 'yup' /** * Iterate through an array of promises sequentially, ensuring the order @@ -28,27 +28,27 @@ export const sequential = async ( items: A[], callback: (args: A) => Promise ) => { - const accum: B[] = []; + const accum: B[] = [] const reducePromises = async (previous: Promise, endpoint: A) => { - const prev = await previous; + const prev = await previous // initial value will be undefined if (prev) { - accum.push(prev); + accum.push(prev) } - return callback(endpoint); - }; + return callback(endpoint) + } // @ts-ignore FIXME: this can be properly typed - const result = await items.reduce(reducePromises, Promise.resolve()); + const result = await items.reduce(reducePromises, Promise.resolve()) if (result) { // @ts-ignore FIXME: this can be properly typed - accum.push(result); + accum.push(result) } - return accum; -}; + return accum +} /** * Asserts the generic type provided matches the runtime value of the `value`. These assertions @@ -74,10 +74,10 @@ export function assertShape( value: unknown, yupSchema: (args: typeof yup) => yup.Schema ): asserts value is T { - const shape = yupSchema(yup); + const shape = yupSchema(yup) try { - shape.validateSync(value); + shape.validateSync(value) } catch (e) { - throw new Error(`Failed to assertShape - ${e.message}`); + throw new Error(`Failed to assertShape - ${e.message}`) } } diff --git a/readme.md b/readme.md index 9af1460ee..db1643a18 100644 --- a/readme.md +++ b/readme.md @@ -30,9 +30,10 @@ See the [contributor docs](./CONTRIBUTING.md) for guidance on how to install and ## Using with Tina -To use this with your local Tina repo look in the `demo/next.config.js` file, ensure the paths resolve to your local Tina install and you've built all the necessary Tina packages. +To use this with your local Tina repo look in the `demo/next.config.js` file, ensure the paths resolve to your local Tina install and you've built all the necessary Tina packages. + +Or take a stab at one of our Tina Cloud starters who are using this package: -Or take a stab at one of our Tina Cloud starters who are using this package: - https://github.com/tinacms/tina-cloud-starter (simple starter to demo how to work with our GraphQL Client) - https://github.com/tinalabs/next-git-starter (based on default Next.js blog starter) diff --git a/yarn.lock b/yarn.lock index 9d8e66e97..2804fa389 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11746,6 +11746,15 @@ fsevents@~2.3.1: languageName: node linkType: hard +"husky@npm:^6.0.0": + version: 6.0.0 + resolution: "husky@npm:6.0.0" + bin: + husky: lib/bin.js + checksum: 61e1f7f53f3c969d361c2a1d4ed8018b9447406ea6cd644a2526d18b76877d135001d8cbd48a1d201fc1614d96995e691ecd2b82a8d8513a6b4a313da1188ccd + languageName: node + linkType: hard + "hyperlinker@npm:^1.0.0": version: 1.0.0 resolution: "hyperlinker@npm:1.0.0" @@ -15607,6 +15616,13 @@ fsevents@~2.3.1: languageName: node linkType: hard +"mri@npm:^1.1.5": + version: 1.1.6 + resolution: "mri@npm:1.1.6" + checksum: 87a09465063063da6d69d98ac75a6206a597c7533561c74e8aab5e6490ebe2a0e94c583fb6e02429e1f4291286a9549eb6a9699c83f5bad252c2c9b4eada97da + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -18023,21 +18039,21 @@ fsevents@~2.3.1: languageName: node linkType: hard -"prettier@npm:^2.0.4": - version: 2.0.5 - resolution: "prettier@npm:2.0.5" +"prettier@npm:^2.2.1": + version: 2.2.1 + resolution: "prettier@npm:2.2.1" bin: prettier: bin-prettier.js - checksum: d249d89361870a29b20e8b268cb09e908490b8c9e21f70393d12a213701f29ba7e95b7f9ce0ad63929c16ce475176742481911737ae3da4a498873e4a3b90990 + checksum: 92c6c9f4b87eba1f28466edee57dd18c80d00b858edda77d46d1950d20e6e302b68ee255fc91133ba931e63c4577b5ae30da194d9626a8f3c0177778b91bf056 languageName: node linkType: hard -"prettier@npm:^2.2.1": - version: 2.2.1 - resolution: "prettier@npm:2.2.1" +"prettier@npm:^2.3.0": + version: 2.3.0 + resolution: "prettier@npm:2.3.0" bin: prettier: bin-prettier.js - checksum: 92c6c9f4b87eba1f28466edee57dd18c80d00b858edda77d46d1950d20e6e302b68ee255fc91133ba931e63c4577b5ae30da194d9626a8f3c0177778b91bf056 + checksum: 652640cc8b71bc5277cfb8bf6f161783ca588efcf683c3d630837b39da8d57fef35c9e00ae5855a8e3c75136c42274046c913cc2b2d2968558315f31c6a26981 languageName: node linkType: hard @@ -18103,6 +18119,24 @@ fsevents@~2.3.1: languageName: node linkType: hard +"pretty-quick@npm:^3.1.0": + version: 3.1.0 + resolution: "pretty-quick@npm:3.1.0" + dependencies: + chalk: ^3.0.0 + execa: ^4.0.0 + find-up: ^4.1.0 + ignore: ^5.1.4 + mri: ^1.1.5 + multimatch: ^4.0.0 + peerDependencies: + prettier: ">=2.0.0" + bin: + pretty-quick: bin/pretty-quick.js + checksum: 956f0808ee9323fccb0208d7f818c9528375b103c0b0c9b35280e70b1f7fc5574785c0f872b2a4fe89c4600b30a98fbf7c978eb4c272bc1b2c08e61d64119d60 + languageName: node + linkType: hard + "prettyjson@npm:^1.2.1": version: 1.2.1 resolution: "prettyjson@npm:1.2.1" @@ -19947,7 +19981,9 @@ fsevents@~2.3.1: "@yarnpkg/pnpify": ^2.0.0-rc.20 danger: ^10.6.0 eslint: ^6.8.0 - prettier: ^2.0.4 + husky: ^6.0.0 + prettier: ^2.3.0 + pretty-quick: ^3.1.0 typescript: ^3.8.3 workspace: ^0.0.1-preview.1 dependenciesMeta: